U.S. patent application number 11/766466 was filed with the patent office on 2008-12-25 for live game lobby.
This patent application is currently assigned to Microsoft Corporation. Invention is credited to Georg Alexander Backer, Richard Allen Ham.
Application Number | 20080318687 11/766466 |
Document ID | / |
Family ID | 40137054 |
Filed Date | 2008-12-25 |
United States Patent
Application |
20080318687 |
Kind Code |
A1 |
Backer; Georg Alexander ; et
al. |
December 25, 2008 |
Live Game Lobby
Abstract
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.
Inventors: |
Backer; Georg Alexander;
(Guildford, GB) ; Ham; Richard Allen; (Guildford,
GB) |
Correspondence
Address: |
WESTMAN CHAMPLIN (MICROSOFT CORPORATION)
SUITE 1400, 900 SECOND AVENUE SOUTH
MINNEAPOLIS
MN
55402-3244
US
|
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
40137054 |
Appl. No.: |
11/766466 |
Filed: |
June 21, 2007 |
Current U.S.
Class: |
463/42 ;
463/43 |
Current CPC
Class: |
A63F 13/12 20130101;
A63F 13/49 20140902; A63F 2300/5533 20130101; A63F 2300/408
20130101; A63F 2300/556 20130101; A63F 13/79 20140902; A63F
2300/554 20130101; A63F 13/48 20140902 |
Class at
Publication: |
463/42 ;
463/43 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
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.
Description
BACKGROUND
[0001] 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.
[0002] 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.
[0003] 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.
[0004] 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.
[0005] 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.
SUMMARY
[0006] 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.
[0007] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] FIG. 1 is a perspective view of a gaming console.
[0009] FIG. 2 is a block diagram of components of a gaming
console.
[0010] FIG. 3 is a block diagram of network connections between
servers and gaming machines.
[0011] FIG. 4 is a flow diagram for providing positional objects in
separate instances of games.
[0012] FIG. 5 is a flow diagram of a method of initiating a
multi-player game.
[0013] FIG. 6 is a screen shot showing a displayed positional
object.
[0014] FIG. 7 is a screen shot showing a highlighted positional
object.
[0015] FIG. 8 is a screen shot showing an invite menu.
[0016] FIG. 9 is a screen shot showing an avatar brought into an
instance of a game.
[0017] FIG. 10 is a screen shot of an avatar displayed within a
displayed structure of an instance of a game.
[0018] FIG. 11 is a screen shot of the positional object of FIG. 10
highlighted.
[0019] FIG. 12 is a screen shot of an invitation.
[0020] FIG. 13 is a screen shot after a player has been moved to
another instance of a game.
[0021] FIG. 14 is a block diagram of network connections during a
multi-player game.
DETAILED DESCRIPTION
[0022] FIG. 1 shows an exemplary gaming and media system 100. The
following discussion of this Figure is intended to provide a brief,
general description of a suitable environment in which certain
methods may be implemented.
[0023] As shown in FIG. 1, gaming and media system 100 includes a
game and media console (hereinafter "console") 102. Console 102 is
configured to accommodate one or more wireless controllers, as
represented by controllers 104(1) and 104(2). A command button 135
on console 102 is used create a new wireless connection between on
of the controllers and the console 102. Console 102 is equipped
with an internal hard disk drive (not shown) and a media drive 106
that supports various forms of portable storage media, as
represented by optical storage disc 108. Examples of suitable
portable storage media include DVD, CD-ROM, game discs, and so
forth. Console 102 also includes two memory unit card receptacles
125(1) and 125(2), for receiving removable flash-type memory units
140.
[0024] 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.
[0025] 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.
[0026] 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 FIG. 1, each controller 104 is equipped with two
thumbsticks 132(1) and 132(2), a D-pad 134, buttons 136, User Guide
button 137 and two triggers 138. By pressing and holding User Guide
button 137, a user is able to power-up or power-down console 102.
By pressing and releasing User Guide button 137, a user is able to
cause a User Guide Heads Up Display (HUD) user interface to appear
over the current graphics displayed on monitor 150. The controllers
described above are merely representative, and other known gaming
controllers may be substituted for, or added to, those shown in
FIG. 1.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] FIG. 2 is a functional block diagram of gaming and media
system 100 and shows functional components of gaming and media
system 100 in more detail. Console 102 has a central processing
unit (CPU) 200, and a memory controller 202 that facilitates
processor access to various types of memory, including a flash Read
Only Memory (ROM) 204, a Random Access Memory (RAM) 206, a hard
disk drive 208, and media drive 106. In one implementation, CPU 200
includes a level 1 cache 210, and a level 2 cache 212 to
temporarily store data and hence reduce the number of memory access
cycles made to the hard drive, thereby improving processing speed
and throughput.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] FIG. 2 shows module 214 including a USB host controller 230
and a network interface 232. USB host controller 230 is shown in
communication with CPU 200 and memory controller 202 via a bus
(e.g., PCI bus) and serves as host for peripheral controllers
104(1)-104(4). Network interface 232 provides access to a network
(e.g., Internet, home network, etc.) and may be any of a wide
variety of various wire or wireless interface components including
an Ethernet card, a modem, a Bluetooth module, a cable modem, and
the like.
[0036] In the implementation depicted in FIG. 2, console 102
includes a controller support subassembly 240, for supporting up to
four controllers 104(1)-104(4). The controller support subassembly
240 includes any hardware and software components needed to support
wired and wireless operation with an external control device, such
as for example, a media and game controller. A front panel I/O
subassembly 242 supports the multiple functionalities of power
button 112, the eject button 114, as well as any LEDs (light
emitting diodes) or other indicators exposed on the outer surface
of console 102. Subassemblies 240 and 242 are in communication with
module 214 via one or more cable assemblies 244. In other
implementations, console 102 can include additional controller
subassemblies. The illustrated implementation also shows an optical
I/O interface 235 that is configured to send and receive signals
that can be communicated to module 214.
[0037] 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.
[0038] Headset 160 is shown connected to controller 104(3). Each
controller 104 may be connected to a separate headset 160.
[0039] A system power supply module 250 provides power to the
components of gaming system 100. A fan 252 cools the circuitry
within console 102.
[0040] 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.
[0041] Gaming system 100 may be operated as a standalone system by
simply connecting the system to monitor, a television 150 (FIG. 1),
a video projector, or other display device. In this standalone
mode, gaming system 100 enables one or more players to play games,
or enjoy digital media, e.g., by watching movies, or listening to
music. However, with the integration of broadband connectivity made
available through network interface 232, gaming system 100 may
further be operated as a participant in a larger network gaming
community allowing, among other things, multi-player gaming.
[0042] The consoles described in FIGS. 1 and 2 are just one example
of gaming machines that can be used with various embodiments
described herein. Other gaming machines such as personal computers
may be used instead of the gaming console of FIGS. 1 and 2.
[0043] FIG. 3 provides a block diagram of multiple gaming machines
300, 302 and 304 connected through a network 306 to an inter-player
communication server 308 and a game-specific avatar-tracking server
310.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] Under the several embodiments described below, the network
structure of FIG. 3 is used to distribute information about the
position of avatars so that an instance of a game knows the
location of avatars in other instances of the game. The game
instance then uses this position information to create a position
object that can be rendered in the three-dimensional graphical
environment of the gaming instance. For example, through these
embodiments, player A is able to see a graphical representation of
the position of player B's avatar in a position corresponding to
the position of player B's avatar in game instance B 322. The
position objects shown in a game instance are not able to interact
with other objects in the game instance. Instead, each position
object is a "ghost" object. Further, even though a player's avatar
may be represented by a position object in another game instance,
the player does not see the objects in that other game instance.
Instead, the player only sees the objects in their own game
instance. For example, if player B's avatar is represented by a
position object in game instance A 314, player B would only see
objects in game instance B 322 and would not see the objects or
game world of game instance A 314.
[0049] FIG. 4 provides a flow diagram of a method for generating
graphical representations of position objects under one embodiment.
In step 400, player A 312 and player B 318 login to inter-player
communication server 308 using user login services 342. At step
402, player A 312 begins solo play of game instance A 314 on gaming
machine A 300. Under one embodiment, solo play takes place in a
three-dimensional graphical space that is rendered by game instance
A 314. As part of starting game instance A 314, game instance A 314
logs player A into game-specific avatar-tracking server 310 by
providing the gamer tag of player A, the position of player A's
avatar in three-dimensional graphical space, and attributes of
player A's avatar at step 404. Under some embodiments, game
instance A 314 first checks a player-selected setting to determine
if the player wants to log into avatar-tracking server 310. Under
such embodiments, the default setting can be that the game instance
does not log into the avatar-tracking server or that the game
instance always asks the player before attempting to log into the
avatar-tracking server. Under such embodiments, the player may use
menus in the game instance to change the values of these
settings.
[0050] 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.
[0051] 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.
[0052] 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 FIG. 4, player A and player B are determined to be in the same
playgroup at step 412. In addition, playgroup services 356 may keep
a list of players that it will not track, if desired, and as such
not include certain players in a playgroup even though they meet
the other requirements for being part of the playgroup.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] FIG. 6 provides an example of a screen shot in which a
graphical representation 600 of a position object is shown in a
three-dimensional graphical environment 602. The graphical
representation of position object 600 includes a player identifier
604 and an icon 606. In FIG. 6, the graphical representation of the
position object takes the form of a two-dimensional icon. In other
embodiments, the graphical representation of the position object
can include a 3D mesh that looks like the avatar of the other
player, a floating two-dimensional sprite that is a picture of the
other player that is different from the avatar of the other player,
a symbolic geometric shape with a color or size that represents the
other player's in-game prowess, or any other desired graphical
representation. In other embodiments, the player identifier 604 may
not be present in the graphical representation, but may be accessed
by selecting the graphical representation of the position
object.
[0057] FIG. 10 provides another example of a graphical
representation 1000 of a position object being displayed in a
three-dimensional graphical environment 1002. As shown in FIG. 10,
since position object 1000 cannot interact with objects in the game
instance in which it is displayed, the graphical representation
1000 of the position object can appear intersected by stationary
objects such as house object 1004 in FIG. 10. In other words,
position object 1000 and house object 1004 at least partially
occupy the same space in the three-dimensional graphical
environment. This would generally not be possible if position
object 1000 were treated like other objects in the game
instance.
[0058] 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.
[0059] FIG. 5 provides a flow diagram of a method of using a
position object to initiate a multiplayer gaming session. In the
discussion of FIG. 5, reference is made to player A and player B
for illustration purposes.
[0060] In step 500 of FIG. 5, player A selects a position object
for the avatar of player B to activate an invite menu. Under one
embodiment, as shown in FIGS. 7 and 9, a player selects a position
object by moving toward the position object so that the position
object becomes highlighted. For instance, in FIG. 7, position
object 600 of FIG. 6 has become highlighted and in FIG. 11,
position object 1000 of FIG. 10 has become highlighted as indicated
by highlighting circles 700 and 1100 respectively. Once the object
is highlighted, the user can press a button on the controller to
activate the invite menu, which is displayed on the screen as shown
in FIGS. 8 and 12. In FIG. 8, the invite menu includes two
selectable commands. The first command 800 allows the user to
invite the remote player to join the user in their current game.
Selectable command 802 allows the user to ask the remote player if
the user may join the remote player in their remote game. Similar
commands 1200 and 1202 are provided in the menu of FIG. 12.
[0061] At step 502, player A selects the command to invite the
player B to join the player A's game state. In FIG. 8, this would
involve selecting command 800 and in FIG. 12, this would involve
selecting command 1200. At step 504, the player B accepts the
invitation and the acceptance is received by game instance A 314.
At step 506, the game state for player B is saved by player B's
game instance.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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 FIG. 9 where position object 600 of FIG. 6 has been
removed and avatar 900 has been inserted in its place.
[0066] 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.
[0067] 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.
[0068] FIG. 14 shows an example of the state of the network
connections after step 520. As indicted in FIG. 14, the connections
between game instance 314 and server 310 and game instance 320 and
server 310 have been broken and a new connection between game
instance 314 and game instance 322 has been created. Note that game
instance 324 continues to be connected to game-specific
avatar-tracking server 310.
[0069] Returning to FIG. 5, player A may alternatively select the
command to request insertion into game state B as shown by step
522. If player B grants this request at step 524, an indication
that player B has granted the request is received by game instance
314 and game state A is saved at step 526 by game instance 314.
Player A's gaming machine and player B's gaming machine then begin
peer-to-peer communications at step 528 in the same manner as
discussed above for step 508.
[0070] 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.
[0071] FIG. 13 provides an example of game instance A displaying a
graphical representation based on game state B in step 536. In FIG.
13, the position of player A's avatar is the same as in FIG. 10
such that street 1006, street 1008 and mailbox 1010 are shown in
both views. However, in FIG. 13, house 1004 has been removed, tree
1300 has been added, position object 1000 has been removed and
player B's avatar 1302 has been added. Tree 1300 and player B's
avatar 1302 are part of game state B. However, house 1004 was part
of game state A. As such, when game instance A switches to
displaying game state B, house 1004 disappears, and tree 1300 and
avatar 1302 appear.
[0072] 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.
[0073] 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.
[0074] 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.
* * * * *