How are Massively Multiplayer Online RPG games built?
What server infrastructure are they built on? especially with so many clients connected and communicating in real time.
Do they manage with scripts that execute on page requests? or installed services that run in the background and manage communication with connected clients?
Do they use other protocols? because HTTP does not allow servers to push data to clients.
How do the "engines" work, to centrally process hundreds of conflicting gameplay events?
Thanks for your time.
A massively multiplayer online role-playing game (MMORPG) is a video game that takes place in a persistent state world (PSW) with thousands, or even millions, of players developing their characters in a role-playing environment. The virtual world in which the game takes place is never static.
A massively multiplayer online game (MMOG or more commonly MMO) is an online video game with a large numbers of players, often hundreds or thousands, on the same server. MMOs usually feature a huge, persistent open world, although there are games that differ.
Like Star Citizen, many other MMORPG games are under-development with massive amounts in place, over $200 Million each. However, it's crystal clear now that building an average MMORPG game needs over $50 Million US Dollars.
Short answer is; anywhere from 1 to 1000 people.
I'd guess the servers will be running on Linux, BSD or Solaris almost 99% of the time.
The server your client talks to will be a server running a daemons or service that sits idle listening for connections. For instances (dungeons), usually a new process is launched for each group, which would mean there is a dispatcher service somewhere mananging this (analogous to a threadpool)
UDP is the protocol used. It's fast as it makes no guarantees the packet will be received. You don't care if a bit of latency causes the client to lose their world position.
Most MMOs have zones which limit this to a certain amount of people. For those that do have 100s of people in one area, there is usually high latency. The server is having to deal with 100s of spells being sent its way, which it must calculate damage amounts for each one. For the big five MMOs I imagine there are teams of 10-20 very intelligent, mathematically gifted developers working on this daily and there isn't a MMO out there that has got it right yet, most break after 100 players.
--
Have a look for Wowemu (there's no official site and I don't want to link to a dodgy site). This is based on ApireCore which is an MMO simulator, or basically a reverse engineer of the WoW protocol. This is what the private WoW servers run off. From what I recall Wowemu is
However ApireCore is C++.
The backend for Wowemu is amazingly simple (I tried it in 2005 however) and probably a complete over simplification of the database schema. It does gives you a good idea of what's involved.
Many roads lead to Rome, and many architectures lead to MMORPG's.
Here are some general thoughts to your bullet points:
This is a very large subject overall. I would suggest you check over on Amazon.com for books covering this topic.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With