Massively Multiplayer Online Games (“MMOs”) allow multiple players to play together simultaneously, usually in a virtual world. MMO role-playing games (“MMORPGs”) are popular types of MMOs where player-controlled characters to interact with each other in the virtual world. The player-controlled characters may have goals, jobs, or roles, and go on quests, missions, or even run errands. Most tasks that can be done in the real world can now also be done in MMORPGs.
Many MMORPGs also allow players to perform tasks and assume roles in the virtual world that would not be possible in the real world. For example, characters may wield a battle axe with skill, fly, cast spells, shoot lasers, have mechanical bodyparts, teleport, phase, or use other special powers or abilities. In an example well-known MMORPG, World of Warcraft® (“WoW”), characters move around a two-dimensional or three-dimensional virtual world meeting and interacting with other characters, completing quests, defeating bosses in dungeons, battling other characters, going on massively multiplayer raids, and making friends. WoW has around ten million monthly subscribers, and each subscriber may have multiple characters.
Most MMORPGs have a server-side authentication mechanism that checks a user's identity before the user is allowed to begin controlling his or her character in the virtual world. The user enters his or her information from a client-side device such as a personal computer, a game console, or a mobile device. Once the user is authenticated, many of the games allow the user to select a character and begin a game session in the virtual world. Server(s), referred to herein as “world server(s),” control the interactive gameplay between the character and other characters as the characters move around the virtual world. To support interactive gameplay, world servers may manage visibility of the characters, movement, spells, effects, inventory, items, currency, achievements, stats, non-player character artificial intelligence (“NPC AI”), combat, trade, or textual, verbal, or visual communication such as chat, speak, and yell functions.
The virtual world may include different types of terrain, sky, light, texture, buildings, trees, creatures, objects, non-player characters (NPCs), and characters controlled by other players. Example objects may include items that can be equipped, consumed, stowed, bought, sold, or used by the character, and other entities in the environment that are moveable or non-moveable, moving or non-moving, breakable or non-breakable, visible or non-visible, living or dead, and even entities that inflict damage or restore health, or are enchanting or disenchanting. Equipped items such as armor, shields, helmets, boots, necklaces, gauntlets, and swords or other weapons may boost the ability to dodge, parry, absorb, or reduce damage or critical hit probability of incoming attacks, or boost the damage, critical hit probability, piercing effect, or accuracy of outgoing attacks.
A single instance or version of the virtual world may be hosted by world server software running on one or multiple machines. An operating instance of the virtual world is referred to herein as a “realm,” and the operating instance of the virtual world may utilize a world server and other supporting servers (collectively, “realm servers”) to facilitate management of the characters in the virtual world. Different machines running world sever software may be designated for handling different zones of the virtual world. High populations of characters may also be split up among multiple instances of the virtual world in order to accommodate the high populations and to reduce the transactional and computational load on each individual instance of the virtual world, potentially resulting in a better quality of gameplay. The multiple instances of the virtual world may be hosted by world server software running on one or multiple machines in one or multiple locations. In one example, different instances of the virtual world are hosted by different machines in different locations of the real world, such as different cities, regions, or zones of the real world. Users may choose to connect to a virtual world instance that is hosted on a machine near the location of the user in the real world.
Multiple instances of the virtual world may be running simultaneously and independently such that characters may interact with other characters in the same instance of the virtual world without being able to see characters in other instances of the virtual world. World server(s) managing a single instance of the virtual world may keep track of character movements and actions in the single instance of the virtual world, without needing to keep track of character movements and actions in other instances of the virtual world. Different instances of the virtual world may be based on the same map or different maps that have at least some corresponding zones or regions. In one example, two maps may have a certain city in common but may otherwise be different. The corresponding city may or may not be identical in the two maps.
A zone is a region or territory of a virtual world that includes many different regions or territories at different locations. Some zones may share boundaries with each other, and others may not. Different characters in an instance of a virtual world may see each other in a zone of the realm regardless of party affiliation. The zone does not need to be re-instantiated for each party in order to support interaction among the characters in the party because the zone has been instantiated once for all of the characters in the realm.
Information about characters that belong to an instance of a virtual world may be stored at a character information server that may be on a same local network and at a same location as a world server for the virtual world. In this manner, the world server and the character information server may communicate without requiring packets to be sent on a third party network, which may be subject to uncontrollable delay. Characters may be tied to a single instance of the virtual world for the life of the character or for individual game sessions between world servers and clients. Alternatively, a character's membership to an instance of the virtual world may be transferred to another instance of the virtual world at the request of the player, and optionally for a fee. Upon a transfer of a character from a first instance of the virtual world to a second instance of the virtual world, information about the character is retrieved from a first character information server that is collocated with and supports the first instance of the virtual world, and sent to a second character information server that is collocated with and supports the second instance of the virtual world.
Many characters level up together as versions of a game are released and as the game becomes popular in new countries, regions, or languages. The game may support a variety of characters that have reached different progress or experience levels such that some instances of the virtual world become imbalanced with too few characters of certain types and/or levels. Splitting up a virtual world into multiple instances is helpful for managing high populations in the virtual world, but splitting up the virtual world into multiple instances may make it more difficult for characters to find other characters that are in similar, unique circumstances. For example, low-level characters may not be able to find other low-level characters if their instance is populated primarily with high-level characters.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.