Sign in to follow this  
MMOGames

Understanding the big picture of MMO technology

Recommended Posts

Hi All SO I'm not a programmer, but I do have an interested in MMO Games that are low in demand for processing power and limited in their 3d complexety. This thread is to discuss the big picture elements in MMO. I'm looking for an individual that has th expertise to explain these components as I would be looking to have a framework built. If you are interested I would like to discuss what are the basic principals of a MMO Games.

Share this post


Link to post
Share on other sites
I'm a bit confused. The only big principle I know of for MMOs that set them a part is the first 'M', meaning Massive(ly).

So I guess, a network system that can handle a very large amount of connections.

Share this post


Link to post
Share on other sites
The complexity of the 3d will never have an impact on the performance of the servers. And the client-side application follows the same set of requirements that it would for a single player game, apart from the bandwidth requirements.

When it comes to the performance of the server-side application(s), it depends greatly on the complexity of the game design. So if you want an MMO architecture that's low on resources, you'll most likely have to design your game based on that.

There are off course tricks one could do to increase the performance server-side more or less regardless of the game design, such as distributing the game servers across several physical machines.

Share this post


Link to post
Share on other sites
I was curious about this as well. In making an MMO, do you prioritize on minimizing the amount of data a server must hold, or decreasing the pressure on a host computer? How does one stream every character's position, action, etc?

Share this post


Link to post
Share on other sites


This may be over simplifying it.... Visually I would think of an MMO like this:


Database
|
Sever Side Code
|
network
|
Client side


There are distinct layers (or tiers). And there could be more layers within the "server side code" layer, etc.

Each layer does not care how the other layer works. The "server side code" layer doesn't care about the fancy graphics the client is seeing on their screen. Changing way the visual display works should have no impact on the other layers (assuming it's just an implementation change, not interface change).

I think one of the big differences between an MMO and a "regular" video game is not really the "massively" part. It's the database. I don't really consider any existing MMO to be massive. Develpers just create new servers to handle more players. players in one server can't interact wiht players on another. This isn't true "massivley". MMO's are about data. The relational database back end is the cool part.

Share this post


Link to post
Share on other sites
Also you may actually have seperate computers for each layer. The database will get it's very own computer.

Server side code gets it's own computer. Each "server" or "world" could actually be like 10 computers.


You may even have seperate databases for certain things to help split the load. You may have a competly seperate set of computers for logging in. This way if an army of 100,000,000,000 automated robots start assulting your login, it's not going to affect the gameplay of logged in players even if the login computers crash and burn.



There are different ways you can split up the boxes.

Share this post


Link to post
Share on other sites
Quote:
Original post by japtar10101
I was curious about this as well. In making an MMO, do you prioritize on minimizing the amount of data a server must hold, or decreasing the pressure on a host computer? How does one stream every character's position, action, etc?


Typically, only characters close to each other receive updates about one another, in the form of "this character is standing on x,y,z and has the orientation dx,dy,dz. Currently the character is not moving". The client sends packets when the player starts moving, and when he stops. While moving, it typically sends out updates at a constant interval (>1 second). This way, the server and the other clients are able to predict where the character should be at a given frame. This causes a side effect commonly known as "the bungee effect", where a character is suddenly "transported" in a single frame a few meters away from where he was standing. This happens because the prediction "failed", and the error is corrected by the server.

When it comes to the server architecture, it varies greatly in each system. Most people will say that the main bottleneck server-side is CPU power. At least, this is most often the case in commercial MMO's. To counter this, load is usually spread out using a distributed server architecture, where several parts of one server is completely separate and running on individual machines. Bandwidth is seldom an issue, at least in commercial MMO's as their server farm uplinks are able to chunk out vast amounts of data per. second, and because their servers are all co-located and intra connected using high-speed LAN.

In non-commercial MMO's, bandwidth is most likely the biggest bottleneck, for two reasons; the servers are often hosted by team members on "slow" connections, and they don't have enough players to hit hardware limitations.

Share this post


Link to post
Share on other sites
MMOGames. If your looking to hire a guy to make this framework for you, you may have diffiuclty. A MMO takes skills from many areas of computer science.

DBA's may understand the database but cannot program there way out of a paper bag. You may find a guy who knows C++ and a graphics library, but has no clue about relational database modeling. I've even seen a DBA who didn't understand relational modeling. I saw a DBA trying to implement a many-many with only 2 tables and trying to make it fit by adding duplicate rows to the tables. There's networking knowledge needed. Server architechure knowledge.


And the framework itself will have to be split up just like the MMO itself. Just as the game runs across several computers (players computer, server, etc) the frame work would have to have a seperate area for each distinct tier.

Someone who understands all these areas, and has the deisgn skills to wrap it all up into an easy to use framework is a rare person. Someone who's willing to spend his time not at work to do this is even rarer.

Share this post


Link to post
Share on other sites
Quote:
Original post by StarFoxNow
MMOGames. If your looking to hire a guy to make this framework for you, you may have diffiuclty. A MMO takes skills from many areas of computer science.

DBA's may understand the database but cannot program there way out of a paper bag. You may find a guy who knows C++ and a graphics library, but has no clue about relational database modeling. I've even seen a DBA who didn't understand relational modeling. I saw a DBA trying to implement a many-many with only 2 tables and trying to make it fit by adding duplicate rows to the tables. There's networking knowledge needed. Server architechure knowledge.


And the framework itself will have to be split up just like the MMO itself. Just as the game runs across several computers (players computer, server, etc) the frame work would have to have a seperate area for each distinct tier.

Someone who understands all these areas, and has the deisgn skills to wrap it all up into an easy to use framework is a rare person. Someone who's willing to spend his time not at work to do this is even rarer.



I understand the technical skill sets necessary for a sophisticated game are many and rare to find in one person, but what I have in mind is a primitive framework that will host a simple interplay between users, with fundamental graphics. I’m not talking a head to head competition with AE or anything like that.

Putting that aside can I post diagram images on this site?

Share this post


Link to post
Share on other sites
Howdy guys!

Although the technology my two man team is working on is far from being completed, we're developing an indie solution for making persistent online games (Please note, I always avoid using the term "Massively" since the word alone implies quite a bit; although the technology is fully able to handle such data loads).

The goal of our technology is a free license for freeware games, then going up from there, shareware imparts a small royalty, and so on.

If you're interested in how the technology is designed, feel free to get a hold of me at nate AT foreverknightsgaming DOT com, or reply to this forum post / PM me.

Sorry about the shortness of this post by the way, must head off to work to avoid being late!


-Nate

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this