Skip to main content
gamedev.net
🔒 Locked

Server design

Started by rmmt 2 replies 900+ views
Original Post
rmmt
rmmt
Hi Everyone, I'm no networks specialist; I know just a bit of programming. Altough, I have an idea which I'm sure has been thought of before, but I couldn't find anything about it here in the forums. It's quite simple - instead of having a few big servers, this idea employs the use of many computers instead. Here, for example, we make use of 20 normal pcs to simulate the power of 2 big servers. One PC can handle the chat, another the inventory, etc. How feasible is this? You can try to be technical because I'm going to show this answer to my networking friends. Thank you,
Cygon
Cygon
This is usual practice for many online games, even google does it. Beucase many things tend to be interconnected with each other, often each machine manages a region of the world and the player is "handed over" to another machine whenever he crosses certain borders. Makes it far cheaper to organize the required processing power and protects against downtime.

To keep a persistent game world, however, you need some centralized database into which the current status of characters is saved regularly, eg. once per hour or with the beginning of a scheduled daily/weekly downtime which is also useful for backing up data (a must if you don't want thousands of angry players in case of a hack or drive crash) or updating the servers.

-Markus-
Professional C++ and .NET developer trying to break into indie game development.
Follow my progress: http://blog.nuclex-games.com/ or Twitter - Topics: Ogre3D, Blender, game architecture tips & code snippets.
hplus0603
hplus0603
Quote:
To keep a persistent game world, however, you need some centralized database into which the current status of characters is saved regularly


With sufficient engineering, you can scale the database servers by plugging in cheap machines, just like you'll scale your simulation, visualization, web, gateway, application and all other servers.

Or you can pay Oracle lots of money for their distributed transaction system. Unfortunately, that'll often stop ALL cooperating database servers from getting work done when ONE of them goes down. Our design doesn't :-)
enum Bool { True, False, FileNotFound };

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.