U.S. Pat. No. 7,621,813
UBIQUITOUS UNIFIED PLAYER TRACKING SYSTEM
AssigneeMicrosoft Corporation
Issue DateDecember 7, 2004
U.S. Patent No. 7,621,813: Ubiquitous unified player tracking system
Summary:
The ‘813 patent provides for the use of a single-name for people who wish to play online games. In Microsoft’s case, this invention applies to what we know as Gamertags, which are personalized names picked by a user whenever he registers for Xbox Live. This gamertag becomes the player’s own personal identification name, and allows other players to recognize him whenever he is online. The invention allows a player’s information to be stored under the gamertag, including all accomplishments, stats, and awards achieved during a game. The player also has the ability to have his accomplishments (such as unlocking an achievement while playing an Xbox game) tracked when he is offline. Whenever a player logs back onto Xbox Live, the accomplishments achieved when offline are uploaded to the player’s account and can be viewed and tracked by his online friends.
Abstract:
Systems and method for providing a single sign in a gaming console that associates online activity that is out-of-game/cross game, and/or online activity that is in-game, and/or activity that is offline and in-game with that account. While online, a service tracks activity of gamers and provides usage statistics in a profile. While offline, the game console tracks the player’s activity via a mechanism to collect detailed information about a specific player’s in-game statistics and accomplishments. The offline activity is cached and uploaded when the console connects to the online service. Players can accumulate achievements offline that are credited towards online activities.
Illustrative Claim:
1. In a gaming console, a method of providing a unique player identity, said method comprising: receiving a credential, at the gaming console, associated with a profile for a user; validating the credential; executing a videogame while the gaming console is offline, executing including executing a play of the videogame only on the gaming console; determining that an achievement associated with the videogame has been earned during the play of the videogame; caching offline user activity, at the gaming console, the offline user activity occurring during the play of the videogame; and transmitting, from the gaming console, when the gaming console is online subsequent to the play of the videogame, a signal indicative of earning the achievement to a service provider configured to publish the profile for the user in an interactive guide accessible to remote user devices, wherein the profile includes a username, a picture chosen by the user, videogame statistics accumulated while playing videogames, information indicative of affiliations of the user, and videogame achievements earned while playing videogames.
Illustrative Figure
Abstract
Systems and method for providing a single sign in a gaming console that associates online activity that is out-of-game/cross game, and/or online activity that is in-game, and/or activity that is offline and in-game with that account. While online, a service tracks activity of gamers and provides usage statistics in a profile. While offline, the game console tracks the player's activity via a mechanism to collect detailed information about a specific player's in-game statistics and accomplishments. The offline activity is cached and uploaded when the console connects to the online service. Players can accumulate achievements offline that are credited towards online activities.
Description
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS FIG. 1illustrates the functional components of a multimedia/gaming console100in which certain aspects of the present invention may be implemented. The multimedia console100has a central processing unit (CPU)101having a level 1 cache102, a level 2 cache104, and a flash ROM (Read Only Memory)106. The level 1 cache102and a level 2 cache104temporarily store data and hence reduce the number of memory access cycles, thereby improving processing speed and throughput. The CPU101may be provided having more than one core, and thus, additional level 1 and level 2 caches102and104. The flash ROM106may store executable code that is loaded during an initial phase of a boot process when the multimedia console100is powered ON. A graphics processing unit (GPU)108and a video encoder/video codec (coder/decoder)114form a video processing pipeline for high speed and high resolution graphics processing. Data is carried from the graphics processing unit108to the video encoder/video codec114via a bus. The video processing pipeline outputs data to an A/V (audio/video) port140for transmission to a television or other display. A memory controller110is connected to the GPU108to facilitate processor access to various types of memory112, such as, but not limited to, a RAM (Random Access Memory). The multimedia console100includes an I/O controller120, a system management controller122, an audio processing unit123, a network interface controller124, a first USB host controller126, a second USB controller128and a front panel I/O subassembly130that are preferably implemented on a module118. The USB controllers126and128serve as hosts for peripheral controllers142(1)-142(2), a wireless adapter148, and an external memory device146(e.g., flash memory, external CD/DVD ROM drive, removable media, etc.). The network interface124and/or wireless adapter148provide access to a network (e.g., the Internet, home network, etc.) and may 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 ...
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
FIG. 1illustrates the functional components of a multimedia/gaming console100in which certain aspects of the present invention may be implemented. The multimedia console100has a central processing unit (CPU)101having a level 1 cache102, a level 2 cache104, and a flash ROM (Read Only Memory)106. The level 1 cache102and a level 2 cache104temporarily store data and hence reduce the number of memory access cycles, thereby improving processing speed and throughput. The CPU101may be provided having more than one core, and thus, additional level 1 and level 2 caches102and104. The flash ROM106may store executable code that is loaded during an initial phase of a boot process when the multimedia console100is powered ON.
A graphics processing unit (GPU)108and a video encoder/video codec (coder/decoder)114form a video processing pipeline for high speed and high resolution graphics processing. Data is carried from the graphics processing unit108to the video encoder/video codec114via a bus. The video processing pipeline outputs data to an A/V (audio/video) port140for transmission to a television or other display. A memory controller110is connected to the GPU108to facilitate processor access to various types of memory112, such as, but not limited to, a RAM (Random Access Memory).
The multimedia console100includes an I/O controller120, a system management controller122, an audio processing unit123, a network interface controller124, a first USB host controller126, a second USB controller128and a front panel I/O subassembly130that are preferably implemented on a module118. The USB controllers126and128serve as hosts for peripheral controllers142(1)-142(2), a wireless adapter148, and an external memory device146(e.g., flash memory, external CD/DVD ROM drive, removable media, etc.). The network interface124and/or wireless adapter148provide access to a network (e.g., the Internet, home network, etc.) and may 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.
System memory143is provided to store application data that is loaded during the boot process. A media drive144is provided and may comprise a DVD/CD drive, hard drive, or other removable media drive, etc. The media drive144may be internal or external to the multimedia console100. Application data may be accessed via the media drive144for execution, playback, etc. by the multimedia console100. The media drive144is connected to the I/O controller120via a bus, such as a Serial ATA bus or other high speed connection (e.g., IEEE 1394).
The system management controller122provides a variety of service functions related to assuring availability of the multimedia console100. The audio processing unit123and an audio codec132form a corresponding audio processing pipeline with high fidelity and stereo processing. Audio data is carried between the audio processing unit123and the audio codec132via a communication link. The audio processing pipeline outputs data to the A/V port140for reproduction by an external audio player or device having audio capabilities.
The front panel I/O subassembly130supports the functionality of the power button150and the eject button152, as well as any LEDs (light emitting diodes) or other indicators exposed on the outer surface of the multimedia console100. A system power supply module136provides power to the components of the multimedia console100. A fan138cools the circuitry within the multimedia console100.
The CPU101, GPU108, memory controller110, and various other components within the multimedia console100are 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.
When the multimedia console100is powered ON, application data may be loaded from the system memory143into memory112and/or caches102,104and executed on the CPU101. The application may present a graphical user interface that provides a consistent user experience when navigating to different media types available on the multimedia console100. In operation, applications and/or other media contained within the media drive144may be launched or played from the media drive144to provide additional functionalities to the multimedia console100.
The multimedia console100may be operated as a standalone system by simply connecting the system to a television or other display. In this standalone mode, the multimedia console100allows 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 interface124or the wireless adapter148, the multimedia console100may further be operated as a participant in a larger network community.
When the multimedia console100is powered ON, a set amount of hardware resources are reserved for system use by the multimedia console operating system. These resources may include a reservation of memory (e.g., 16 MB), CPU and GPU cycles (e.g., 5%), networking bandwidth (e.g., 8 kbs), etc. Because these resources are reserved at system boot time, the reserved resources do not exist from the application's view.
In particular, the memory reservation preferably is large enough to contain the launch kernel, concurrent system applications and drivers. The CPU reservation is preferably constant such that if the reserved CPU usage is not used by the system applications, an idle thread will consume any unused cycles.
With regard to the GPU reservation, lightweight messages generated by the system applications (e.g., popups) are displayed by using a GPU interrupt to schedule code to render popup into an overlay. The amount of memory required for an overlay depends on the overlay area size and the overlay preferably scales with screen resolution. Where a full user interface is used by the concurrent system application, it is preferable to use a resolution independent of application resolution. A scaler may be used to set this resolution such that the need to change frequency and cause a TV resynch is eliminated.
After the multimedia console100boots and system resources are reserved, concurrent system applications execute to provide system functionalities. The system functionalities are encapsulated in a set of system applications that execute within the reserved system resources described above. The operating system kernel identifies threads that are system application threads versus gaming application threads. The system applications are preferably scheduled to run on the CPU101at predetermined times and intervals in order to provide a consistent system resource view to the application. The scheduling is to minimize cache disruption for the gaming application running on the console.
When a concurrent system application requires audio, audio processing is scheduled asynchronously to the gaming application due to time sensitivity. A multimedia console application manager (described below) controls the gaming application audio level (e.g., mute, attenuate) when system applications are active.
Input devices (e.g., controllers142(1) and142(2)) are shared by gaming applications and system applications. The input devices are not reserved resources, but are to be switched between system applications and the gaming application such that each will have a focus of the device. The application manager preferably controls the switching of input stream, without knowledge the gaming application's knowledge and a driver maintains state information regarding focus switches.
The present invention is directed to a “Gamer 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. In accordance with the present invention, the Gamer Profile is the entirety of information (e.g., metadata) related to a specific user (i.e., the gamer's digital identity). The Gamer Profile is developed from a set of services that collect and expose this information in a meaningful way to the community. The Gamer Profile also provides for personalization such that users can customize and enhance their gaming experience. As will be discussed in greater detail below, the Gamer Profile consists of various components, including, but not limited to, a Gamercard, game achievements, and gamer preferences.
Referring toFIG. 2, there is illustrated an overview of an exemplary architecture that may be used to implement the Gamer Profile. The console100interacts with a remote service158that provides services160such as voice/chat, a friends list, matchmaking, content download, roaming, feedback, tournaments, voice messaging, and updates to gamers. The service158also maintains the Gamer Profiles in a profile database162and configuration data164used by the services160and games154. The service158collects Gamer Profiles, aggregates, processes information supplied by other services160, and fulfills real-time client requests for retrieving Gamer Profile-related services. The Gamer Profiles in the database162are also used by the games154to enable, among other things, personalization and customization, etc.
Using the console100, the user may interact with a guide156. The guide156provides an interface where the user may navigate to, and enter, various online areas and options provided by the service158. The configuration data164stored by the service158may be used to determine features and options provided by the guide156. When the game154is running, a defined set of APIs are used to call and interact with the services160. When requesting Gamer Profile information via the APIs, the game154may pass a unique identifier of a user. The service158may return a Gamercard (discussed below), game stats, game achievements, affiliations, game settings, etc. Additional details of the various aspects of the exemplary architecture are provided below.
Referring toFIG. 3, the Gamer Profile166is created when a user creates a profile (selected from the guide156) and chooses his/her unique Gamertag (a user's unique name), tile (picture/avatar associated with the user) other options during an account sign-up phase. From there, a base Gamer Profile166is created. The Gamer Profile166may then be populated from several sources. For example, the Gamer Profile166may include self-described data168from the Gamer Profile owner. Other gamers170can provide feedback regarding the Gamer Profile owner. The service158may track the gamer's online and offline activity. In addition, the games154may report the gamer's statistics and game achievements.
The owner of Gamer Profile can edit his/her Gamer Profile166directly and control who can view each section of the Gamer Profile. The Gamer Profile166may be edited via general fields (e.g., tile, country, language, gender, greeting, etc.) and/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 Gamer Profile to, e.g., restrict presence information only to friends, allow game achievements to be visible to all, etc.
The Gamer Profile166may include feedback provided by other players170. Feedback helps others learn about a particular gamer. For example, if the gamer uses foul language or aggressive play in game sessions, other gamers may submit feedback to the service158. The feedback mechanism improves the user experience by building reputations. Players are therefore anonymous, but not unknown because of the accumulated feedback.
As noted above the Gamer Profile166may be used for customization and preference setting on a global level, as well as a per game level. Gamer preferences aid games154in 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. Games154have access to Gamer Profiles via the database162and services160. In addition, game usage data can be mined to tune the game154to the user's particular preferences and game features updated after the initial game launch.
In another aspect of the invention, a unified sign-in is provided as part of a ubiquitous identity that extends across multiple contexts, thus enabling a consistent player identity offline and online. Referring toFIG. 4, there are illustrated the contexts over which the present invention operates—offline172, online174, out-of-game/cross-game176, and in-game178, which represents a convention console environment. The unified sign-in, combined with a mechanism for tracking offline player activity, advantageously eliminates the problems in conventional consoles where players must juggle between profiles and accounts, sharing them with other players, and are unable to accumulated game achievements while playing offline.
In addition, the present invention allows a player to create the in-game profile, such that default options and information (e.g., name, controller settings, etc.) are automatically set. The in-game profiles may be automatically associated with offline accounts so each time a player plays a game, the profile is selected based on the offline account. This minimizes the configuring and tweaking necessary for a player to get started in a new game or to continue in an old game after signing in.
In accordance with the present invention, a player may sign-in under a single account that associates online activity that is out-of-game/cross game, and/or online activity that is in-game, and/or activity that is offline and in-game with that account, and/or offline out-of-game use. While online, the service158, games154and console100track activity of gamers and provide usage statistics in the Gamer Profile166. While offline, the game console100and games154track 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 offline mechanism of the present invention provides several functionalities. The first is caching and uploading achievements when an offline account is enabled for an online account with the service158. This allows players who have been using their offline accounts to upload achievements collected offline to their Gamer Profile166. This way, players can accumulate achievements offline that are credited towards online activities, e.g., tournaments, etc. that require high levels of achievements. The second functionality is caching and uploading achievements after playing offline. Players can play games on the console100anywhere, any time, and the statistics and achievements are updated to the service158to reflect the play. This functionality also operates for new games that have yet to be played online. The Gamer Profile166is updated during the next connection to the service158to reflect the offline play.
A third functionality of the offline mechanism is caching and uploading achievements after a connectivity failure (e.g., an offline synchronization). At first, players may be hesitant to use a wireless router for online play because of dropped connections. Because the present invention caches the statistics during transient connectivity problems, achievements are updated online even if there are network problems. Additional functionalities may include viewing offline achievements when signed-in online, or while offline, etc.
The process for creating and using a single sign in and offline accounts will now be described. Referring toFIG. 5, the first time a player plays on the console100, she may select to create a new offline or online profile. If the user selects an offline profile, the new user may create an account using a GamerTag whereby default settings are applied. After the offline account is created, in-game profiles, game saves and game achievements are organized and associated with the account. She may also choose default game settings, such as vibration OFF and inverter controls ON at this time.
When players sign-up for an online account with the service158using the interface ofFIG. 5, it may be possible that the GamerTag they selected for their offline account is already taken. Therefore, they must change their GamerTag for the new online account. If they accept the change, the offline account GamerTag renamed to the new GamerTag. Any accumulated offline achievements will be credited to the new online account so experienced players do not have to “start over” to show others online that they are worthy players.
After an account is created (e.g., OKO), the user may select the account as the default. The console100may automatically sign in the user when the game boots and provide a pop-up message such as “Welcome back, OKO (Press a button to sign-in somebody else),” require the user to select the default account as shown inFIG. 5, or provide a list of profiles to select from (FIG. 6). After the user signs in, a main screen may be shown (FIGS. 7-8) that allows the user to select information related to the profile, gaming play, or other options. In the context of a racing game, statistics such as total points, mileage, hours driven, license, unlocks may be shown after the profile is selected.
The offline account may be stored on the memory unit146so may be transported from one console100to another. This is advantageous, for example, if the player would like to play in a local tournament, where she can bring her memory unit146with her offline account and in-game profile on it. Since the player has most likely spent a great amount of time tweaking the profile, it is preferable to bring the memory unit146, rather than re-create the profile.
Players should be notified if a memory unit146is not available so game play statistics and settings are not lost. Referring toFIGS. 9-11, there is illustrated exemplary user interfaces on the console100that reflect this condition. If the user begins game play without signing in, the main screen (FIG. 10) displays a message under the career statistics that the user is not signed in and the user is warned when powering off the console that all changes will be lost (FIG. 11).
While the present invention has been described in connection with the preferred embodiments of the various Figs., it is to be understood that other similar embodiments may be used or modifications and additions may be made to the described embodiment for performing the same function of the present invention without deviating therefrom.
Claims
- In a gaming console, a method of providing a unique player identity, said method comprising: receiving a credential, at the gaming console, associated with a profile for a user;validating the credential;executing a videogame while the gaming console is offline, executing including executing a play of the videogame only on the gaming console;determining that an achievement associated with the videogame has been earned during the play of the videogame;caching offline user activity, at the gaming console, the offline user activity occurring during the play of the videogame;and transmitting, from the gaming console, when the gaming console is online subsequent to the play of the videogame, a signal indicative of earning the achievement to a service provider configured to publish the profile for the user in an interactive guide accessible to remote user devices, wherein the profile includes a username, a picture chosen by the user, videogame statistics accumulated while playing videogames, information indicative of affiliations of the user, and videogame achievements earned while playing videogames.
- The method of claim 1 , wherein said profile further includes settings.
- The method of claim 2 , further comprising applying said settings in accordance with said profile for the user.
- The method of claim 3 , wherein said settings are applied to game preferences and a controller.
- The method of claim 1 , further comprising associating an online service with said profile.
- The method of claim 5 , further comprising: tracking online user activity;and attributing said online user activity to said profile.
- The method of claim 6 , further comprising: synchronizing said offline activity to said profile such that said profile reflects both said offline and said online user activity.
- A computer readable storage medium having stored thereon computer executable instructions for providing a unique player identity in a computer system, said instructions comprising instructions for: receiving a credential, at the computer system, associated with a profile for a user;determining that a network connection to a service provider can not be established;logging the user onto the computer system;executing a videogame while the computer system is offline, executing including executing a play of the videogame only on the computer system;determining that an achievement associated with the videogame has been earned during the play of the videogame;caching offline user activity, at the computer system, the offline user activity occurring during the play of the videogame;storing information identifying that the achievement was earned in a local memory;determining that a network connection to the service provider has been established;transmitting, from the computer system, when the computer system is online subsequent to the play of the videogame, a signal indicative of earning the achievement to the service provider configured to publish the profile for the user in an interactive guide accessible to remote user devices, wherein the profile includes a username, a picture chosen by the user, videogame statistics accumulated while playing videogames, information indicative of affiliations of the user, and videogame achievements earned while playing videogames.
- The computer readable medium of claim 8 , wherein said profile further includes settings.
- The computer readable medium of claim 9 , further comprising instructions for applying said settings in accordance with profile for the user.
- The computer readable medium of claim 10 , wherein said settings are applied to game preferences and a controller.
- The computer readable medium of claim 8 , further comprising instructions for associating an online service with said profile.
- The computer readable medium of claim 12 , further comprising instructions for: tracking online user activity;and attributing said online user activity to said profile.
- The computer readable medium of claim 13 , further comprising instructions for: synchronizing said offline activity to said profile such that said profile reflects both said offline and said online user activity.
- A computer system, comprising: a processor;and a computer readable storage medium operatively coupled to the processor including instructions for: receiving a credential associated with a profile for a user;validating the credential;executing a videogame while the computer system is offline, executing including executing a play of the videogame only on the computer system;determining that an achievement associated with the videogame has been earned during the play of the videogame;and transmitting, when the gaming console is online subsequent to the play of the videogame, a signal indicative of earning the achievement to a service provider configured to publish the profile for the user in an interactive guide accessible to remote user devices, wherein the profile includes a username, a picture chosen by the user, videogame statistics accumulated while playing videogames, information indicative of affiliations of the user, and videogame achievements earned while playing videogames.
- The system of claim 15 , wherein said profile further includes settings.
- The system of claim 16 , further comprising applying said settings in accordance with said profile of the user.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.
