U.S. Pat. No. 7,677,970

SYSTEM AND METHOD FOR SOCIAL MATCHING OF GAME PLAYERS ON-LINE

AssigneeMicrosoft Corporation

Issue DateDecember 8, 2004

Patent Arcade analysis Read the full post

U.S. Patent No. 7,677,970: System and method for social matching of game players on-line Issued March 16, 2010, to Microsoft

 

U.S. Patent No. 7,677,970: System and method for social matching of game players on-line
Issued March 16, 2010, to Microsoft

Summary:

The ‘970 patent describes the Xbox Live system for matching up users during online play. A number of factors are used to match up similar players to make the game more enjoyable for all players. Factors considered are recent games played and other user’s feedback on a particular player (positive or negative). A player who receives positive reviews from recent opponents will be matched up with users who also receive positive reviews. This allows a user to play against opponents who are most likely to stay in the game, follow the rules of the game, and contribute positively to the overall gaming experience.

Abstract:

A matchmaking service that selects matches based on personal/social characteristics as well as skill and experience. The service takes into account direct feedback from other players about positive and negative experiences with a particular player and expectations about appropriate conduct and type of game being played before a player joins the game session.

Illustrative Claim:

1. A system for socially matching game players for playing a multi-player computer-based game, comprising: a database, stored in a computer readable medium, having a plurality of user profiles, said user profile comprising a plurality of attributes of a plurality of users; and a service, operating on a communications network, receiving input from a select one of said plurality of users from an input device providing criteria for selecting users from said database wherein said criteria include level or social type of play desired by said select one of said plurality of users and wherein said service matches others of said plurality of users indicating a disposition to play at the selected level or social type of play and wherein said service ranks the others of said plurality of users at least based on recent game play in which the select one of said plurality of users provided positive feedback.

Illustrative Figure

Abstract

A matchmaking service that selects matches based on personal/social characteristics as well as skill and experience. The service takes into account direct feedback from other players about positive and negative experiences with a particular player and expectations about appropriate conduct and type of game being played before a player joins the game session.

Description

DETAILED DESCRIPTION OF THE INVENTION FIG. 1is diagram of an exemplary computer network that serves to illustrate aspects of the invention. Here computers100a-100emay 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 may comprise various digital devices such as PDAs, game consoles, etc. Moreover, communications network160may itself comprise a number of computers, servers and network devices such as routers and the like. There are a variety of systems, components, and network configurations that support distributed computing environments. For example, computing systems may 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 the present invention could 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 may be active in ...

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1is diagram of an exemplary computer network that serves to illustrate aspects of the invention. Here computers100a-100emay 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 may comprise various digital devices such as PDAs, game consoles, etc. Moreover, communications network160may itself comprise a number of computers, servers and network devices such as routers and the like.

There are a variety of systems, components, and network configurations that support distributed computing environments. For example, computing systems may 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 the present invention could 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 may be active in a first computer system, and the server process may 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.

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 may be coupled to one another via TCP/IP connections for high-capacity communication.

In general, the computer network may comprise both server devices and client devices deployed in a network environment (in a peer-to-peer environment devices may be both clients and servers). Communications network160may be a LAN, WAN, intranet or the Internet, or a combination of any of these that facilitates communication among a number of computing devices10a-10e. Moreover, communication network160may comprise wireless, wireline, or combination wireless and wireline connections. Additionally, the computer network may comprises a distributed computing environment. In such an environment a computing task may be spread over a number of computing devices that are addressable elements in a computer network.

According to an aspect of the invention, communication network160may host a service150that is accessible from the plurality of computers100a-100e. The service150gathers information and tracks users of computers100a-100eto provide computing services for all of the users of the service.

FIG. 2illustrates the functional components of a multimedia/gaming console100that may be used as the computers100a-100ein the network ofFIG. 1. 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 the larger network community as illustrated inFIG. 1.

According to an aspect of the invention, when a game is executed on console100, it provides information to a service operating on communications network160. The service tracks the information for all of the users connected to the service to provide a rich user experience. The service tracks user information across games, consoles, computing devices, etc. By tracking the information for all users of the service, the service 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.

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 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 will be able to understand the data as it flows from the game, and it will be 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.

For each user, the service will collect 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 profile include:1. What the user says about himself or 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.)

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 expose 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. As will be discussed in greater detail below, the User Profile consists of various components, including, but not limited to, a Gamercard, game achievements, and gamer preferences.

Referring toFIG. 3, there is illustrated an overview of an exemplary architecture that may be used to implement the User Profile interaction as well as user interaction with the matchmaking service described more fully herein. The console100interacts with a remote service150that provides services158such as voice/chat, a friends list, matchmaking, content download, roaming, feedback, tournaments, voice messaging, and updates to gamers. The service150also maintains the User Profiles in a profile database162and configuration data164used by the services158and games154. The service150collects User Profiles, aggregates, processes information supplied by other services158, and fulfills real-time client requests for retrieving User Profile-related services. The User 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 service150may be used to determine features and options provided by the guide156. When the game154is 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 stats, achievements, and other User Profile data) are used to call and interact with the services158. When requesting User Profile information via the APIs, the game154may pass a unique identifier of a user. The service150may 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.

Service158assists in tracking and displaying a wide-variety of in-game stats, such as number of kills, best lap times, and (importantly, for calculating the skill value needed in Matchmaking) win/loss. All stats are provided by the various games that a user plays and provided to the service for inclusion in a user's User 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). That Information could be displayed as:

“PER-MAP KILLS”MapKillsBlood Creek5Battle Range10

Each game should support a minimal set of information that match the character of the game and which can be tracked for each user of the service158.

Service158takes a different approach to tracking player achievement stats by emphasizing individual progress and accomplishments (e.g. a trophy case) over global ranking against the entire population of players. Achievements are intended to track check-point completion, advancing to a new skill level, hitting a career milestone, earning/unlocking new content, placing in service events, such as tournaments and/or any notable in-game events.

Each Achievement consists of a unique ID, Description, Rank, an optional Image and additional metadata. Optionally, an Achievement can be associated with a number of Experience Points. For example, each title will give out Experience Points to each player based on in-game progress and accomplishments. Beyond the intrinsic satisfaction of collecting Experience Points, the most accomplished users can receive extrinsic awards from the service.

Referring toFIG. 4, the User 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 User Profile166is created. The User Profile166may then be populated from several sources. For example, the User Profile166may include self-described data168from the User Profile owner. Other gammers170can provide feedback regarding the User Profile owner. The service150may track the user's online and offline activity. In addition, the games154may report the user's statistics and game achievements.

The owner of User Profile166can edit his/her User Profile166directly and control who can view each section of the User Profile. The User 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 User Profile166to, e.g., restrict presence information only to friends, allow game achievements to be visible to all, etc.

The User 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 garners may submit feedback to the service150. The feedback mechanism improves the user experience by building reputations. Players are therefore anonymous, but not unknown because of the accumulated feedback.

In another aspect of the system, the service150and games154track online and offline activity of users to provide usage statistics in the Gamer Profile166. 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 console100and game154track the user's activity via a mechanism for instrumenting games to collect detailed information about a specific player's in-game statistics and accomplishments. The Gamer Profile166is updated during the next connection to the service150to reflect the offline play. Game achievements may be reported to the service154by games via the User Profile data mechanism.

Referring toFIGS. 5-8, the Gamer Profile can be viewed in a number of ways and forms, and is typically displayed in the Gamercard172. The Gamercard172is the visual representation of the Gamer Profile166that is available to games on the console100and, e.g., the web. The Gamercard172serves as a summary or snapshot of a player's Gamer Profile166. Gamers may use the Gamercard to set up a matchmaking list where gamers are added to a preferred players list to play again in the future.

As shown inFIG. 5, the Gamercard172may be divided into two regions, a base area174and a context-specific (or extended) area176. The base area174is provides a set of Gamer Profile information in a standard and consistent way across multiple contexts, whereas the extended area176may be customized to fit a specific context. Although the Gamercard172ofFIGS. 5-8are shown in the context of the guide156, the Gamercard172may be visually separated from the rest of the screen and adopt the background color of the screen it is displayed on. In addition, the Gamercard172may be temporarily replaced by an animation while it is being loaded for viewing.

The base area174may be provided in different variants corresponding to differing contexts, while being a consistent view within each context. For example, an online Gamercard172is shown when one player is looking at another player's Gamercard172during an online session. The online base area174includes 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 Gamercard172is shown when a player is looking at his/her own Gamercard172. The offline base area174may include a subset of the online base area and may further include information regarding titles played and time played. The base area174of a Gamercard172is 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 area176may include a set of Gamercard Actions, such as “View Profile” and “Send Feedback,” etc. The extended area of the Gamercards is preferably not fixed in size, because it may vary based on the context. As shown inFIGS. 5-7a user may scroll through the list of other users via the guide156and a friends list178. The Gamercard for other users may be displayed as the user scrolls among his/her friends or the user may 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 area176and may include several sections, such as a Profile Summary, Community Feedback, Game Achievements, Activity, and Social Network. The guide156may 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.

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.

Matchmaking and Session: 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). 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 may, in fact, 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 session is said to be joinable if there are open slots available to the person seeking a slot and the game play has not yet begun (the game is in “lobby” state). Some games that have join in progress sessions will advertise that a session is joinable until every public slot is filled. A gamer makes a Match by selecting “Matchmaking” in a game or in an out-of-game Matchmaking system. The Matchmaking UI may allow a gamer to add some filters to his search for a session (e.g. like specifying a map or difficulty level), or it may push a gamer directly into a search query. In most cases, with or without filters, a 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 the most salient information about that session. A gamer then selects a session and joins it. Typically, a player then enters a lobby and awaits other players to match into the game before game play begins. In some cases, no search result is shown, and players are dropped instead directly in the lobby of the game that best meets their search criteria.

Social Matchmaking: 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 the highest priority.

This Matchmaking system will connect people who have similar intent and who share a similar profile to insure that they all have a good time, in and out of game play (but primarily in game play). Matchmaking—with its use feedback and profile data—facilitates people expanding and refreshing their online community with increasingly refined matches over time. Ultimately, Matchmaking will bind people to the service as a safe, secure place to meet new people and create a history of positive experiences.

Details on Query-Based Social Matching on User Profile: Several of the aspects of User Profile that surface in a Gamer Card can be used to match a game player to a session. At a high level, according to an aspect of the invention when a game player signs up in the service150, he is asked to select a Gamer Zone that best describes the kind of social environment he prefers to play in. Before the service has other profile data to use, this Garner Zone is used to match the game player with other players who have selected the same Zone. This match is done by a simple database query looking for Social sessions that contain a majority of players with this same Zone.

As time goes on and the service has additional data about each player, this Match query can be improved by averaging multiple key aspects of User Profile (still the Zone, but as time goes on, also feedback reputation, skill computed via stats, and his experience defined by Achievements achieved) for each participant in a session. The system then can provide a session “profile” that can be compared with the User Profile of a player seeking a match. The match system can then query this session profile by comparing it to the values in a User Profile of an individual who wishes to join the session. If the match of the User Profile is sufficiently close to the session profile values (sharing the same Zone and within a pre-specified range for each of the numeric values for reputation, skill, and experience), then the user will be shown that session as a Match. If the match comparison is not within the pre-specified ranges, then the user's query will continue on to compare to other sessions' session profiles until a positive result is achieved. NAT type, physical proximity to other players, time played on the system, games played, etc. all are folded in on the back end when a Match search is performed.

Details on Social Matchmaking by Network of Affiliates: 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.

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.

In accordance with the above,FIG. 6illustrates a list of Recent Players in the guide156. A person is added to a player's Recent Players list when the player has played an online game session with the person. The Gamercard displayed when browsing recent players shows the base area and an extended area that provides information regarding recent games, feedback, and presence of the recent players.FIG. 7illustrate further details that may be obtained about recent players, such as general achievements.

Importantly,FIG. 8illustrates a feedback mechanism whereby a game player can provide feedback on other game players. This feedback options is only available on a Gamer Card when the viewing player has played with the person before. This feedback information is then used to improve matchmaking results, i.e., indicates whether or not you would want to play with this game player in future games. By giving positive feedback on a person, that person moves up in priority in that player's Affiliates list. Moreover, the feedback affects the game player's reputation and may change the group of players with which the player is group in future games.

Feedback is, then, for the purposes of Matchmaking, the creation of a “one-way” friends list, i.e., a low threshold mechanism to build a list of people you meet again and again. This mechanism is generally invisible except as an improved matchmaking experience. For example, when a game player indicates that he would like to play with a particular person again, the system tracks that information in a on-way friend list so that the other player doesn't have to be invited or accept an invitation to be on a friends list.

If a player gives negative feedback on a person, that person moves to an “Avoid” list, and for the purposes of Social Matchmaking, all future sessions containing that person will be avoided for the player.

Session Descriptor in Social Match Query Results Defined: For query results, all games provide per-genre, per-game-mode session descriptor that contains a summary of key User Profile averages for the session, a summary of the major game settings, and a “Session Label” that identifies the type of game play in the session (defined by the “Zone” of the players in the game). This data helps a player get an “at-a-glance” view of each session so that he can pick the best one to join. The data in the session descriptor includes:Game nameHost's nameCommunity reputation rating of the players in the gameAtmosphere or rules of the game (e.g., use of mature language, level of competitiveness)Game settings (e.g., type of game, level or track being played)Connection speed (i.e., ping)Skill level of the players in the gameWhether there are friends of yours in the gameWhether there are friends of your friends in the gameWhether there are people you have enjoyed playing with previously in the gameLanguage spoken in the gameThe country game is being hosted in

Social Matchmaking Interface:FIG. 9illustrates a user interface1310whereby a user can select the type of interaction desired for a particular game. Here for example, the user has selected from within the crimson skies game that he wants to play a skill match with game player of equal or higher skill level. This is not a Social Match.FIG. 10illustrates a similar user interface1310wherein the user has selected the option of playing a Social Match. Additionally, the user has the option of selecting an Optimatch wherein the user selects the specific game criteria or options to use in the selection process. As shown inFIG. 11, when a user selects Optimatch he can specify whether or not he wishes the service to take into account his skill level, gamer zone (e.g., competitive or social), reputation, or language when conducting the Match. This feature allows the player to optimize the Social search criteria according to personal preference. A player may not, however, specify that he wishes to search for sessions skewed far from his own settings. In the case of reputation, for example, it would be unfair to let a low reputation player single-out high reputation people to play with.FIG. 12illustrates three matches that meet the criteria specified by the user (a similar display would be presented for any one of the above selected match options). The icons with the x4, x8, x2 next to them represent the number of Affiliates in each session.

FIG. 13provides an overall flow chart that illustrates the flow of the UI option for matching that are selectable by a user. Initially, at screen1310(which parallels the image show inFIGS. 9 and 10), the user is presented with a variety of matchmaking options. The user could simply select the option of playing a “casual” Social game and letting the system provide the matching set of game players at step1320and as described above. In that instance, a set of user would be selected based on affiliates, most recently played, etc. Thereafter, the user would be presented with a screen1322containing a variety of session that matched. After the user selects one of the sessions, he would go to lobby1324and wait for the game session to be started.

Similarly, at screen1310, the user could select a ranked or skill-based game and move to screen1326. At that screen, the user would then select whether the game should be head-to-head, team, etc. That would allow only skill based players at step1328to enter the lobby1324to wait for the game session to be started. Alternatively, the user could select the option matching from the main screen1310and go to screen1332to enter match options. Thereafter, a set of matching game session would be presented at screen1334from which the user could select and again go to lobby1324.

Additionally, the user could instead of joining a session created by another user, elect to host a game session by specifying the criteria for joining the session as indicated by screen1336. Thereafter, the user would wait in the lobby for other users that joined the game session, e.g., by selecting the proper criteria from the matchmaking system.

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

  1. A system for socially matching game players for playing a multi-player computer-based game, comprising: a database, stored in a computer readable medium, having a plurality of user profiles, said user profile comprising a plurality of attributes of a plurality of users;and a service, operating on a communications network, receiving input from a select one of said plurality of users from an input device providing criteria for selecting users from said database wherein said criteria include level or social type of play desired by said select one of said plurality of users and wherein said service matches others of said plurality of users indicating a disposition to play at the selected level or social type of play and wherein said service ranks the others of said plurality of users at least based on recent game play in which the select one of said plurality of users provided positive feedback.
  1. The system as recited in claim 1 wherein the service tracks interaction among said plurality of users.
  2. The system as recited in claim 2 wherein said interactions include recent game play among various ones of said plurality of users.
  3. The system as recited in claim 2 wherein said interactions include invitation from one of said plurality of users to another of said plurality of users to join a friend list.
  4. The system as recited in claim 4 wherein the service selects from said plurality of said users in said select one user's list of friends.
  5. The system as recited in claim 1 wherein the search criteria comprises achievement data.
  6. The system as recited in claim 1 wherein the search criteria comprises presence data about friends, recent players, or positive feedback people.
  7. The system as recited in claim 1 wherein the search criteria comprises game statistic data.
  8. The system as recited in claim 1 wherein the select one of said plurality of user and said others of said plurality of users each have a copy of a selected game available for execution on a local computing device.
  9. A method for socially matching game players for playing a multi-player computer-based game, comprising: providing a plurality of user profiles, from a database stored in a computer readable medium, said user profile comprising a plurality of attributes of a plurality of users;and receiving input from a select one of said plurality of users from an input device providing criteria for selecting users from said plurality of user profiles wherein said criteria include level or social type of play desired by said select one of said plurality of users;and matching, by a service operating on a communications network, others of said plurality of users indicating a disposition to play at the selected level or social type of play and wherein said service ranks the others of said plurality of users at least based on recent game play in which the select one of said plurality of users provided positive feedback.
  10. The method as recited in claim 10 further comprising tracking interaction among said plurality of users.
  11. The method as recited in claim 11 wherein said interactions include recent game play among various ones of said plurality of users.
  12. The method as recited in claim 11 wherein said interactions include invitation from one of said plurality of users to another of said plurality of users to join a friend list.
  13. The method as recited in claim 12 wherein the act of selecting comprises selecting from said plurality of said users in said select one user's list of recent players.
  14. The method as recited in claim 13 wherein the act of selecting comprises selecting from said plurality of said users in said select one user's list of friends.
  15. The method as recited in claim 10 wherein the search criteria comprises achievement data.
  16. The method as recited in claim 10 wherein the search criteria comprises presence data about friends, recent players, or positive feedback people.
  17. The method as recited in claim 10 wherein the search criteria comprises game statistic data.
  18. The method as recited in claim 10 wherein the select one of said plurality of user and said others of said plurality of users each have a copy of a selected game available for execution on a local computing device.
  19. A computer-readable medium bearing computer readable instructions for socially matching game players for playing a multi-player computer-based game, said instructions causing a computing device to perform operations comprising: instructions for providing a plurality of user profiles, from a database stored in a computer readable medium, said user profile comprising a plurality of attributes of a plurality of users;and instructions for receiving input from a select one of said plurality of users from an input device providing criteria for selecting users from said plurality of user profiles wherein said criteria include level or social type of play desired by said select one of said plurality of users;and instructions for matching, by a service operating on a communications network, others of said plurality of users indicating a disposition to play at the selected level or social type of play and instructions wherein said service ranks the others of said plurality of users at least based on recent game play in which the select one of said plurality of users provided positive feedback.
  20. The computer-readable medium as recited in claim 20 further comprising instructions for tracking interaction among said plurality of users.
  21. The computer-readable medium as recited in claim 21 wherein said interactions include recent game play among various ones of said plurality of users.
  22. The computer-readable medium as recited in claim 21 wherein said interactions include invitation from one of said plurality of users to another of said plurality of users to join a friend list.
  23. The computer-readable medium as recited in claim 22 wherein the instructions for selecting comprises instructions for selecting from said plurality of said users in said select one user's list of recent players.
  24. The computer-readable medium as recited in claim 23 wherein the instructions for selecting comprises instructions for selecting from said plurality of said users in said select one user's list of friends.
  25. The computer-readable medium as recited in claim 20 wherein the search criteria comprises achievement data.
  26. The computer-readable medium as recited in claim 20 wherein the search criteria comprises presence data about friends, recent players, or positive feedback people.
  27. The computer-readable medium as recited in claim 20 wherein the search criteria comprises game statistic data.
  28. The computer-readable medium as recited in claim 20 wherein the select one of said plurality of user and said others of said plurality of users each have a copy of a selected game available for execution on a local computing device.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.