Live Game Lobby
A three-dimensional rendering of a game space for a first instance of a game is displayed. The first instance of the game requests position information of avatars in game spaces of other instances of the game. Position information and a player identification for an avatar in another instance of the game is received. A position object is generated based on the position information and player identification, the position object being unable to interact with other objects in the first instance of the game. A graphical representation of the position object is displayed in the three-dimensional rendering of the game space of the first instance of the game, the graphical representation of the position object being positioned in the three-dimensional rendering of the game space based on the received position information.
Latest Microsoft Patents:
Many available video games provide two formats of game play: solo game play, and multi-player game play. In solo game play, a single player plays within a single instance of a game world on a single gaming machine such as a gaming console or a personal computer. In multi-player gaming, the gaming machine is networked with other gaming machines to allow multiple players to play within the same instance of the gaming world so that each of the players can interact with the same objects in the gaming world and so that the gaming world appears the same to each player.
There are several different types of multi-player gaming available. In massive multi-player online games, thousands of players share the same instance of a game world that is being played on a server. New players are added to the instance of the game world by logging into the server. This creates open access to the instance of the game world and allows players to interact with every player logged into the server.
In massive open online play, players log into a server in the same manner as they would in a massive multi-player online game. However, instead of placing all players in the same instance of the game, the server creates multiple parallel instances of the game. For each instance, the server automatically identifies a small group of players that are to be assigned to that instance. For example, the server may identify eight players that are playing within a single instance. In most cases, the groups are formed based on the position of the players' avatars in the game world. An avatar is the representation of the player in the game and can take the form of a character or an object, such as a car. If an avatar moves too far away from the other avatars in the game world, the server will transfer the avatar to another group, and thus to another instance of the game. This transfer happens automatically without any input from the players.
In a third type of multi-player game, a player acts as a host and sends invitations to other players to join in an instance of the game. To send such invitations, the player typically interrupts a game they are currently playing to access a list of friends or available players and to initiate a command that sends the invitation to each of the players.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
SUMMARYA three-dimensional rendering of a game space for a first instance of a game is displayed. The first instance of the game requests position information of avatars in game spaces of other instances of the game. Position information and a player identification for an avatar in another instance of the game is received. A position object is generated based on the position information and player identification, the position object being unable to interact with other objects in the first instance of the game. A graphical representation of the position object is displayed in the three-dimensional rendering of the game space of the first instance of the game, the graphical representation of the position object being positioned in the three-dimensional rendering of the game space based on the received position information.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
As shown in
Console 102 also includes an optical port 130 for communicating wirelessly with one or more devices and two USB (Universal Serial Bus) ports 110(1) and 110(2) to support a wired connection for additional controllers, or other peripherals. In some implementations, the number and arrangement of additional ports may be modified. A power button 112 and an eject button 114 are also positioned on the front face of game console 102. Power button 112 is selected to apply power to the game console, and can also provide access to other features and controls, and eject button 114 alternately opens and closes the tray of a portable media drive 106 to enable insertion and extraction of a storage disc 108.
Console 102 connects to a television or other display (not shown) via A/V interfacing cables 120. In one implementation, console 102 is equipped with a dedicated A/V port (not shown) configured for content-secured digital communication using A/V cables 120 (e.g., A/V cables suitable for coupling to a High Definition Multimedia Interface “HDMI” port on a high definition monitor 150 or other display device). A power cable 122 provides power to the game console. Console 102 may be further configured with broadband capabilities, as represented by a cable or modem connector 124 to facilitate access to a network, such as the Internet.
Each controller 104 is coupled to console 102 via a wired or wireless interface. In the illustrated implementation, the controllers are USB-compatible and are coupled to console 102 via a wireless or USB port 110. Console 102 may be equipped with any of a wide variety of user interaction mechanisms. In an example illustrated in
Controllers 104 each provide a socket for a plug of a headset 160. Audio data is sent through the controller to a speaker 162 in headset 160 to allow sound to be played for a specific player wearing headset 160. Headset 162 also includes a microphone 164 that detects speech from the player and conveys an electrical signal to the controller representative of the speech. Controller 104 then transmits a digital signal representative of the speech to console 102. Audio signals may also be provided to a speaker in monitor 150 or to separate speakers connected to console 102.
In one implementation (not shown), a memory unit (MU) 140 may also be inserted into one of controllers 104(1) and 104(2) to provide additional and portable storage. Portable MUs enable users to store game parameters and entire games for use when playing on other consoles. In this implementation, each console is configured to accommodate two MUs 140, although more or less than two MUs may also be employed.
Gaming and media system 100 is generally configured for playing games stored on a memory medium, as well as for downloading and playing games, and reproducing pre-recorded music and videos, from both electronic and hard media sources. With the different storage offerings, titles can be played from the hard disk drive, from optical disk media (e.g., 108), from an online source, from a peripheral storage device connected to USB connections 110 or from MU 140.
CPU 200, memory controller 202, and various memory devices are interconnected via one or more buses (not shown). The details of the bus that is used in this implementation are not particularly relevant to understanding the subject matter of interest being discussed herein. However, it will be understood that such a bus might include one or more of serial and parallel buses, a memory bus, a peripheral bus, and a processor or local bus, using any of a variety of bus architectures. By way of example, such architectures can include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnects (PCI) bus also known as a Mezzanine bus.
In one implementation, CPU 200, memory controller 202, ROM 204, and RAM 206 are integrated onto a common module 214. In this implementation, ROM 204 is configured as a flash ROM that is connected to memory controller 202 via a Peripheral Component Interconnect (PCI) bus and a ROM bus (neither of which are shown). RAM 206 is configured as multiple Double Data Rate Synchronous Dynamic RAM (DDR SDRAM) modules that are independently controlled by memory controller 202 via separate buses (not shown). Hard disk drive 208 and media drive 106 are shown connected to the memory controller via the PCI bus and an AT Attachment (ATA) bus 216. However, in other implementations, dedicated data bus structures of different types can also be applied in the alternative.
In some embodiments, ROM 204 contains an operating system kernel that controls the basic operations of the console and that exposes a collection of Application Programming Interfaces that can be called by games and other applications to perform certain functions and to obtain certain data.
A three-dimensional graphics processing unit 220 and a video encoder 222 form a video processing pipeline for high speed and high resolution (e.g., High Definition) graphics processing. Data are carried from graphics processing unit 220 to video encoder 222 via a digital video bus (not shown). An audio processing unit 224 and an audio codec (coder/decoder) 226 form a corresponding audio processing pipeline for multi-channel audio processing of various digital audio formats. Audio data are carried between audio processing unit 224 and audio codec 226 via a communication link (not shown). The video and audio processing pipelines output data to an A/V (audio/video) port 228 for transmission to a television or other display containing one or more speakers. Some audio data formed by audio processing unit 224 and audio codec 226 is also directed to one or more headsets through controllers 104. In the illustrated implementation, video and audio processing components 220-228 are mounted on module 214.
In the implementation depicted in
MUs 140(1) and 140(2) are illustrated as being connectable to MU ports “A” 130(1) and “B” 130(2) respectively. Additional MUs (e.g., MUs 140(3)-140(4)) are illustrated as being connectable to controller 104(1), i.e., two MUs for each controller. Each MU 140 offers additional storage on which games, game parameters, and other data may be stored. In some implementations, the other data can include any of a digital game component, an executable gaming application, an instruction set for expanding a gaming application, and a media file. When inserted into console 102 or a controller, MU 140 can be accessed by memory controller 202.
Headset 160 is shown connected to controller 104(3). Each controller 104 may be connected to a separate headset 160.
A system power supply module 250 provides power to the components of gaming system 100. A fan 252 cools the circuitry within console 102.
Under some embodiments, an application 260 comprising machine instructions is stored on hard disk drive 208. Application 260 provides a collection of user interfaces that are associated with console 102 instead of with an individual game. The user interfaces allow the user to select system settings for console 102, access media attached to console 102, view information about games, and utilize services provided by a server that is connected to console 102 through a network connection. When console 102 is powered on, various portions of application 260 are loaded into RAM 206, and/or caches 210 and 212, for execution on CPU 200. Although application 260 is shown as being stored on hard disk drive 208, in alternative embodiments, application 260 is stored in ROM 204 with the operating system kernel.
Gaming system 100 may be operated as a standalone system by simply connecting the system to monitor, a television 150 (
The consoles described in
Player A 312 is playing game instance A 314 on gaming machine A 300. Game instance A 314 includes a game state A 316 that describes the position and status of every object and avatar in a three-dimensional gaming environment of game instance A 314. Players can include human players such as player A 312 and artificial intelligence robots (AI bots) that control the movement of their avatar.
Player B 318 and player C 320 are playing respective separate game instances 322 and 324 on respective gaming machines 302 and 304. Game instance B 322 has game state B 326 and game instance C 324 has game state C 328. Game state A 316, game state B 326, and game state C 328 are all different since game instance A 314, game instance B 322, and game instance C 324 are separate instances of the game. Note that game instance A 314, game instance B 322, and game instance C 324 are all for the same game but are different instances of that same game. As a result, the separate instances may contain similar objects and environments but the status of at least one object or avatar will be different in any two of the game instances. Further, the avatar for each player in a particular instance cannot affect objects in other game instances. Thus, the avatar for player A in game instance A 314 cannot affect objects in game instance B 322 or objects in game instance C 324. As described herein, players A, B and C are said to be remote from each other because they are using separate gaming machines. Those skilled in the art will recognize that although the players are said to be remote from each other, they may be located in the same building or room as long as they are using a separate gaming machine.
Inter-player communication server 308 provides a set of communication services 340 that allow players to communicate with each other through gaming machines 300, 302 and 304. In order to facilitate such communications, inter-player communication server 308 includes user login services 342 that require the players to log into inter-player communication server 308. During login, login services 342 obtain a gamer tag (a unique identifier associated with the user) and a password from the user, as well as a console ID that uniquely identifies the gaming machine that the user is using and a network path to the gaming machine. The gamer tag and password are authenticated by comparing them to information stored in user records 344, which may be located on the same server as user login services 312 or may be distributed on a different server or a collection of different servers. Once authenticated, user login services 342 stores the console ID and the network path in user records 344 so that messages and downloadable content may be sent to the gaming machines.
Game instance A 314, game instance B 322, and game instance C 324 also login to game-specific avatar-tracking server 310 using login services 350. Typically, these login services do not require a password, but simply require the gamer tag. Once the game instance has been logged into game-specific avatar-tracking server, each game instance sends the current position of the avatar for the player in the three-dimensional gaming world of the game instance to avatar-tracking server 310. In some embodiments, each game instance may also send attributes of the player's avatar including level, region, indoors, outdoors, health, weapons, and awards. The player, avatar position, and attributes are stored in a player and avatar position database 352 on avatar-tracking server 310. As the player moves the avatar within the three-dimensional game world of the game instance, the game instance provides position and attribute updates to an avatar update 354 in avatar-tracking server 310. Based on this information, avatar update 354 updates player and avatar position database 352 to reflect the new position and attributes of the avatar.
Under the several embodiments described below, the network structure of
At step 406, player B begins solo play of game instance B 322 on gaming machine 302. Game instance B 322 logs player B 318 into game-specific avatar-tracking service 310 and provides an identifier for player B, the location of player B's avatar in the three-dimensional gaming world of game instance B 322, and attributes of player B's avatar at step 408. Thus, after step 408, player and avatar position database 352 includes player identification information for player A 312 and player B 318, the position of the avatars in their respective game instances 314 and 322, and attributes of the avatars.
At step 410, game instance A 314 and game instance B 322 each request a respective list of players in respective playgroups for player A 312 and player B 314. The lists of players in each respective playgroup represents players that player A and player B may want to join in a multiplayer game.
At step 412, playgroup services 356 of game-specific avatar-tracking server 310 determines the playgroups for player A 312 and player B 318. A playgroup for a player may be determined from such things as: players who are in a player's friends list; players who are using gaming machines that are in a same geographic location, such as a state or a country; players who are of comparable skill levels; and players who engage in the same types of ingame activities such as fighting or exploring; attributes of the avatars; or some combination of these things. Information about a player's friends list, geographic location, and skill level, can be obtained from user records 344 on inter-player communication server 308 or under some embodiments from user records 358 on game-specific avatar-tracking server 310. Note that other criteria may be used to define a playgroup for a player. In general, the definition of a playgroup is such that if player B is in player A's playgroup, player A will be in player B's playgroup. In the example of
At step 416, the server sends player identification information and avatar position information for player B to game instance A 314 and sends player identification information and avatar position information for player A 312 to game instance B 322.
At step 418, game instance A 314 creates a position object, also referred to as a virtual avatar, for player B's avatar and game instance B 322 creates a position object, virtual avatar, for player A's avatar. The position objects are unable to interact with other objects in their respective game instances. Thus, the position object for player B's avatar in game instance A 314, has no affect on other objects in game instance A 314 as defined by game state A 316. In addition, the creation of a position object in a game instance does not provide access to the game instance for another player. For example, the creation of a position object for player B's avatar in game instance A 314 does not provide player B 318 with access to game instance A 314. As such, player B cannot see the objects defined by game state A 316 in game instance A 314. Instead, player B can only see the objects defined in game instance B 322 by game state B 326.
At step 420, the game instances create graphical representations of the position objects in their respective three-dimensional graphical game world if the position objects are located within the current view of the camera. For example, game instance A 314 would create a graphical representation of the position object for player B's avatar. The graphical representation is placed in the three-dimensional graphical space at a location specified by the position of the avatar in the respective other game instance. Thus, the graphical representation of the position object for player B's avatar in game instance A 314 would be at a position that corresponds to the position of player B's avatar in game instance B 322.
By displaying such position objects, embodiments described herein allow a player of a current instance of a game to see where other players are playing in their own instance of the game without those other players affecting the current instance of the game. Thus, the graphical representation of the position object acts as a notification to the current player that other players within their playgroup are playing another instance of the same game and their avatars are located close to the current player's avatar. As discussed further below, this allows the players to initiate communications with each other to begin a multiplayer game session.
In step 500 of
At step 502, player A selects the command to invite the player B to join the player A's game state. In
At step 508, player A's gaming machine 300 and player B's gaming machine 302 begin peer-to-peer communications. Under one embodiment, this is done using inter-player communication server 308 to obtain the network pathway between gaming machine A 300 and gaming machine B 302. Gaming machine A 300 and gaming machine B 302 then negotiate a communication channel to allow peer-to-peer communications between the two machines.
At step 510, game state A is sent to game instance B 322 and at step 512, the properties of player B's avatar in game state B are added to game state A in both game instance A and game instance B. The properties of player B's avatar include the position of the avatar, the appearance of the avatar and the status of the avatar, which includes information such as the health or condition of the avatar, objects held by the avatar, and the experience level of the avatar in game state B of game instance B. Before adding the properties of player B's avatar, the position object for player B's avatar is removed from game instance A so that in essence player B's avatar replaces the position object for player B's avatar. After steps 510 and 512, game instance A and game instance B have been synchronized to game state A and player B's avatar has been added to game state A in place of the position object for player B's avatar.
During the replacement of the position object with player B's avatar, a conflict check will be made to ensure that player B's avatar can be placed in the same position in game state A without interfering with an existing object in game state A. If there is a position conflict, the position of player B's avatar will be shifted to avoid any existing objects in game state A and to place player B's avatar in a “safe” position, such that player B's avatar will not be immediately destroyed based on its positioning.
At step 516, game instance A removes the position object for player B's avatar from the three-dimensional graphical environment and instead displays player B's avatar. An example of the removal of a position object and the insertion of an avatar in its place is shown in
At step 518, game instance B displays a graphical representation of the game space defined by game state A. Thus, after steps 516 and 518, player A can see the avatar of player B, and player B can see the game space of player A's game state. In addition, player B is able to interact with the objects in player A's game state. Thus, player B had its avatar added to player A's game. Changes made by player B's avatar to objects in player A's game will now be reflected in game state A.
After player B's avatar has been added to game state A and game state A has been provided to game instance B, an indication may be sent to game-specific avatar-tracking server 310 that these events have occurred. Under one embodiment, based on these events, game-specific avatar-tracking server 310 discontinues tracking the avatars for game instance A and game instance B to thereby limit the number of players that may be added to game state A. In other embodiments, game-specific avatar-tracking server 310 allows more than two players to play in the same game state and will continue tracking the position of avatars in a game state until a maximum number of avatars in a particular game state is reached. When the maximum number of avatars is reached, the players and their avatars are removed from player and avatar position database 352 and game-specific avatar-tracking server 310.
Returning to
At step 530, game state B is sent to game instance A and is loaded into game instance A. At step 532 the properties of player A's avatar are added to game state B in place of the position object for player A's avatar. At step 534, game instance B removes the position object for player A's avatar from the three-dimensional graphical environment and displays player A's avatar in its place.
At step 540, an optional step of sending an indication that player A's avatar has been added to game state B and that game instance A has been synchronized to game state B may be sent to game-specific avatar-tracking server 310.
Using menu commands, the player that has been added to a game instance may quit the game instance. When a player elects to quit a game instance, attributes of the player's avatar that have changed, such as reaching a new level or reward, can be stored on the players gaming machine. Alternatively, the player's avatar can be returned to the game instance they were playing before being added to the other player's game instance.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Claims
1. A method comprising:
- initiating game play in a first instance of a game for a first player;
- receiving position information indicating the position of an avatar associated with a second player in a second instance of the game, the first instance and the second instance being separate such that the avatar associated with the second player cannot affect objects in the first instance of the game;
- creating a virtual avatar for the second player in the first instance of the game, the virtual avatar such that the virtual avatar cannot affect objects in the first instance of the game; and
- rendering a graphical representation of the virtual avatar in a three-dimensional space in the first instance of the game at a position that is based on the position information for the avatar associated with the second player in the second instance of the game.
2. The method of claim 1 further comprising:
- receiving an indication from the first player that the second player is to be invited to play in the first instance of the game;
- receiving an indication that the second player has accepted the invitation; and
- updating game state information for the first instance of the game to include the avatar for the second player.
3. The method of claim 2 wherein updating the game state information comprises updating the game state information with the properties of the avatar for the second player in the second instance of the game.
4. The method of claim 3 further comprising providing game state information for the first instance of the game to synchronize the game state of the second instance of the game to the game state of the first instance of the game and to thereby allow the avatar for the second player to interact with objects in the first instance of the game.
5. The method of claim 1 further comprising providing position information for an avatar associated with the first player in the first instance of the game to allow a graphical representation of the first player to appear in the second instance of the game, the graphical representation such that it cannot affect objects in the second instance of the game.
6. The method of claim 1 wherein the graphical representation of the virtual avatar comprises a picture of the second player that is different from the avatar associated with the second player.
7. The method of claim 1 further comprising:
- receiving an indication from the first player that they would like to join the second instance of the game;
- receiving an indication that the second player will allow the first player to join the second instance of the game;
- saving game state information for the first instance of the game; and
- loading game state information to reflect the game state of the second instance of the game with the avatar associated with the first player positioned in the second instance of the game.
8. A computer-readable medium having computer-executable instructions for performing steps comprising:
- receiving position information for a first avatar in a first instance of a game being played on a first machine, the first avatar associated with a first player;
- receiving position information for a second avatar in a second instance of the game being played on a second machine, the second avatar associated with a second player, the first instance and the second instance being separate such that the second avatar cannot interact with objects in the first instance;
- providing the position information for the first avatar to the second machine; and
- receiving an indication that the first avatar has been added to a game state of the second instance of the game and a game state of the first instance of the game has been synchronized to the game state of the second instance of the game.
9. The computer-readable medium of claim 8 wherein providing the position information for the first avatar comprises determining that the first player is in a playgroup for the second player.
10. The computer-readable medium of claim 9 wherein determining that the first player is in a playgroup for the second player comprises determining at least one fact from a group of facts comprising: that the first player is in the second player's friends list; that the first machine is within a geographic threshold of the second machine; that the first player and the second player are of comparable skill levels, and that the first player and the second player engage in the same type of in-game activities.
11. The computer-readable medium of claim 10 further comprising receiving attributes of the first avatar and attributes of the second avatar.
12. A computer-readable medium having computer-executable instructions for performing steps comprising:
- displaying a three-dimensional rendering of a game space for a first instance of a game;
- requesting position information of avatars in game spaces of other instances of the game;
- receiving position information and a player identification for an avatar in another instance of the game, the player identification identifying a second player;
- generating a position object based on the position information and player identification, the position object being unable to interact with other objects in the first instance of the game; and
- displaying a graphical representation of the position object in the three-dimensional rendering of the game space of the first instance of the game, the graphical representation of the position object being positioned in the three-dimensional rendering of the game space based on the received position information.
13. The computer-readable medium of claim 12 wherein rendering a graphical representation of the position object comprises rendering the graphical representation even though a graphical representation of another object is rendered in at least part of the same space as the graphical representation of the position object.
14. The computer-readable medium of claim 12 further comprising allowing a player to select the graphical representation of the position object in the three-dimensional rendering of the game space in the first instance of the game.
15. The computer-readable medium of claim 14 further comprising upon selection of the graphical representation of the position object displaying a selection menu that includes a selectable command to send an invitation to the second player to play in a game state defined for the first instance of the game.
16. The computer-readable medium of claim 15 wherein displaying a selection menu further comprises displaying a selectable command to send a request to the second player for the player to join a game state defined for the other instance of the game.
17. The computer-readable medium of claim 15 further comprising receiving an indication that the player has selected the command to send an invitation to the second player to play in the game state defined for the first instance of the game, receiving an indication that the second player has accepted the invitation, and sending game state information describing the game state defined for the first instance of the game to a remote device to allow the second player to play in the game state defined for the first instance of the game.
18. The computer-readable medium of claim 17 further comprising receiving data describing properties of the avatar in the other instance of the game, using the data to generate the avatar in the first instance of the game, and displaying a graphical representation of the avatar in the three-dimensional rendering of the game space of the first instance of the game.
19. The computer-readable medium of claim 18 wherein the graphical representation of the avatar is different from the graphical representation of the position object.
20. The computer-readable medium of claim 16 further comprising receiving an indication that the player has selected the command to send a request to the second player for the player to join the other instance of the game, receiving an indication that the second player has accepted the request, saving the game state of the first instance of the game, receiving game state information describing the game state of the other instance of the game, and sending properties of an avatar associated with the player.
Type: Application
Filed: Jun 21, 2007
Publication Date: Dec 25, 2008
Applicant: Microsoft Corporation (Redmond, WA)
Inventors: Georg Alexander Backer (Guildford), Richard Allen Ham (Guildford)
Application Number: 11/766,466
International Classification: A63F 9/24 (20060101);