A large variety of massively multiplayer online game (MMO) engines have been developed. Nearly every MMO has its own custom engine that is sometimes released as a game engine later, though there are engines that have been specifically designed as generic MMO engines without game content. Some engines are designed for classic three-dimensional (3D) graphics in which all players exist within the same server and can freely interact with one another, while other engines distribute player loads among different servers. Match-style MMO engines are designed to host only player-versus-player games and do not have a persistent game world outside the match being played. A few engines go to great lengths to create a simulated environment, complete with physics and dynamic objects that move in a realistic way when interacted with, like a flight simulator would.
Of all of the types of MMO engines, the one type that is used most often is a 3D persistent world engine. This generally manages on a server a persistent world with which players can interact. The engine might have support for multiple servers, meaning players can choose which server to play on to help distribute the player load so no one system becomes overburdened. Alternately, this type of engine can use a system in which all players technically are on the same server, although several computers — called shards in this case — are actually working together to distribute the processing tasks as needed.
Certain MMO engines confront the problem of massive player loads by using a system known as instancing. These MMO engines have a persistent world area in which players can interact with one another, sometimes only socially. When players enter areas where more complex gameplay occurs, such as a combat area or a sub-game, the engine spawns a copy of the area that only the player or a small group of players can actually access. This can save processing power, because the instanced area is usually run on the player’s computer through the game client. It also avoids overcrowding of popular areas because groups of players will not be constantly running into one another, allowing for more controlled gameplay.
Some MMO engines, including some that spawn from single-player games, act more like match servers for players than immersive online worlds. These engines do not have a persistent world in which players can move and interact with one another, but instead serve to allow players to find each other, after which they use their own software to start and play a game. Statistics for how a player performs usually are persistent and can occasionally be used to improve some aspect of a virtual character, although this is not always implemented. Most of these MMO engines basically function like an organized sports roster, matching players or teams against one another and recording the outcome of the matches. Match servers take relatively little overhead to run, because the actual game is executed completely from the player’s computer, although it also makes the MMO more vulnerable to client-side cheating.
There also are browser-based MMO engines, although some players do not consider these to be true MMOs. These engines allow a game to be played exclusively through a website interface and can be indistinguishable from other types of MMOs. In some cases, however, they can more closely resemble a single-player offline game. The interaction between players in a browser-based game can be very restricted by web server security issues, and may be limited to posting messages in bulletin board systems. Still, browser-based MMOs remain popular because they are accessible, do not always require a dedicated server, attract casual players and can be played on a mobile device.