User | Post |
lagwagon
Since: 08-12-02 From: Orange County, CA
Since last post: 7773 days Last activity: 7773 days
|
|
Hey everyone!
I am going to make an RPG, but I think it will be quite unlike most others.
It will be made in php, similar to the way neopets (http://www.neopets.com) was constructed, only more like a Roleplaying Game (lvlups, exp, different classes, etc.), and users will be able to interact. I need help however (this seemed like a good place to ask), mostly in art, but perhaps some PHP help, and if anyone out there who's reading this can good flash as in games and such, or do php/art, please email me (lagwagon@cox.net) for more info and how you can help.
thx everyone
-Lagwagon
--------------------
(edited by lagwagon on 01-02-03 11:19 AM) |
sakura
Since: 06-18-02 From: Canada
Since last post: 7652 days Last activity: 7652 days
|
|
Lagwagon, that sounds like a great idea, but unfortunately I don't know much about PHP >.< I tried setting up a PHP account at http://www.tripod.lycos.co.uk/ but I couldn't setup tables and stuff @.@,...got so confused...sigh! I hope others on this forum can help you cuz some ppl here are really smart.
Anyways, I too have been trying to develope my own RPG over the holidays, and I think progress is kindda slow. I only got as far as making a simple window by copying and pasting codes together. http://gametutorials.com/Tutorials/win32/Win32_Pg3.htm I think I need to learn more c++, but it's really boring doing things in DOS. Oh well, good luck with your project and have fun |
lagwagon
Since: 08-12-02 From: Orange County, CA
Since last post: 7773 days Last activity: 7773 days
|
|
umm... does anyone know of a forum that might get better results, but still not get a lot of jerks responding by trashing the idea? Honestly, this is the only forum I've actively participated in for a long time.... so I wouldn't know.
Thx
--------------------
|
Sasami
Goddess in Training
Since: 02-18-02 From: Back in texas! YAY! college sucked! Rating: 10 (1030 pts)
Since last post: 7568 days Last activity: 7568 days
|
|
i really doubt you'll ever find a really dedicated and talented person without already being a friend of theirs and finding out later about what they do.... knowing this from lots of experience. its rare that great things easily come your way. |
lagwagon
Since: 08-12-02 From: Orange County, CA
Since last post: 7773 days Last activity: 7773 days
|
|
My friend who is good at making static flash and I are going to put our heads together and try to learn how to make them dynamic, and hope to make games that way (simple ones that is)
--------------------
|
MingShun
Since: 05-10-02 Rating: 10 (400 pts)
Since last post: 7616 days Last activity: 7616 days
|
|
Hmm, Sakura...if you know anything about pointers, you might wanna try using the DirectX or OpenGl library. While complicated, the pretty graphics may be more rewarding
-------------------- Santa Smokie - Lvl 40 thieving creature.
Loots from the bad and gives to the good. Good Players can expect a jellopy in their stocking this year. Evil Players on the other hand can expect a missing glove. Where do the gloves go then? Santa smokie charges a finders fee of course.
Killing a santa smokie is bad luck, people have been known to lose many job levels when its ghost comes back to loot them. What do I recommend? Don't let it steal from you.
|
sakura
Since: 06-18-02 From: Canada
Since last post: 7652 days Last activity: 7652 days
|
|
Thanks for the advice, I'll try OpenGL or SDL ZEngine 0.8.0 once I feel more comfortable programming in Win32. So far, I've managed to load a bunch of bitmaps to screen, the next part of my task is to learn how to animate sprites. I think I'll do a complete RPG game in windows mode before heading to the 3D stuff. From what I read on the other gaming forums, most people take about a year (it all varies though) before they can program a game.
And as for pointers, I rarely use them. Half the time, I have no clue as to when and where to use them, I mostly use global variables instead. It's very funny because in school I was taught to never use globals unless you have to, but I find it very annoying not using them because you constantly have to pass the variables around -_-;
I don't think I'll try venturing into DirectX cuz I heard it's really hard for newbies, tried looking for help in MSDN and I got all dizzy and confused, that's microsoft for ya, and besides I'm not very good at Object Oriented programming and stuff.
-------------------------------------------------
1 semester of Intro to Computer Science
1½ semester of Computer Science: C++ OO
1 month of Win32 from tutorials&web |
Sasami
Goddess in Training
Since: 02-18-02 From: Back in texas! YAY! college sucked! Rating: 10 (1030 pts)
Since last post: 7568 days Last activity: 7568 days
|
|
you dont have to be good at OOP to use directx, you use their OOP and have to do none of your own, its very nice... uum... if you dont use pointers theres no way you can make anything efficient, pointers are key in a gaming atmosphere, as for global variables, DO use them, they are stored into a static ram address for the whole program runtime and are quicker than calling and storing on the stack like local variables, not to mention faster to call on than passing to an argument, programming teachers arn't as knowledgable as you'd think. MSDN is GREAT once you understand how they have it set up and crosslinked. It's a wonderful help. |
MingShun
Since: 05-10-02 Rating: 10 (400 pts)
Since last post: 7616 days Last activity: 7616 days
|
|
Hmm, for MSDN, you have to know where to look. There's a lot there. Use the search function. It can save time, that's if you master it.
But it still won't make your life any easier. If you wanna learn Direct X, don't start with MSDN. Start with the help files that are included with the DirectX installation. Yes, you can find that information on MSDN too, but this way, you won't have to worry about finding unrelated things.
Let's see, I started with the tutorials. That's where I learned the basics of Direct 3D. But the tutorials don't introduce many useful functions, I quit using Direct 3D for a time because I thought there were only 3 or so functions that were available. I mean, the tutorial only mentioned those 3.
Lol, I was under the impression that I could use those 3 functions to create a game (one of them was D3DXMatrixRotationX). IOW, wth!?! How do I rotate around the Y and Z axis then? Simple, D3DXMatrixRotationY and D3DXMatrixRotationZ (You don't use D3DXMatrixRotationX and some clever math trick to do em.)
There're many more valuable functions, and you can find a big list of them somewhere, under "Direct3DX functions".
This just goes to show, tutorials don't have everything. They only point in a direction. It's up to you to look through the rest of the help file and find out more.
That reminds me, DirectX 9 just came out. Sigh...
-------------------- Santa Smokie - Lvl 40 thieving creature.
Loots from the bad and gives to the good. Good Players can expect a jellopy in their stocking this year. Evil Players on the other hand can expect a missing glove. Where do the gloves go then? Santa smokie charges a finders fee of course.
Killing a santa smokie is bad luck, people have been known to lose many job levels when its ghost comes back to loot them. What do I recommend? Don't let it steal from you.
|
Sasami
Goddess in Training
Since: 02-18-02 From: Back in texas! YAY! college sucked! Rating: 10 (1030 pts)
Since last post: 7568 days Last activity: 7568 days
|
|
already had dx9 downloaded the day it came out and my mmorpg reprogrammed to use dx9 extensions where i could. |
sakura
Since: 06-18-02 From: Canada
Since last post: 7652 days Last activity: 7652 days
|
|
I thought this post sounded familiar http://www.castledragmire.com/ragnarok/forums/thread.php?id=511 I hate to say it but it's very true. In the beginning, the idea of making an RPG sounded great and all, but then you run into problems on the way. It's not like I don't have the desire to finish my game, I do in a sense, but the reasons are quite simple.
First, it's very hard to learn a programming language when you have to juggle time between school and a part-time job.
Secondly, I didn't realize the importance of graphics in a game. Well I kindda knew that in order to make my game worthwhile, I'll probably need someone who's good with graphics down the road, but finding such a devoted person would be hard. Anyways, I had my little sister doing the graphics initially, but she wasn't really into the project, so I had to do it.
Lastly, I think I should have gone with a simpler game such as a space-shooter, tetris or pacman. Trying to make an RPG is extremely difficult if you're only getting a feel for the language.
Well if anyone would like to see my partial work, you can download it from here http://anime-anime.hypermart.net/rpg_game.zip The game is far from complete, but it'll give you some ideas on how to make a simple tile-based game if you're interested
------------------
homepage: http://www.geocities.com/Tokyo/Blossom/5442/rpg_game.htm |
Sasami
Goddess in Training
Since: 02-18-02 From: Back in texas! YAY! college sucked! Rating: 10 (1030 pts)
Since last post: 7568 days Last activity: 7568 days
|
|
im still working on my mmorpg and its coming along quite well *Shrugs*
[edit] ahhh that was cute
(edited by Sasami on 01-30-03 02:42 PM) |
MingShun
Since: 05-10-02 Rating: 10 (400 pts)
Since last post: 7616 days Last activity: 7616 days
|
|
>< ouch. Compatibility is a major issue for PC games too.
I don't recommend making the game compatible until it works though. That's a second or third priority thing, depending on whether or not you plan on distributing.
Well, I'm going to look over the source code and see if I can figure out what's wrong.
[edit] Silly me. Your code's fine. I didn't extract the files correctly. BTW, is that Elena from Grandia 2? [/edit]
(edited by MingShun on 02-03-03 10:47 AM)
(edited by MingShun on 02-03-03 10:58 AM) |
sakura
Since: 06-18-02 From: Canada
Since last post: 7652 days Last activity: 7652 days
|
|
About compatibility, I don't know if my game will run on other systems because I haven't tested it on another computer other than my own. My computer is running on Windows 98 with a TNT2 video card. I noticed that one of my flaws was that I made the sprites 50x50 therefore I need to resize it or redraw it for it to be compatible with Direct X. I also could have used a better method for loading bitmaps into memory, half of my codes were on the loading part alone.
Elena from Grandia 2? hmm...I didn't know the characters were so alike. Anyways, I never heard of this game until now, but the character that I used was from the anime *cough *cough UFO Princess Walkure (Valkyrie). Our fansub group on irc fansubbed the first ep of this show. The character was only temporary, I had my own sprite but I haven't had the time to implement it, so I didn't use it.
Anyways, if you have some more comment about the game or ideas, I'll greatly appreciate it |
MingShun
Since: 05-10-02 Rating: 10 (400 pts)
Since last post: 7616 days Last activity: 7616 days
|
|
Ah, icic. Grandia II was a very nice game.
Anyway, What kind of comments or ideas are you looking for?
Hmm, are you going to have a battle system? Not all RPG's need a battle system, take "Harvest Moon" for instance. It's a combination farming simulation and living life rpg.
Also...Umm...well. Lol, I can't seem to think of anymore rpg's out there that don't require combat.
If it does have a battle system, what kind? Mario-type? Or Final-Fantasy type? I'm referring to how battles are done. In mario, fighting an enemy doesn't require a new screen. You jump on the enemy and move on. It's elegant, but kinda difficult to code.
Final-Fantasy requires a seperation between traveling and combat. It's easier to code because you can work on the two seperately.
|
sakura
Since: 06-18-02 From: Canada
Since last post: 7652 days Last activity: 7652 days
|
|
oh, I was thinking of a battle system similar to RO but I don't know how to program the game so that it can keep track of every monsters on the map. I also don't want to call upon a million checks to see if the monsters off screen are doing anything.
Timing in the game is also a problem for me. I don't know if I should redraw all of the bitmaps 60 frames / sec. Sometimes I feel it's unecessary to redraw everything even though nothing have happened, such as sitting down and the whole background is static with no monsters in sight.
Oh well, I'll probably resume working on my game during springbreak when I have more time to focus on game design. |
MingShun
Since: 05-10-02 Rating: 10 (400 pts)
Since last post: 7616 days Last activity: 7616 days
|
|
60 frames per second? That's a bit fast. I guess if you have good hardware acceleration, then it's doable.
Last I checked, the standard fps was 30 or so. A little more wouldn't hurt...but it depends if your computer can draw them fast enough.
Do you use a timer? I think that if you include , you can use the function GetTickCount(); I think it returns a DWORD. GetTickCount() returns the number of milliseconds that have elapsed from a set date...I think January 1st 1967 ^^"
PseudoCode:
int TimerStart = GetTickCount();
{
//run some things...
if ((GetTickCount() - TimerStart ) > 33)
{
//draw frame
//reset counter
}
}
If I had to take a guess, monsters in RO are in some giant array on the server. Or maybe a linked list. By generalizing it like that, you can run many many operations on the data easily, even if it keeps changing (respawn, death)
-------------------- I wonder....Gundam vs. Angry Anime Girl...
The real question is, would there be any surviving viewers? |
Sasami
Goddess in Training
Since: 02-18-02 From: Back in texas! YAY! college sucked! Rating: 10 (1030 pts)
Since last post: 7568 days Last activity: 7568 days
|
|
60fps is the standard the gaming industry goes for today (and has always gone for), and is easily possible without hardware acceleration depending on the type of engine used. the human eye sees at a rate of 30-35fps so to fool it into thinking everything is constant 60fps is a very good rate. gettickcount tells you the number of milliseconds your windows has been running, and your code would work but works on the assumption that each frame takes the same ammount of time to draw (<1 ms) and that the check will always be reached on the 34th MS, which wouldnt always be true. |
MingShun
Since: 05-10-02 Rating: 10 (400 pts)
Since last post: 7616 days Last activity: 7616 days
|
|
Oh, umm, would this work better?
int TimerStart = GetTickCount();
while( //I dunno, this is the main game loop)
{
//run some things...
if ((GetTickCount() - TimerStart ) > 33)
{
//draw frame
TimerStart = GetTickCount();
}
}
Yup, same thing, except I substituted "//reset timer" with "TimerStart = GetTickCount();" The way I see the loop now, we enter the main game loop...then we check to see whether or not the timer goes above 33 ms. If not, keep working on other things, like making the graphics better, or improving the accuracy of collisions.
Yeah, collision detection...how many frames would be suitable before I return results? I mean, can I design a collision detection algorithm that finishes checking all objects every 5 frames or so (at max)? Would the delay be noticable? Right now, I check for collisions before I draw the frame. IOW (1/30 s) is the alloted time for the collision detection algorithm to finish. That's a lot of processing that I could be using elsewhere...
60 fps...I still think that's..that's, oh right. Monitor refresh rate. Oky, that confirms your theory. I guess I'll have to research optimizations again.
-----------
poink
(edited by MingShun on 02-11-03 01:41 PM) |
Sasami
Goddess in Training
Since: 02-18-02 From: Back in texas! YAY! college sucked! Rating: 10 (1030 pts)
Since last post: 7568 days Last activity: 7568 days
|
|
i looked at that for about a minute trying to figure out if you changed anything, which you didnt :-p
i'm glad you recognized that 60fps is a standard moniter refresh rate, i forgot to mention in the previous post that it is customary to sync ones refresh to the moniter vcycles (denoted vsyncing), which DX does for you if you want. I vsync in windowed mode (looks horrible without it) and just let it run its natural course in full screen since i have exclusive access to the video buffer at that point anyways.
what would be better is more like
int timer=GetTickCount(),frames=1;
while(TRUE)
{
if(GetTickCount()-timer>frames*16)
{
//draw frame
frames++;
if(frames==61)
{
frames=1;
timer=GetTickCount() - (1000 - (GetTickCount() - timer)); //adds in the extra MS not accounted for
}
}
}
there are of course obvious optimizations, like
timer=GetTickCount() - (1000 - (GetTickCount() - timer))
timer=GetTickCount() - 1000 + (GetTickCount() - timer)
timer=GetTickCount() - 1000 + GetTickCount() - timer
timer=GetTickCount()*2 - 1000 - timer
timer=(GetTickCount()<<1) - 1000 - timer
etc
or better yet make 16, 16.667 to be more precise, etc. though floating point ops take longer, its all up to the programmer, i think i will shy away from using assembly in an example post.
[edit]
after relooking over that, that would take the same ammount of clock cycles as the original theoretically since sub, add, and shl all take 1 clock cycle, but it would take less space in the pipeline theoretically and less space in bytes as assembly code, which would make it run faster.
(edited by Sasami on 02-11-03 10:10 PM) |