Ive been entering deeper and deeper into multiplayer games and programming, but none is so fascinating (or at least so hyped) as "massive" rpg''s there is going to be one about star wars, star trek, matrix and even final fantasy por PS2... As for myself Ive been playing Graal online (is free not like ultima or everquest) Ireally enjoyed it. www.graalonline.com, I was just wondering, what is the theory behind it.
I figure it must be something like this.
1.-You have a server aplication which has a dbase of
characters status and positions on a fixed map.
2.- your host sends new information about your character status and position to feed the server and reads the character positions in the area you are in at that time.
of course a "cache" of your status is in your computer too.
Is that right? what kind of dbases can be used for this? SQL server? dbase files ?
I hope you are prepared for a difficult road ahead =) Implementing a workable massively multiplayer game is not an easy task since there are other issues besides the ones you have suggested that come into play. On the other hand it can be an enjoyable experience if you get it right. Other issues to consider:
1) Synchronisation of players and game play 2) Prediction algorithms to counter lag 3) Thread management 4) Handling combat situations 5) Turn based or real time 6) Player killing and hacking =) 7) etc etc
As for storing your game state information it might be better using a custom file format rather than relying on SQL server to manage yur DB files since it does require additional overhead. Certain information can be stored in say an MS Acess DB and served using SQL Server like player account information and server configuration.
As for updating your client, it depends on the time model used in the game. Is it real time or turn based?
In real time games you will need to minimise the size of the game update packets otherwise your game will crawl to a halt. This means only selectively choosing the surrounding area of the character to update. I don''t think updating the entire map for example is feasible even with a broadband connections. There are various algorithms to decide which area to update.
In turn-based games the players can be more patient and dont mind waiting a bit longer for game updates but don''t count on this.