![]() One company that is cool about discussing their implementation is CCP, creators of Eve online. ![]() C++ and OpenGL (for Mac) and Direct3D (for PC) can be assumed as the implementation languages for the game clients because that's what games are made with. They use Lua for user interface scripting. The game simulations themselves will be built using the same techniques as any networked 3D game, so you can look towards resources for that problem domain to learn more.įor the big daddy, World of Warcraft, we can guess that their database is Oracle because Blizzard's job listings frequently cite Oracle experience as a requirement/plus. Online games are going to have their own protocols built on top of TCP/IP or UDP. One thing that is fairly certain is that since MMOs by and large use a custom client and 3D renderer they don't use HTTP because they aren't web browsers. It does gives you a good idea of what's involved.īecause MMOs by and large require the resources of a business to develop and deploy, at which point they are valuable company IP, there isn't a ton of publicly available information about implementations. The backend for Wowemu is amazingly simple (I tried it in 2005 however) and probably a complete over simplification of the database schema. ![]() This is what the private WoW servers run off. This is based on ApireCore which is an MMO simulator, or basically a reverse engineer of the WoW protocol. Have a look for Wowemu (there's no official site and I don't want to link to a dodgy site). 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. The server is having to deal with 100s of spells being sent its way, which it must calculate damage amounts for each one. For those that do have 100s of people in one area, there is usually high latency. Most MMOs have zones which limit this to a certain amount of people. How do the "engines" work, to centrally process hundreds of conflicting gameplay events? You don't care if a bit of latency causes the client to lose their world position. It's fast as it makes no guarantees the packet will be received. 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) Do they use other protocols? because HTTP does not allow servers to push data to clients. The server your client talks to will be a server running a daemons or service that sits idle listening for connections. Do they manage with scripts that execute on page requests? or installed services that run in the background and manage communication with connected clients? I'd guess the servers will be running on Linux, BSD or Solaris almost 99% of the time. What server infrastructure are they built on? especially with so many clients connected and communicating in real time. I would suggest you check over on for books covering this topic. The exact event processing mechanism depends on the requirements of the game designer, but generally I expect that incoming events go into a priority queue (prioritized by time received and/or time sent and probably other criteria along the lines of "how bad is it if we ignore this event?"). Most games are segmented into "worlds", limiting the number of players that are in the same virtual universe to the number of game events that one server (probably with lots of CPU's and lots of memory) can reasonably process.They probably use a custom TCP and/or UDP based protocol (look into socket communication).a service that listens for TCP and/or UDP messages). MMORPG's that I'm familiar with probably don't use web services for communication (since they are stateless) but rather a custom server-side program (e.g.We use Amazon AWS to almost instantly add and remove virtual servers. I'm currently running a large financial services app that needs to scale up and down depending on time of day and time of year. This is well-suited to Cloud Computing by the way. add additional servers as load increases. The server infrastructure needs to support the ability to scale out.Here are some general thoughts to your bullet points: Many roads lead to Rome, and many architectures lead to MMORPG's.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |