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.
The technical field generally relates to gaming and multimedia devices, and more particularly relates to on-line gaming.
Computer-based game players tend to participate in games as individuals. Further, game players (gamers) tend to focus activities around a game. For example, it is not uncommon for an individual on-line gamer to attempt to become the best player of a specific game title (e.g., HALO). This game player may also, as an individual, attempt to become the best player at other game titles (e.g., PROJECT GOTHAM RACING, PGR). This type of behavior does not afford the gamer an opportunity to enjoy the benefits of social interaction with other players. Further, typical on-line game systems do not provide mechanisms to encourage social interaction.
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 essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
A group of gamers is identified in an on-line gaming environment. The identity of the group, based on a group profile, is maintained within a single game title, across multiple sessions of a game title, and across multiple game titles. Groups are formed based on social relationships between players. A computer-based gaming system provides the ability to create a group, to delete a group, to manage group membership, to provide message communications between members of a group, to determine if members of a group are present, to accumulate and aggregate achievements and statistics pertaining to the group, to edit a group profile, and to allow group competitions.
The foregoing summary, as well as the following detailed description of computer-based gaming groups, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating computer-based gaming groups, there is shown in the drawings exemplary constructions thereof; however, computer-based gaming groups are not limited to the specific methods and instrumentalities disclosed. In the drawings:
Groups are formed, in a computer-based (e.g., on-line) gaming environment, and the groups are maintained across different games and across multiple session of the same game. The groups are based on social relationships between players. The group is assigned an identity, and the identity of the group is maintained within a single game title, across multiple sessions of a game title, and across multiple game titles. The group can interact within the gaming environment much like an individual user can interact. Group interaction provides a mechanism for social and cooperative game play. Groups can play games with other groups. Group members can play games with each other. Group statistics and achievements can be accumulated and aggregated. Group profiles provide information about the group, such as a list of the members of the group. Via group profiles, a member of a group can see information about other members of the group, such as other groups to which they belong. Group members can send and receive intra-group messages. To facilitate an understanding of computer-based gaming groups, a description of an exemplary gaming environment is provided followed by a more detailed description of computer-based gaming groups.
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 computer-based gaming groups can be usable to distribute computer-readable instructions, code fragments, applications and the like to various distributed computing devices.
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 finctionality and allowing multiple clients to take advantage of the information-gathering capabilities of the server.
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.
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 network 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.
According to an aspect of computer-based gaming groups, 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.
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 AN (audio/video) port 140 for transmission to a television or other display. A memory controller 110 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).
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 130 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.
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 external 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 I/O controller 120 via a bus, such as a Serial ATA bus or other high speed connection (e.g., IEEE 1394).
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 AN port 140 for reproduction by an external audio player or device having audio capabilities.
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 emitting 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.
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.
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.
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
According to an aspect of computer-based gaming groups, 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 also can allow players to form a group, and track information for the group. The service 150 tracks user/group information across games, consoles, computing devices, etc. By tracking the information for all users/groups of the service 150, the service 150 can aggregate statistics for all users/groups and measure game playing ability, provide a richer user experience by providing information about friends and/or other groups (e.g., what game they are playing and what skill level they have attained), track user/group achievements, and generally measure statistics for a game aggregated over a large user community.
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 be able to integrate it in meaningful ways with the other data that the service understands to create a rich profile of each user and/or group of the service. The profile will follow the user wherever he goes on the service, i.e. it is game and location independent.
For each user (alternatively referred to as a player or gamer) and for each group, the service collects a number of pieces of data (called Profile Data) to build the User Profile and/or Group 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 include:
The system creates a “User Profile” and a “Group Profile” which serve as a building block for services and applications that aim to create a social community of gamers and grow relationships among players. The User/Group Profile is the entirety of information (e.g., metadata) related to a specific user/group (i.e., the game player's/group's digital identity). The User/Group Profile is developed from a set of services that collect and expose this information in a meaningful way to the community. The User/Group Profile also provides for personalization such that users and groups can customize and enhance their gaming experience. The User/Group Profile comprises various components, including, but not limited to, a Gamercard, game achievements, and gamer preferences. User profiles can be used by player to help determine group formation.
Referring to
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 groups, 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/group. The service can return a Gamercard (discussed below), game statistics, game achievements, affiliations, game settings, etc. pertaining to a user/group. Additional details of the various aspects of the exemplary architecture are provided below.
Service 158 assists in tracking and displaying a wide-variety of in-game statistics, such as number of kills, best lap times, and (importantly, for calculating the skill value needed in Matchmaking) win/loss. These statistics can be provided for a user and/or for a group of users. All statistics are provided by the various games that a user/group plays and provided to the service for inclusion in a player's User Profile and/or in a group's Group Profile. For example, a first-person shooter title may want to define a ‘Kills’ Property to be tracked independently for each ‘Map’ Context (e.g. 5 Kills on Blood Creek vs. 10 Kills on Battle Range). Also, a group may want to define a similar ‘Kills’ Property. That information could be displayed as:
Referring to
The owner of a Profile can edit his/her/its 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.) 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 Profile to, e.g., restrict presence information only to friends, allow game achievements to be visible to all, etc.
The Profile 166 can include feedback provided by other players 170. Feedback helps others learn about a particular gamer or group. For example, if the gamer or group uses foul language or aggressive play in game sessions, other gamers or groups can submit feedback to the service 158. The feedback mechanism improves user experience by building reputations. Players and groups are therefore anonymous, but not unknown because of the accumulated feedback.
In another aspect of the invention, the service 158 and games 154 track online and offline activity of gamers and groups to provide usage statistics in the Profile 166. When a gamer and/or group 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/group's activity via a mechanism for instrumenting games to collect detailed information about a specific player's/group'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 and Group Profile data mechanisms.
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 and Group 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 and Group 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/group's particular preferences and game features updated after the initial game launch.
A presence service can be included to provide information about user's or group's whereabouts and activities. Presence information will be available to those users and groups that the gamer/group wishes to share it. The Gamer Profile and the Group Profile are the primary ways to access the presence information.
It is to be understood that the following description of Gamer Profiles is also appropriately applicable to Group Profiles, and the following description of Gamercards is appropriately applicable to Groupcards. For the sake of brevity, Gamer Profiles and Gamercards are described as illustrative embodiments. Referring to
As shown in
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 can further include information regarding titles played and time played. The base area 174 of a Gamercard 172 is preferably fixed in size, has a consistent, static layout and has a fixed placement of all information elements, such as Tile or Gamer Cred.
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 Gamercards is not fixed in size, because it can vary based on the context. As shown in
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 stats 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.
In accordance with the above,
There can be differences, however, 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 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.
It is emphasized that the user interfaces (UIs) of FIGS. 5 through
Computer-based gaming groups enhance both user involvement and the quality of social interactions among users. Utilizing user profiles, group interaction provides a mechanism for social and cooperative game play. It is accepted that that gameplay is more enjoyable when a user is playing with people he knows and likes. Playing in groups and playing as a group having a group identity, makes playing with known and liked people much easier, especially as favorite games change over time. It is further envisioned that computer-based gaming groups (e.g., on-line gaming) will amplify social dimension of gamplay, meaningfully connect users to one another, help users build shared commitment to play with each other, smooth out the path for new users to become empowered participants in a gaming community, and help users establish group identities within and across games.
A group is an association of users who agree to be part of the group. A group can comprise users across games. It is envisioned that users having a common social interest will form into a group. For example, siblings in a family could form a group, high school or college buddies could form a group, members of a bowling league or softball league could form a group, or a combination thereof. Although, players of a particular computer-based game can form a group, the common social interest does not have to be game related. A group differs from a Friends list, in that constituents of a Friends list do not necessarily have a social interest in common. Members of a Friends list may not even know each other or realize that both of them are on one player's Friends list. Further, it is possible that members of a player's Friends list may not even like each other. In contrast, members of a group have at least one social interest in common and realize that they all are part of the same group.
Groups can be formed (created) via a game-instantiated system application or out of a game context. Thus, a player does not have to be playing a game to join or leave a group. Group size is not limited. In an exemplary embodiment, however, group size is limited to conserve system resources. For example, group size could be limited to ten members. When a group is formed, the group is given a group name. The group name is assigned by a user. The service manages the formation of the group. The service assigns the group a Globally Unique Identifier and maintains this Globally Unique Identifier for the group. Players can be invited to join a group at any time. Typically, players are invited to join a group by a player that is already a member of the group. Any invited player can join a group.
Any member of a group can invite any other player to join a group. In an exemplary embodiment, one member of a group is assigned the role of group administrator. The group administrator is given the authority to eject members from a group. Any group member can leave a group at any time. In an exemplary embodiment, once a member leaves a group or is ejected from a group, a new invitation from another group member is needed to rejoin.
In an exemplary embodiment, the service automatically assigns the creator of a group the role of group administrator. One group member can be group administrator at any given time. A group member can determine who the group administrator is by enumerating the group membership. A group administrator can transfer the group administrator role to another group member. That is, the role of group administrator is transferable within a group. If a group administrator transfers the role of group administrator to another group member, that other group member is notified of the transfer by the service via a system message. In an exemplary embodiment, the group administration role comprises two modes: exclusive and shared. In the exclusive group administration mode, only the group administrator can edit group settings and/or profiles. In the shared group administrator mode, all group members can edit group settings and/or profiles. The group administrator mode can be toggled between the exclusive mode and the shared mode. In an exemplary embodiment, only the group administrator can toggle the group administrator mode.
Unless privacy settings preclude the listing of group members, the members of a group can be obtained via the system and/or via a game title. Any player can see all the groups to which another player belongs. Any group member can list all the groups in which he/she is a member. Any game title and/or the service can list all the groups that a player is a member of. Any group member can list all the group members of every group in which he/she is a member.
Members of a group can send messages to other members of the group. A message sent to a group is distributed to all members of the group. The UI identifies a message to a group as a message to a group (rather than a message to a single user). Example messages include a group recruitment message, a group inactivity warning message, a group expiration notification message, and a group administration transfer confirmation message.
A member of a group can review a group presence summary. The group presence summary provides the total number of members in a group and the total number of group members that are currently on-line. A member of a group also can review a group presence list. The group presence list provides more detailed information than provided by the group presence summary. The group presence list provides on-line and off-line information pertaining to group members. Further, a member of a group can enumerate a group presence summary for all groups in which he/she is a member.
An exemplary scenario is provided to illustrate aspects of computer-based gaming groups. In this exemplary scenario, a player, G-Man, has a reputation for being the ring-leader who gets his friends together to play on-line games. When G-Man notices the Groups page in the Guide, G-Man creates a Group of his own. G-Man names the group H-Group. G-Man invites all his friends to join the group. A few days later, when his seven best friends accept the invites, G-Man schedules the first in the long series of H-Group game nights. In the text of the message, G-Man specifies Thursday 8:00 PM to Midnight and suggests PGR3 as the starting game title.
When 8:00 PM on Thursday rolls around, G-Man takes a peek at his Group presence information and sees that 3 of 9 members are on-line. G-Man invites them all into a chat.
Game after game, members of H-Group are becoming more enthusiastic about group interaction. Arguably the best shooters of H-Group, is D-Blue. D-Blue begins to wonder about challenging other Groups to play. He scouts out the overall rankings for Groups to find suitable opponents.
None of the other members of H-Group can understand why D-Blue invited his neighbor to join H-Group. D-Blue's neighbor is obnoxious; he doesn't like any of the games that H-Group likes to play. Tired of his constant complaining, G-Man expels D-Blue's neighbor from H-Group.
A few weeks later, H-Group begins to sense that a group identity is developing. G-Man proposes that their latest Halo trophy image represent the H-Group ‘in public’. In the Guide, G-Man edits the Group Profile, adding the Tile and recording a Group Motto.
D-Blue doesn't like the Group Motto and goes into the Group Profile to change it himself. As a result, a brief flame war erupts between the members of H-Group. Fed up with the situation, G-Man takes control and flips the Group Administrative Mode from Shared to Exclusive. From now on only G-Man can edit the Group Profile.
The following summer, G-Man takes off to backpack in Australia and transfers the Administrative controls to D-Blue. But, because D-Blue feels that he is so much better than the rest of the members of H-Group, D-Blue loses his interest in playing with H-Group. No one else takes initiative and after 30 days of inactivity H-Group gets a message that the group will expire in 30 days if inactivity continues.
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 computer-based gaming groups have 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 computer-based gaming groups without deviating therefrom.