• Advertisement
Sign in to follow this  

best data connection structure for a mmo game

This topic is 1100 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hello my friends.

im working on a mmo project and just started coding for network and data connection.

 

im looking for a method or way that is best for mmo games. the issues that needs to be solved is sending data for less times to have less traffic on the server. the next on is how to do it it will be hard to hack.

 

is this good for an mmo game to send and receive data synchronously or just game will happen on clients and after that they after some events like ending match just sending the data of match to server and database?

 

is this better to game be hybrid od booth of them or its better to implement most of game on clients and just for some events send data to server and in certain amount of time do some checkings of data base?

 

the the structure of game still is not comepeletly imlemented so hard to tell what going to happen in game. so even a general advice and exprince about these project in past can be good.

 

thanks for helping

 
 

Share this post


Link to post
Share on other sites
Advertisement
MMO design is a very intricate collaboration between available technology, art, story, and community assets.
Is it 2D/2.5D/3D?
How much is the focus on skill/die-roll versus action/fps gameplay elements?
How much simulated physics do you need for players? For environment?
How many players do you need to support in a single "area" (whatever that means in your game)?
What happens when more players want to go to the same area than are supported?
What level of lag are you prepared to accept for the player? For group members? For players that are just around? For NPCs? For the NPCs the player is currently fighting?
Is there PvP?
Is there player construction, or other environment modifications?
Will you need a single global world where anyone can meet anyone, or can players choose world instances ("servers" in WoW, EQ, etc)?
How much revenue do you intend to make per player per month? (This dictates what kind of resources you can put into it.)

If you are a small indie group with one or two programmers and three or four artists, you probably want to start somewhere simple, like with the "PyMMO" example, and grow from there as needed: http://www.enchantedage.com/pymmo

Share this post


Link to post
Share on other sites

If I was to approach this problem myself, i would look at a acyclic spanning tree. All clients speak to servers in a star formation, and only relevant data for nearby players is sent to clients.

 

Servers talk to each other sharing only data which needs to be global, e.g. lists of usernames who are currently logged in to prevent multiple logins, and other pieces of important data such as which players have what on their inventory. 

 

All servers should really talk to a highly redundant sql cluster on some really fast local boxes for data storage.

 

I did manage to get something good working like this before for my multiplayer role-playing game which scales to many more than hundreds of players per server (in benchmarking i had 8000 on it, but this isn't really representative of real player behaviour). It is based roughly on irc as a protocol, with asynchronous sql for a backing store and heavy caching. If you're interested in this, drop me a pm and i will be happy to share c++ source.

Share this post


Link to post
Share on other sites

All servers should really talk to a highly redundant sql cluster on some really fast local boxes for data storage.


The option that most MMOs take is to design storage so that it doesn't need a high degree of throghput. For example, keep "game" state (hitpoint amount, affects, etc) in RAM, and only checkpoint back to a central store once in a while. Only things that need central authority and can't be lost (player trade, etc) needs to go directly through an app server and database.

Also, it's typically the case that there's a central "players" database, and then there's a separate "characters" database per world shard/instance. Almost all MMOs do it that way. The "player" database is only hit on login (to generate a ticket) and on subscription events (renew/cancel, etc.) The "character" server is the one that's hit for in-play characters, but as each shard is limited to the number of current players (because of area and gameplay,) there's an upper limit to what that server needs to be able to do.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement