Note: Descriptions are shown in the official language in which they were submitted.
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
JOIN IN-PROGRESS ON-LINE GAME SESSION
Copyright Notice / Permission
[0001] A portion of the disclosure of this patent document contains material,
which is subject to copyright protection. The copyright owner has no objection
to the
facsimile reproduction by anyone of the patent document or the patent
disclosure, as it
appears in the Patent and Trademark Office patent files or records, but
otherwise reserves
all copyright rights whatsoever. The following notice applies to the software
and data as
described below and in the drawings hereto: Copyright 2004, Microsoft
Corporation,
All Rights Reserved.
Technical Field
[0002] The technical field relates generally to gaming and more specifically
relates to joining on-line,,computer-based games in progress.
Background
[0003] Computer-based, on-line gaming provides the ability for a large numbers
of players to play a large variety of games. Thus, at any point in time,
numerous game
sessions could be ongoing. Joining a game session, in progress, however, can
be
cumbersome and time consuming. In current systems, for example, a player
wishing to
join a game in progress must be invited to the game session. This typically
requires the
player to contact, either directly or indirectly, the host of the game session
and request an
invite. Contacting the host may be difficult. Further, if contacting the host
takes too long,
the invite could occur after the session is complete, or close to completion.
Summary
[0004] This Summary is provided to introduce a selection of concepts in a
simplified form that are further described below in the Detailed Description
Of The
Illustrative Embodiments. This Summary is not intended to identify key
features or
-1-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
essential features of the claimed subject matter, nor is it intended to be
used to limit the
scope of the claimed subject matter.
[0005] A game player can join a computer-based, on-line game while the game is
in
progress. The player does not have to contact the host to request an invite.
The player can
join the game session without requiring an invitation from the host of the
game session.
The player is not required to contact the host, or any other player in the
game session, prior
to joining the game session. The player can join a game session in progress if
slots are
available in the game session, the game allows joining while in progress, and
no settings
preclude join in progress. The player can join the session by interacting with
a User
Interface (UI) provided by the game system.- It is not necessary for the
player to insert a
game disc or to launch the game to determine whether the host is joinable.
Thus, initiating
the joining of a game session can be accomplished without requiring a game
disc to be
inserted into a game console and without requiring the joining party to have
previously
launched the game. Thus, a player can quickly scan all hosts that player may
be interested
in joining. If the game allows joining while in progress, but no slots are
available, the
player can wait in a lobby until a slot becomes available. Joining a game
session in
progress can be prevented if the host of the game session declares the game
session private,
if a player trying to join a game session is currently in the game session,
and/or if parental
controls prevent joining the game session.
Brief Description Of The Drawings
[0006] The foregoing summary, as well as the following detailed description,
is
better understood when read in conjunction with the appended drawings. For the
purpose
of illustrating joining in-progress on-line game sessions, there is shown in
the drawings
exemplary constructions thereof; however, joining in-progress on-line game
sessions is not
limited to the specific methods and instrumentalities disclosed. In the
drawings:
[0007] Figure 1 is a block diagram of an exemplary computer network
environment in which aspects of joining an in-progress on-line game session
can be
implemented;
-2-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
[0008] Figure 2 is a block diagram illustrating an exemplary console that can
be
incorporated into a network computing environment such as the network
computing
environment of Figure 1;
[0009] Figure 3 is a block diagram illustrating the interaction of a console
with
the remote service;
[0010] Figure 4 illustrates the information gathered to build a user profile;
[0011] Figure 5 through Figure 14 are example illustrations of a user
interfaces
displaying user profile information;
[0012] Figure 15 is a flow diagram of an exemplary process for joining an in-
progress on-line game session; and
[0013] Figure 16 through Figure 18 are example illustrations of user
interfaces for
joining an in-progress game session.
Detailed Description Of Illustrative Embodiments
[0014] Figure 1 is diagram of an exemplary computer network that serves to
illustrate aspects of joining an in-progress on-line game session. Here
computers 100a-
100e can host various ones of the computing objects such as games and other
applications.
Although the physical environment shows the connected devices as computers,
such
illustration is merely exemplary and can comprise various digital devices such
as PDAs,
game consoles, etc. Moreover, communications network 160 can itself comprise a
number
of computers, servers and network devices such as routers and the like.
[0015] There is a variety of systems, components, and network configurations
that
support distributed computing environments. For example, computing systems can
be
connected together by wireline or wireless systems, by local networks or
widely distributed
networks. Currently, many of the networks are coupled to the Internet, which
provides the
infrastructure for widely distributed computing and encompasses many different
networks.
Aspects of joining an in-progress, on-line game session can be usable to
distribute
computer-readable instructions, code fragments, applications and the like to
various
distributed computing devices.
-3-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
[0016] The network infrastructure enables a host of network topologies such as
client/server, peer-to-peer, or hybrid architectures. The "client" is a member
of a class or
group that uses the services of another class or group to which it is not
related. Thus, in
computing, a client is a process (i.e., roughly a set of instructions or
tasks) that requests a
service provided by another program. The client process utilizes the requested
service
without having to "know" any working details about the other program or the
service itself.
In a client/server architecture, particularly a networked system, a client is
usually a
computer that accesses shared network resources provided by another computer
(i.e., a
server). A server is typically a remote computer system accessible over a
remote network
such as the Internet. The client process can be active in a first computer
system, and the
server process can be active in a second computer system, communicating with
one another
over a communications medium, thus providing distributed functionality and
allowing
multiple clients to take advantage of the information-gathering capabilities
of the server.
[0017] Clients and servers communicate with one another utilizing the
functionality provided by a protocol layer. For example, Hypertext-Transfer
Protocol
(HTTP) is a common protocol that is used in conjunction with the World Wide
Web
(WWW) or, simply, the "Web." Typically, a computer network address such as a
Uniform
Resource Locator (URL) or an Internet Protocol (IP) address is used to
identify the server
or client computers to each other. Communication among computing devices is
provided
over a communications medium. In particular, the client and server can be
coupled to one
another via TCP/IP connections for high-capacity communication.
[0018] In general, the computer network can comprise both server devices and
client devices deployed in a network environment (in a peer-to-peer
environment devices
can be both clients and servers). Communications network 160 can be a LAN,
WAN,
intranet or the Internet, or a combination of any of these that facilitates
communication
among a number of computing devices 100a-100e. Moreover, communication
netvvork
160 can. comprise wireless, wireline, or combination wireless and wireline
connections.
Additionally, the computer network can comprise a distributed computing
environment. In
such an environment a computing task can be spread over a number of computing
devices
that are addressable elements in a computer network.
-4-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
[0019] According to an aspect ofjoining an in-progress on-line game session,
communication network 160 can host a service 150 that is accessible from the
plurality of
computers 100a-100e. The service 150 gathers information'and tracks users of
computers
100a-100e to provide computing services for all of the users of the service
150.
[0020] Figure 2 ill,ustrates functional components of a multimedia/gaming
console
100 that can be used as the computers 100a-100e in the network of Figure 1.
The
multimedia console 100 has a central processing unit (CPU) 101 having a level
1 cache
102, a level 2 cache 104, and a flash ROM (Read Only Memory) 106. The level 1
cache
102 and a level 2 cache 104 temporarily store data and hence reduce the number
of memory
access cycles, thereby improving processing speed and throughput. The CPU 101
can be
provided having more than one core, and thus, additional level 1 and level 2
caches 102 and
104. The flash ROM 106 can store executable code that is loaded during an
initial phase of
a boot process when the multimedia console 100 is powered- ON.
100211 A graphics processing unit (GPU) 108 and a video encoder/video codec
(coder/decoder) 114 form a video processing pipeline for high speed and high
resolution
graphics processing. Data is carried from the graphics processing unit 108 to
the video
encoder/video codec 114 via a bus. The video processing pipeline outputs data
to an A/V
(audio/video) port 140 for transmission to a television or other display. A
memory
controller I 10 is connected to the GPU 108 to facilitate processor access to
various types of
memory 112, such as, but not limited to, a RAM (Random Access Memory).
[0022] In an exemplary embodiment, the multimedia console 100 includes an I/O
controller 120, a system management controller 122, an audio processing unit
123, a
network interface controller 124, a first USB host controller 126, a second
USB controller
128 and a front panel I/O subassembly 13 0 that can be implemented on a module
118. The
USB controllers 126 and 128 serve as hosts for peripheral controllers 142(1)-
142(2), a
wireless adapter 148, and an external memory device 146 (e.g., flash memory,
external
CD/DVD ROM drive, removable media, etc.). The network interface 124 and/or
wireless
adapter 148 provide access to a network (e.g., the Internet, home network,
etc.) and can be
any of a wide variety of various wired or wireless adapter components
including an
Ethernet card, a modem, a Bluetooth module, a cable modem, and the like.
-5-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
[00231 System memory 143 is provided to store application data that is loaded
during the boot process. A media drive 144 is provided and can comprise a
DVD/CD
drive, hard drive, or other removable media drive, etc. The media drive 144
can be internal
or extemal to the multimedia console 100. Application data can be accessed via
the media
drive 144 for execution, playback, etc. by the multimedia console 100. The
media drive
144 is connected to the UO controller 120 via a bus, such as a Serial ATA bus
or other high
speed connection (e.g., IEEE 1394).
[0024] The system management controller 122 provides a variety of service
functions related to assuring availability of the multimedia console 100. The
audio
processing unit 123 and an audio codec 132 form a corresponding audio
processing
pipeline with high fidelity and stereo processing. Audio data is carried
between the audio
processing unit 123 and the audio codec 132 via a communication link. The
audio
processing pipeline outputs data to the A/V port 140 for reproduction by an
external audio
player or device having audio capabilities.
[0025] The front panel I/O subassembly 130 supports the functionality of the
power button 153 and the eject button 152, as well as any LEDs (light
ernitting diodes) or
other indicators exposed on the outer surface of the multimedia console 100. A
system
power supply module 136 provides power to the components of the multimedia
console
100. A fan 138 cools the circuitry within the multimedia console 100.
[0026] The CPU 101, GPU 108, memory controller 110, and various other
components within the multimedia console 100 are interconnected via one or
more buses,
including 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 a Peripheral Component Interconnects (PCI) bus, PCI-Express bus, etc.
[0027] When the multimedia console 100 is powered ON, application data can be
loaded from the system memory 143 into memory 112 and/or caches 102, 104 and
executed on the CPU 101. The application can present a graphical user
interface that
provides a consistent user experience when navigating to different media types
available on
the multimedia console 100. In operation, applications and/or other media
contained within
the media drive 144 can be launched or played from the media drive 144 to
provide
additional functionalities to the multimedia console 100.
-6-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
[0028] The multimedia console 100 can be operated as a standalone system by
simply connecting the system to a television or other display. In this
standalone mode, the
multimedia console 100 allows one or more users to interact with the system,
watch
movies, or listen to music. However, with the integration of broadband
connectivity made
available through the network interface 124 or the wireless adapter 148, the
multimedia
console 100 can further be operated as a participant in the larger network
community as
illustrated in Figure 1.
[0029] According to an aspect of j oining an in-progress on-line game session,
when a game is executed on console 100, it provides information to a service
150 operating
on communications network 160. The service 150 tracks the information for all
of the
users connected to the service 150 to provide a rich user experience. The
service 150
tracks user information across games, consoles, computing devices, etc. By
tracking the
infonnation for all users of the service 150, the service 150 can aggregate
statistics for all
users and measure game playing ability, provide a richer user experience by
providing
information about friends (e.g., what game they are playing and what skill
level they have
attained), track user achievements, and generally measure statistics for a
game aggregated
over a large user community.
[0030J In order to provide a consistent data set across games, the system
contemplates a schematized, configuration driven process where each game
generates a
configuration file (according to the schema defined by the service) that
defines the game
data for a particular game. Through a game configuration process, games
describe the data
the game generates about each game player. By using the configuration process,
the
service 150 is able to understand the data as it flows from the game, and is
able to integrate
it in meaningful ways with the other data that the service understands to
create a rich
profile of each user of the service. The profile will follow the user wherever
he goes on the
service, i.e., it is game and location independent.
[0031] For each user (alternatively referred to as a player or gamer), the
service
collects a number of pieces of data (called Profile Data) to build the User
Profile in every
game session-and even after a game session is concluded. In general, the
pieces of the
service experience that feed a profile can include:
-7-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
1. What the user says about himself/herself (including account set up and the
construction of an elaborate personal profile, including the preferred social
gameplay "zone").
2. What others say about the user (feedback scores and a publicly visible
reputation).
3. What the games say about the user (game configuration and integration of
data that comes out of game play to compute a player's skill, among other
things).
4. What the system says about the user (time online, aggregates of games
played, Friends list, console behavior etc.)
[0032] The system creates a "User Profile," which serves as a building block
for
services and applications that aim to create a social community of gamers and
grow
relationships among players. The User Profile is the entirety of information
(e.g.,
metadata) related to a specific user (i.e., the game player's digital
identity). The User
Profile is developed from a set of services that collect and exposes this
information in a
meaningful way to the community. The User Profile also provides for
personalization such
that users can customize and enhance their gaming experience. The User Profile
comprises
various components, including, but not limited to, a Gamercard, game
achievements, and
gamer preferences.
[0033] Referring to Figure 3, there is illustrated an overview of an exemplary
architecture that can be used to implement the User Profile interaction as
well as user
interaction with the game session service. The console 100 interacts with a
remote service
158 that provides services 16.1 such as voice/chat, a friends list,
matchmaking, content
download, roaming, feedback, tournaments, voice messaging, join in progress,
and updates
to gamers. The service 158 also maintains the Profiles in a profile database
162 and
configuration data 164 used by the services 158 and games 154. The service 158
collects
Profiles, aggregates, processes information supplied by other services 158,
and fulfills real-
time client requests for retrieving Profile-related services. The Profiles in
the database 162
are also used by the games 154 to enable, among other things, personalization
and
customization, etc.
-8-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
[0034] Using the console 100, the user can interact with a Guide 156. The
Guide
156 provides an interface by which the user can navigate to, and enter,
various online areas
and options provided by the remote service 158. The configuration data 164
stored by the
service can be used to determine features and options provided by the Guide
156. When
the game 154 is running, a defined set of APIs (including SetContext,
SetProperty,
SetAchievement, and Session APIs for writing data about players, and a number
of
specialized read APIs for viewing statistics, achievements, and other Profile
data) are used
to call and interact with the services 158. When requesting Profile
information via the
APIs, the game 154 can pass a unique identifier of a user. The service can
return a
Gamercard (discussed below), game statistics, game achievements, affiliations,
game
settings, etc. pertaining to a user.
[0035] Service 158 assists in tracking and displaying a wide-variety of in-
game
statistics, such as number of points, best lap times, and (importantly, for
calculating the
skill value needed in Matchmaking) win/loss. These statistics can be provided
for a user.
All statistics are provided by the various games that a user plays and
provided to the service
for inclusion in a player's User Profile. For example, a first-person shooter
title may want
to define a`Point' Property to be tracked independently for each `Map' Context
(e.g. 5
Points on Blood Creek vs. 10 Points on Battle Range). That information could
be
displayed as:
"PER-h1,1P POINTS"
Map Points
Blood Creek 5
Battle Range 10
[0036] Referring to Figure 4, the Profile 166 represents a User Profile. The
Profile 166 is created when a user creates a profile (selected from the guide
156) and
chooses his/her unique Gamertag (a unique name), tile (picture/avatar
associated with the
user), and other options during an account sign-up phase. From there, a base
Profile 166 is
created. The Profile 166 can then be populated from several sources. For
example, the
Profile 166 can include self-described data 168 from the Profile owner. Other
gamers 170
can provide feedback regarding the Profile owner. The service 158 can track
the gamer's
-9-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
online and offline activity, In addition, the games 154 can report the gamer's
statistics and
game achievements.
[00371 The owner of a Profile can edit his/her Profile 166 directly and
control
who can view each section of the Profile. The Profile 166 can be edited via
general fields
(e.g., tile, country, language, gender, greeting, etc.)Iand/or system settings
(e.g., voice
output, controller vibration, character name, game format, game mode, etc.).
Privacy/Opt-
out Settings can be tuned for the Profile to, e.g., restrict presence
information only to
friends, allow game achievements to be visible to all, etc.
[0038] The Profile 166 can include feedback provided by other players 170.
Feedback helps others learn about a particular gamer. For example, if the
gamer uses foul
language or aggressive play in game sessions, other gamers can submit feedback
to the
service 158. The feedback mechanism improves user experience by building
reputations.
Players can therefore be anonymous, but not unknown because of the accumulated
feedback.
[0039] In another aspect of joining in-progress on-line game sessions, the
service
158 and games 154 track online and offline activity of gamers to provide usage
statistics in
the Profile 166. When a gamer plays online, a particular game title is added
to list of
games played that is made visible to others. While offline, the game console
100 and game
154 track the gamer's activity via a mechanism for instrumenting games to
collect detailed
information about a specific player's in-game statistics and accomplishments.
The Profile
166 is updated during the next connection to the service 158 to reflect the
offline play.
Game achievements can be reported to the service 154 by games via the Gamer
Profile data
mechanisms.
[0040] As noted above the Profile 166 can be used for customization and
preference setting on a global level, as well as a per game level. Gamer
preferences aid
games 154 in choosing defaults for common settings such as game profile name,
controller
inversion and controller vibration, etc. For example, if a gamer likes using
an inverted
controller, this preference will be used for new titles as they are played.
Games 154 have
access to Gamer Profiles via the database 162 and services 161. In addition,
game usage
data can be mined to tune the game 154 to the user's particular preferences
and game
features updated after the initial game launch.
-10-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
[0041] A presence service can be included to provide information about user's
whereabouts and activities. Presence information is available to those users
that the gamer
wishes to share it. The Gamer Profile is the primary ways to access the
presence
information.
[0042] Referring to Figure 5 through Figure 13, the Profile can be viewed in a
number of ways and forms, and is typically displayed in the Gamercard 172. The
Gamercard 172 is the visual representation of the Gamer Profile (e.g., Profile
166 as
applied to a gamer) that is available to games on the console 100 and, e.g.,
the web. The
Gamercard 172 serves as a summary or snapshot of a player's Profile 166.
Gamers can use
the Gamercard to set up a matchmaking list where gamers are added to a
preferred players
list to play again in the future.
[0043] As shown in Figure 5, the Gamercard 172 can be divided into two
regions,
a base area 174 and a context-specific (or extended) area 176. The base area
174 provides
a set of Gamer Profile information in a standard and consistent way across
multiple
contexts, whereas the extended area 176 can be customized to fit a specific
context.
Although the Gamercard 172 of Figure 5 through Figure 13 are shown in the
context of the
guide 156, the Gamercard 172 can be visually separated from the rest of the
screen and
adopt the background color of the screen it is displayed on. In addition, the
Gamercard 172
can be temporarily replaced by an animation while it is being loaded for
viewing.
[0044] The base area 174 can be provided in different variants corresponding
to
differing contexts, while being a consistent view within each context. For
example, an
online Gamercard 172 is shown when one player is looking at another player's
Gamercard
172 during an online session. The online base area 174 includes details such
as the player's
Gamertag, gamer tile, overall community rating, gamer Cred (a points-based
reward points
system), gamer zone, country, membership tier, awards, etc. An offline
Gamercard 172 is
shown when a player is looking at his/her own Gamercard 172. The offline base
area 174
can include a subset of the online base area and cari further include
information regarding
titles played and time played. In an exemplary embodiment, the base area 174
of a
Gamercard 172 can be fixed in size, have a consistent, static layout and have
a fixed
placement of all information elements, such as Tile or Gamer Cred. '
-11-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
[0045] The extended area 176 can include a set of Gamercard Actions, such as
"View Profile" and "Send Feedback," etc. In an exemplary embodiment, the
extended area
of the Gamercard is not fixed in size, because it can vary based on the
context. As shown
in Figure 5 through Figure 13 a user can scroll through the list of other
users via the guide
156 and a friends list 178. The Gamercard for other users can be displayed as
the user
scrolls among his/her friends or the user can be presented with an option to
see a full view
of the Gamer Profile. The full view mode consists of different views of the
extended area
176 and can include several sections, such as a Profile Summary, Community
Feedback,
Game Achievements, Activity, and Social Network. The guide 156 can advance
through
the list of friends, recent players (and summary sections for each player), a
user home page
for navigating to various options and settings, etc.
[0046] The profile summary includes information regarding number of games
played, time played, tile, greeting, etc. The community feedback includes
ratings on style,
sportsmanship, language, cooperation, etc. The game achievements section
includes recent
titles, experience points (gamer Cred), time played, game-specific statistics
and
achievements, etc. The activity section includes Gamer Cred earned, sessions
played, total
time played, active days on the service, etc. The social network includes
friends, groups,
positive/negative feedback count, etc.
[0047] The system can match players to game sessions based on social and/or
skill related interests. For online, multi-player games, Matchmaking connects
a game
.player to a session. A Match made session is an instance of game play that
includes 2 or
more gamers playing a game until they either decide to terminate the session
or until the
session meets its end criteria (as defined by the game). In an exemplary
embodiment, the
person who creates the session is the host. Some games are hostless, meaning
that the
game does not assign any special function to the person who originated the
game. In such a
case, the originator can be a person who was searching for a session with
specific criteria
and, when it was not found, the game created a session for the person and
advertised it for
others to match into it. Matchmaking involves joining a session that has, as a
minimum,
one player already in place. A gamer makes a Match by selecting "Matchmaking"
in a
game or in an out-of-game Matchmaking system. The Matchmaking UI can allow a
gamer
to add some filters to his search for a session (e.g., specifying a map or
difficulty level), or
it can push a gamer directly into a search query. In most cases, with or
without filters, a
-12-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
gamer is given a session search result which consists of a list of sessions.
Each session is
defined by a session descriptor that includes a short summary of pertinent
information
about that session. If no search result is shown, a player can be dropped
directly in the
lobby of the game that best meets his/her search criteria.
[0048] When a game player chooses to Matchmake into a session, in the first
session, the profile data he has set describing himself is used to "prime the
pump" and find
the best fellow new gamers to play with. Just by playing, the game player
associates with a
group of fellow gamers who become "Recent Players" on the Affiliates List. The
service
preferably prioritizes playing with Recent Players over strangers in future
session, but once
a game player give positive feedback, these "positive feedback" people are
remembered by
the system and are given even higher priority. Over time, as a gamer becomes
very
familiar with a set of players, he invites them to become friends. These
friend gamers are
given higher priority.
[0049] In addition to Matchmaking based on a query with User Profile, the
Social
Matchmaking system, in conjunction with the tracking of friends, recent
players, and
feedback on recent players, builds a network of Affiliates who are prioritized
for Match.
[0050] The Affiliates list is a prioritized list of people for a player that
includes
(1) Friends (i.e. people who the player has invited, and who have accepted the
invitation, to
a preferred social network that allows exchange of messages and state
information), (2)
Positive Feedback people (i.e., people about whom the player has given
positive feedback),
and (3) Recent Players. The Social Matchmaking service always looks first
(before
conducting the query above) for the presence of Affiliate sessions on the
service. If any
person on a player's Affiliates list is online and in a joinable session, the
service will return
that session. If there are multiple Affiliate sessions, the ones with Friends
are given
priority over those with Positive Feedback People or those with Recent
Players. Positive
Feedback People are given priority over Recent Players.
[00511 In accordance with the above, Figure 6 illustrates a list of Recent
Players
in the guide 156. The Gamercard displayed, when browsing recent players, can
show the
base area and an extended area that provides information regarding recent
games, feedback,
and presence of the recent players. Figure 6 through Figure 9 illustrate
further details that
can be obtained about recent players, such as general achievements and gamer
Cred (Figure
-13-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
7); game specific achievements, gamer Cred, times/sessions played (Figure 8);
and a date-
sorted achievement display (Figure 9).
[0052] Figure 10 illustrates an exemplary user home page from which the user
can
navigate among the various options provided by the service 158, edit Gamercard
information, change game settings, set preferences and privacy settings, etc.
Such settings
and preferences can be accessed using the exemplary user interfaces of Figure
11, Figure
12, and Figure 13. It is emphasized that the user interfaces (Uls) of Figure 5
through
Figure 13 are provided for exemplary purposes only and are not intended to
limit joining an
in-progress on-line game as recited in the claims.
[00531 There can be differences, between how the guide 156, games 154, and
players trigger Gamer Profile viewing. One instance is a user-instantiated
Gamercard.
Here, if a user receives a request from another gamer, the user and/or the
game can pause
the game 154 and bring up the Gamercard 172 to find out who is sending the
request.
There can also be a game-instantiated Gamercard 172, where a user can select
to view the
Gamercard 172, which brings up a Gamercard system application.
[0054] Players can join an in-progress, on-line game session without requiring
an
invitation from the host of the game session. In fact, a player is not
required to contact,
prior to joining the session, any player currently in the game session.
Further, a player is
not required to launch the game to determine whether a session is joinable.
Players can
join games in progress via the Gamer Profile UI, for example, depicted in
Figure 14. As
indicated in the area 180, a player has several options from which to select.
For example,
as depicted in Figure 14, the player can invite another into a game session,
join a game
session in progress (182), send a message, compare games, file a complaint,
and block
conimunication. Selectiing join in progress (182) starts a process for
allowing the player to
join the game indicated in the Gamer Profile. A game session can bejoinable if
there are
open slots available to the person seeking a slot. Some games that have join
in progress
sessions will advertise that a session is joinable until every public slot is
filled. If a slot is
available, a gamer can select a session and join it. If all slots are filled,
a player can enter a
lobby and wait until a slot becomes available.
[0055] Figure 15 is a flow diagram of an exemplary process for joining an in-
progress on-line game session. As described above, the player can search for a
game
-14-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
session to join. Upon finding a game session to join, the player decides to
join the game in
progress at step 200. An exemplary UI for making this selection is shown in
Figure 14.
The UI indicates if the game session is joinable or not. For example, as
depicted in Figure
14, the selectable button 182 would not be rendered, or be grayed out for
example, if the
associated game were not capable of being joined in progress. Also, the
selectable join in
progress button 182 would not be rendered, or grayed out, if the player was
already in the
game session. Further, for games that are capable of being joined in progress,
in an
exemplary embodiment, the host of the game session can decide whether the game
is to be
public or private. If the host declares the game private, the game session can
not be joined
in progress (not joinable). If the host'declares the game session public, and
the game is
capable of being joined in progress, the game is joinable in progress. This
declaration
could be implemented, for example, by setting a flag, or flags, in a call game
session API.
Also, a game session can be not joinable if parental controls, or the like,
prevent a player
from joining a game. Thus, a game session can be not joinable if no slots are
available to
accommodate additional players, if the game is a non-joinable game, if the
host of the game
session declares the game session private, if the player attempting to join
the game session
is currently in the game session, and/or if parental controls prevent a player
from joining a
game session.
(0056] A game session can be partially joinable. A game session can be joined
within a time frame, during predetermined portions of a game, of a combination
thereof.
For example, a race game may be joinable until the race begins. As opposed to
a shooter
game that be joinable at all times and during all portions. Flags in a call
game session API
can be set to indicate if respective portions of a game session are joinable
or not joinable.
The game can give the session host the option to advance the session into a
state where it is
no longer joinable. Alternatively, the game can require all session
participants to confirm
their readiness in order to advance the session into a non-joinable state.
[0057] If the player decides not to join (step 202), the guide is closed at
step 204.
This might be the case, for example, if after selecting join in progress, the
player realizes
that he misplaced the game disc. Also at step 202, the source of the game code
is
determined. If the game code is in the memory of the player's game console, it
is
determined at step 206 if the player is currently in a game session. If the
player is not
-15-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
currently in a game session (step 206), the game is launched at step 212 and
the game
session is joined at step 222.
;[0058] If the player is currently in a game session (step 206), the player is
asked if
he wants to exit the current game at step 208. An exemplary UI for presenting
this question
is shown in Figure 16. If the player does not want to exit the current game
session, the
player responds according (selects "No" as depicted in Figure 16), the guide
is closed at
step 210. If the player decides to exit the current game session (selects
"Yes" as depicted
in Figure 16), the game is launched at step 212 and the session is joined at
step 222.
[0059] If the game (step 202) cannot be detected on any connected disk drive
device, the player is prompted to insert the disk at step 214. An exemplary UI
for
prompting the player to insert the game disk is shown in Figure 17. The player
also is
given the option to cancel the join in progress at step 214. If the player
decides to cancel,
the guide is closed at step 218: If the player decides to continue, the disk
is inserted and the
game is loaded into the game console at step 216. The game is then launched at
step 220
and the session is joined at step 222.
[0060] If the game code was not found either in game console memory or on a
disk (step 202), or the player selects to download the game code, the game
code is
downloaded at step 224. That is, if the game is not detected on the game
console of the
joining party, the game is automatically downloaded and launched at the
joining party's
console. In an exemplary embodiment, this is true only for the games that are
configured
on the system as "Downloadable." If the game is not configured as
Downloadable, then the
user is informed that a disc must be inserted. In an exemplary embodiment, the
player is
told that the game could not be found and that the player has the option to
download the
game, search again, or cancel the join in progress. An exemplary UI for
providing this
information and presenting these options is shown in Figure 18. If the player
decides to
cancel, the guide is closed at step 204. If the player decides to search
again, the process
proceeds to step 202. A player could be instructed to search again, for
example, after
attaching a removable memory unit. If the player decides to continue (select
"Yes" as
depicted in Figure 18, the game is launched at step 226 and the session is
joined at step
222.
-16-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
[00611 If the player would rather create a game session than join an existing
session, the player can proceed to a screen that allows the player to pick a
game title for
which he would like to create a session. At that point, the player can define
the game based
on the game configuration options. For example, the player can select the
level of play, the
number of players, and so on. After the player defines the game session
(defined by the
game in the configuration process), the player enters a game lobby until
participants join.
That game session will then show up on other gamers' screens that were
searching for a
game to join. Games set up in this way are "hosted" games (hosted by the
player who
created the session) that result in a game "Party," and when they are
completed, all of the
players have the option of either continuing in the same game, letting the
host change the
game settings for that game, or returning to the out-of-game lobby.
[0062] Private Parties can be managed in by identifying the assembly of
players in
the party separately from the gathering of players for a particular session of
game play. In
addition to waiting for gamers to join the game session, the player can
actively seek
participants and build a Party. The player can browse the Gamercards on
friends list,
Recent Players list and or otherwise find gamers with User Profiles that meet
certain search
criteria, e.g., having a certain skill level, locale, and/or reputation, or
who are otherwise
friends or Affiliates. After finding the various matching garners, the player
can invite them
to join a Party session directly by sending that gamer an invite to the Party
session. If the
player accepts the invite, he is joined in the OOG match Party lobby.
Alternatively, a voice
channel can be opened whereby the gamers can communicate, e.g., about the game
session.
Finally, while browsing for gamers, selected gamers can be added to the
player's Affiliates
list so that they will be noted as Affiliates in future game selections.
[0063] Rather than selecting to join an existing competition, the player can
create
a new competition and invite other to join via the process described above. A
player has
two options to create an out-of-game competition. First, the player can
quickly enter a
competition out-of-game on the web or in the Guide that was previously defined
in its
entirety via the corifiguration process. That is, the game developer provides
a predefined
competition setting for a game that is provided to the service via the
configuration data. In
that case, the player selects a game and then selects one of the available
predefined
competitions for that game. Similarly, the player can create a custom
cornpetition by
selecting a game that has competition enabled and defining the various
parameters for the
-17-
CA 02635836 2008-07-15
WO 2007/087078 PCT/US2006/049642
competition that were defined by the configuration data for that game, e.g.,
the number of
rounds, single elimination, and so on. A player selects these options on the
web or in the
Guide and creates a competition structure.
[0064] Whichever, mechanism the player engages to enter the competition, after
entering the competition, the service maintains the competition structure and
is viewable on
the service over a web connection or directly from the Guide on the console.
The
competition structure for example includes the topology of the competition,
e.g., single
elimination tree structure, match ups of the, various competition entrants,
and so on. A
competition home is set up where the topology and match-ups are viewable, both
on the
web and in the Guide, by all participants. Thereafter, the information is sent
to the host
console 100, e.g., the lobby unique ID, unique competition ID, unique round ID
and unique
match ID and the game play arbitration is started. Each round then starts and
completes.
At then end of each round, each console sends results back to the host along
with the
competition ID, unique round ID and unique round match ID. Thereafter the next
round of
competition is set up by the service and the process repeats until the
competition is
complete.
[0065] Those of ordinary skill in the art will understand that there are
various
modifications that will fall within the scope of the appended claims. While
joining an in-
progress, on-line game session has been described in connection with the
illustrative
embodiments of the various figures, it is to be understood that other similar
embodiments
can be used or modifications and additions can be made to the described
embodiments for
performing the same function of joining an in-progress, on-line game session
without
deviating therefrom.
-18-