System and method for network interactive game match-up and server selection
A computer-based system and method of interactive game challenge and acceptance for finding an appropriate game server for one or more individuals to play on given skill level, latency and numerous other factors; setting up the game server with the proper parameters; connecting those individuals to that server; logging the details of the match; updating those details to a database and updating or creating statistics related to those individuals for display and ranking purposes to be used for later match-ups.
Latest Patents:
This application claims priority of the provisional application with Ser. No. 60/680,848 filed May 13, 2005 entitled Method and Apparatus for Internet Network Game Challenge and Acceptance.
FIELD OF THE INVENTIONThe present invention relates to internet gaming and more specifically to a method and apparatus for matching players of a particular interactive game on the internet, using one or more applications in several formats, including: a challenge and acceptance format, an immediate match-maker format, an intelligent match-maker format or other formats and providing continually updated statistical analysis for the games and the individuals involved in the match.
BACKGROUND OF THE INVENTIONThe entertainment focus in network gaming has become more and more centered on player versus player confrontations. As games have progressed in complexity and as the proliferation of high-speed internet connections has grown, more and more players venture onto large interconnected networks of computers in order to find challenging opponents. The limits of game artificial intelligence are nothing, to a veteran gamer, compared to the challenge of competing against one or more highly skilled players behind the controls. Therefore, there is a desire in the art for a simple and easy method and apparatus by which a player can find opponents who are a challenge and provide an interesting match for players of all skill levels. Considerations in creating a matches include rankings, player or game ratings, gender, age, familiarity with the game or game genre and various other player and game characteristics.
To this end, several applications have been developed whereby a user may find opponents on the internet. These range in complication from simple web forums whereby users can specify certain game servers at certain times for individuals or groups to challenge each other to a match, to more complicated software or interfaces whereby a user is ranked over time or whereby individuals may actually launch a game in real time in order to play against or join in the play of a friend.
Nothing in the prior art, however, has provided a simple single interface for the interaction of players, a ranking system of players with real-time tracking of relevant game-play statistics, real-time push-button challenge, random or intelligent match-up of players, and server-side, peer-to-peer or client side control of the game server chosen and methodologies for finding a game server available for the match. In the prior art, some of this functionality has been built into a single game, an interface including some of these elements has been created or other interfaces with limited chat-centric functionality with no challenge and acceptance element has been offered. Alternatively, other prior art has offered little more than a list of game servers with the option to join has been provided.
This invention improves on the prior art by combining the many desperate elements into a single simple interface, including the option to challenge individuals and the option for those individuals to be immediately put in-game by the method of this invention in order to determine a winner. Further, the capability to find, quickly and effectively, the an optimal game server, based upon criteria established by the user or users available to each user involved is novel and nonobvious. Finally, capturing statistics, behavioral patterns, playtimes, playstyles, abilities, skills, user-defined data and other relevant player and game-related data and tracking this diverse data set in real-time for player (or teams of players). In the context of this document, player may be used interchangeably with “team of players,” “teams of players,” “group of players” or “groups of players.” The capture and use of this data in ranking and in the various match-making methodologies when combined with the prior elements of this invention is novel and nonobvious.
BRIEF SUMMARY OF THE INVENTIONAccording to the present invention, a method and apparatus are described whereby a user of the invention may challenge an individual (or team) to a game, an automatic match may be made using various methods or intelligent match-making using various criteria, which the individual (or team) may accept. The invention will aid users in finding an optimal server upon which each player is able to play based upon user input, automatically or based upon a data set built by the system and method of this invention. In the preferred embodiment, the game parameters are set by the invention, the game is then launched and played, various types of game and player-related data is tracked and recorded, and each player's (or team's) data is then stored for later use in analyzing the player (or team) for future matches. A new ladder or game ranking of the player (or team) is made based on this data, relative to all other players in the ladder or game.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention connects players who desire to play network computer games with each other. According to the preferred embodiment of the invention, a webpage is used, whereby users are able to login, using a user-selected user identification and a user-selected password. Methodologies to connect to a customized webpage (or other network-accessible interface) are common in the art and will not be described in great detail so as to avoid confusion over the scope of the present invention. The means by which an individual may select a username and password are implemented using traditional web database methodologies and algorithms. In the setup process, elements that are unique to the present invention include the setting of “available times” during which a user may be challenged to a game or may be automatically or intelligently set up for a match. These times may be further sub-divided by type of game, if desired. For example, and individual might set as available playtimes times from 2:00 pm-6:00 pm each day. If the online during those times, individual is are available for challenge or for team play. Alternatively, a user may be available from 2:00 pm-4:00 each day for one type of game as, for example, single player match-ups; where from 4:00 pm-6:00 pm each day his or her team is available for a particular type of game only and only as a team.
Individual and Team Competition Structure Referring now to
The server which hosts these ladders, leagues, match-ups and tournaments in the preferred embodiment is a web server. This web server is connected, in the preferred embodiment, to a chat/lobby server. The chat/lobby server's responsibility is to match up players once they have chosen to challenge each other, be available for match-up or to take part in a ladder, league or tournament. Generally, the chat/lobby server is connected to the client software on each individual's computer and is capable of accepting direction from the client software concerning potential match-ups for games, then assists in game server selection on which the player will play those games, launches the game server with the proper parameters and instructs the client software to launch the client game software and connect to a particular server to begin the match. Alternatively, some games for which this methodology can be used will not use independent game servers. In these cases, typically, one of the two (or more) clients is used as a server, to which all other users connect before the match is played. The system and method of this invention may be used in those situations, whereby the word “game server” will refer to one of the client computers chosen to act as the “server” for that game and to which the other client computers will connect. The details of the chat/lobby server's operation in the preferred embodiment will be described in greater detail in subsequent paragraphs.
One improvement over the prior art are the built-in competition structures and methods for gathering the information used to create and maintain the competition structures. Competition structures include team and single player ladders, team and single player leagues, team and single player real-time match-ups (both intelligent/criteria-based match-ups and immediate match-ups), team and single player tournaments, team and single player practice matches and numerous other game and match-up formats. Leagues are similar to ladders, except they are typically more structured, requiring a series of games to be played at set times over the course of a series of weeks or months. At the end of a “league,” the top players may be awarded or may be “seeded” in a final League Tournament. Match-ups of all types are typically more fluid and subject to ongoing competition.
An example of one type of competition structure is a “ladder” system. A ladder is a ranking system for determining an order of skill for online players as they play. Ladders have been employed in multiple types of games, including traditional sports teams and have been imported, more recently, into the interactive entertainment field. In
Another competition structures available to players is a tournament-style play. Single and double elimination tournaments for each type of game and player match up (i.e. one versus one, four versus four, free-for-all, etc) may also be constructed. The individuals in these tournaments will login to the match server and their tournament schedule for the day or week will be displayed. They may have a certain window, for example three days, in which to play a particular game versus someone else in their bracket. The tournaments, in the preferred embodiment are set up among players of similar skill, typically from players in the higher-rankings of the ladders of each type of game. League play results in a group of individuals or teams of the same type in the same game all playing each other or most of each other at least once. The team with the best record at the end of the “season” is the league winner or may be seeded in a league tournament.
For each of the competition structures; rewards and prize allocation is automatic. Once an administrator has setup a particular competition structure; the prizes for that competition may be set. Once the winners have been determined at the end of a set period of time, a “season” or tournament; the prizes are mailed to the confidential addresses of the individuals or team. Alternatively, they may simply be emailed with information on how to receive their prizes.
Referring now to
Once created, team membership may be requested by selecting usernames, example usernames of individuals already in the selected team are visible in element 118, or by typing them into a list. The individuals associated with the usernames will receive an email or pop-up message (if they are currently logged into the client software) requesting their approval for inclusion in the team. Once an individual clicks a link in the email accepting team membership or click the “I approve” option in the pop-up message, by responding to an instant message, by responding to a “text” message on a cellular phone or other form of confirmation, membership to that team is confirmed. The individual is then able to challenge, be challenged, or participate in ladders, tournaments and leagues as a team member. Alternatively, join passwords may be provided to individuals prior to the creation of a team and individuals may join the team through their own action, once it has been created, using the join password.
Teams may be subdivided into multiple squads, organized by the team leader. A team leader is the creator of the team at the start, but may be changed once the team has been created. Team management into squads (sub-groups of teams) may be arranged and managed by team leaders or squad leaders. The capability to determine available play-times and other team attributes may be set by the team or squad leader depending on the management settings set by the team leader. A team may participate in different ladders, tournaments or leagues for different games or types of matches for each game.
The competition structures visible to an individual or team may be further subdivided by type of game play. For example, for a particular type of game, there may be competition structures for individual one versus one play, team four versus four play or squad eight versus eight play, as seen in
Each of the competition structures, for example the one versus one ladder for a particular game, will have “lobbies.” An example lobby is depicted in
The lobby for a particular game is launched by clicking the link for the game and type of play, such as Battlefield 1942® 8 v 8 Deathmatch depicted in element 100. Once the link is clicked, an application is launched from within the web-browser in the preferred embodiment. The main or “general” lobby may also be started in much the same way by clicking on a link dedicated to a general lobby, in the preferred embodiment detailing the total number of users logged into the general lobby. In alternative embodiments, the entire application may be stand-alone, requiring no web-browser portal for login. Alternatively, the entire application may be web-based. However, in the preferred embodiment, a java applet is launched by clicking on the link to a particular ladder. In the preferred embodiment, the java applet is responsible for most of the interaction between the client computer and the various server computers and other client computers. This applet, unless otherwise described will be referred to as the client software. The client software in alternative embodiments, may be stand-alone software, completely web-based or built-into the network software of various games. The java applet is only the preferred embodiment of the client software.
Once the link, depicted in element 106, has been clicked, in the preferred embodiment, a java applet window appears. Referring now to
The competition structure's lobby may be used as a pre-waiting area before a game is launched or a challenge is made. As above, the user may be waiting in multiple lobbies simultaneously, so as to be available for multiple types and formats of games. This can serve to increase the likelihood of finding a match more quickly. From within this window, a user may “chat,” communicate via typed messages, with other individual's in that lobby. This functionality is depicted in the chat window 140 and the chat input box 142. Additionally, a user may simply review the individuals who are present in the lobby by viewing a tab entitled “in this room,” depicted in element 132. This tab will have a top to bottom scrolling list of the usernames of all individuals in the lobby. Some users may have “guild” or “clan” tags on their usernames. These tags are special monograms or other identification associated with the username, to identify those individuals as being a part of the guild or clan. Text chat will appear in another scrolling window with the option for the individual user to add his or her input, such as depicted in elements 140 and 142. If the competition structure is a group competition structure, such as two versus two or four versus four ladder matches, the lobby may also serve as a waiting room in which to wait until all the members set to play each other at a certain time arrive. The ladder lobby depicted in
Another functionality of the invention is to allow the scheduling of matches between individuals or groups for a time at some point in the future. These matches may be set up during the “challenge” dialog, through a “challenge later” dialog, through direct contact between the parties, through an automatic match-up for a later time, through “automatic” weekly or monthly scheduling as a part of a tournament or league, set up using the website or numerous other methods. Once all individuals have arrived for a prescheduled match, and have entered the game lobby or pre-game holding area, the match is almost ready to begin. There are buttons to the right side and bottom, in the preferred embodiment, which are used to indicate readiness, as in the “ready” button in element 144. This button indicates that the user is ready for the match to begin. Once all (or most) individuals have entered the room, the “ready” button 144 becomes available for clicking.
In the preferred embodiment, there is an “exit/forfeit” button 146 used to leave the lobby and forfeit the match. The exit/forfeit button 1346 allows an individual to leave the match, but at the cost of forfeiting the match. Should a player for one side or one of the individuals in a scheduled match fail to check-in during the alloted time frame, the match will be automatically forfeited. The results of clicking the exit foreit button 146 are shown in
The results of clicking the “report no-show” button are depicted in
Finally, referring again to
In the preferred embodiment, a “check-in” system is employed for pre-scheduled maps prior to entering the pre-game holding lobby. Using the check-in system, as each player arrives, up to thirty minutes before a scheduled match in the preferred embodiment, they can check-in to the match to be played. Once all the players are checked-in for a match, it will begin at the scheduled time. Checking in is done using the “ready” button 144, shown in
Users may also chat individually with each other using means similar to those of chatting with the group at large.
Referring now to
There are numerous methods which may be utilized for matching players for games. One example of a match-up methodology is the “challenge and acceptance” methodology, whereby one player selects another player and “challenges” them to a match. Another methodology, described below, is the “play now” methodology. In this type of match-up, the software's capability to view past statistics and data is used to find a “good” match-up automatically for a user. Another methodology is to allow the user to intelligently choose a match, based on various criteria. The software may then search the available players for an opponent meeting those various criteria. There are numerous other methods available, such as “scrimmage” now or predetermined scheduled matches also available to the user. The three methods described below are only for purposes of illustration.
Challenge and Acceptance Functionality A lobby, as described above and seen in
Referring now to
First, all players arrive in the pre-game holding area and indicate that they are ready 198. Once all players are ready, the game servers, there are many in the preferred embodiment, throughout the world, ping the clients 198. Next, the game server is selected 200 using predetermined criteria, including the ping times from the clients, as described more fully below. Finally, the players join the game server 202, based upon those criteria, automatically. Next, the match is played by all players, with statistics and data about the match being stored 204. The ladder ranking and statistics are updated 206 using the new data.
The flowchart may be described more fully by reference to a few additional figures. Referring now to
Referring again to
The user may “challenge” another individual whose username is visible to a game of the type of the lobby that they are in or to any other competition structure type in which they are involved along with the user. The individual may be limited in terms of his ability to challenge by several factors. For example, the user may not be “available” for challenge at that point, one of the numerous settings the user may input as he sets up an account. If the individual happens to be on at times other than the “available” times, the user may or may not be penalized for not accepting a challenge. In the preferred embodiment, the user is not penalized for failing to accept a challenge during time designated as “not available” for play. However, setting these times in the preferred embodiment also limits the individual's ability to challenge others in times other than the “available time.” In the preferred embodiment, an individual may not challenge another during time designated by them to be “unavailable time.” However, in spite of all of this, if both players (or teams) are online simultaneously, the “challenge now” functionality will be available to both players (or teams).
Referring again to
Referring now to
Referring now to
An example may demonstrate the steps described to this point. The first step is for a user to login to the webpage. This is done using typical login algorithms standard in the art. Once the user has logged into the site, the competition structures are displayed in which that user participates. So, for example, Battlefield 1942® 4 v 4, Counter-Strike®: Source 8 v 8 and Warcraft® III 1 v 1 may be displayed as ladders which this user participates. The user may then select one of those competition structures, such as Battlefield 1942® ladder by clicking on it. Once the user clicks, the java applet is launched and the ladder lobby for Battlefield 1942® is displayed. This lobby will have a text box, the user's buddy list, a list of individuals in the room. It will also have the option to challenge any four-person group (this is a 4 v 4 ladder) to a match.
The user may see a group of players who he has played before or who he knows is well-ranked. The user may view the ranking of those players by highlighting their names in the “In This Room” section of the lobby. When this is done, their profile as a team will be displayed. Their ranking may be number 15 overall in this ladder, whereas the individual's team, who are all currently present, may be ranked 24. The user may then challenge that team by highlighting one person's name and selecting “challenge” either as the button or by right clicking on a name and selecting “challenge” in the menu that appears.
At this point, the challenged may review the challenge window that appears on the challenged client software. This window will contain the opposing team's profile, their current ranking of 25, the ranking results of potential outcomes. For example, the dialog may display that if they refuse the match, they will be ranked 16, if they accept the match and lose the match, they will be ranked 17. If they accept the match and win, they will be ranked 14. This individual, may immediately accept the match or may schedule it for another date.
For purposes of the example, the challenged individual accepts the match immediately on behalf of the team being challenged. The challenger and challenged are then “moved” to a pre-game holding lobby. In this room, the profiles of the team, including the rankings, are displayed for both parties. The parties may chat while they await the arrival of all eight players. Once all eight players have arrived, the “ready” button will be available. Once all eight players have clicked the button, the match will be ready to commence.
The “Play Now” Functionality Referring now to
Referring now to
Referring now to
The chat/lobby server 294 is responsible for allowing multiple client softwares 258 to connect, chat, schedule matches, initiate criteria-based match-ups or automatic match-ups, challenge each other and to maintain a database of scheduled matches and profiles. The chat/lobby server 294 also maintains in a database, such as the one depicted in element 302, including competition structure rules, members, player and game-related data, rankings and player and team profile data including requirements for involvement in a particular structures. The individual and team profiles, as described above, will also be maintained, in the preferred embodiment, on a database server 302. The database server 302 will maintain information for each user, the competition structures they participate in, and other relevant information pertaining to the user. The database server 302 may also houses a list of game servers, one of which is depicted in element 300, on which matches may be played. In the preferred embodiment of the invention there are multiple game servers housed in numerous places throughout the world. This will enable the chat/lobby server 294 to select the optimal game server 300 for two individuals to play.
Game hosting servers 296, each capable of hosting multiple game servers 300 (of which there are many different types) may be found or allocated using numerous methods. In one embodiment, game servers 296 may be pre-selected always-running hardware located in strategic places around the United States or the world. A “strategic place” being a place in the midst of numerous potential player locations such that latencies will be low for players in that area (latency and game server selection is discussed below).
In an alternative embodiment, game hosting servers 296 may be individual user servers with an additional piece of software running such that they “inform” the chat/lobby server 294 that they exist. These servers would, typically, be less favored as they may not provide the best and most accurate game conditions for high-level competition. In situations in which valuable prizes would be awarded, these servers would, often, not be the first choice for matches.
In the preferred embodiment of the invention, the game hosting servers 296 would work in a peer-to-peer fashion. Peer-to-peer networking has become very popular in recent years in the art. The general idea is to allow the network itself to do the work which has typically been assigned to a single server (or cluster of servers). This provides several benefits. First, using peer-to-peer technology lets computers solve their own problems. If peer-to-peer technology is used, the software maker need not worry about server uptime as much, since the network of client software is typically, in the art, responsible for making most decisions.
Second, peer-to-peer technology is less expensive to maintain. The server software and server framework in a peer-to-peer situation need not be as robust as the usual server/client model common in the art. Because the server in the peer-to-peer technology is responsible for less of the work than it would be, were the client softwares not being used. For example, recent Voice Over Internet Protocol (VoIP) software uses peer-to-peer networking in order to send calls. This software has peer-to-peer clients locating each other and helping to forward calls along to each other. This lessens the bottlenecks of bandwidth which may occur if all of those VoIP calls were routed to a single location (the main server), then transmitted outward from there. If that were the case, large-scale VoIP might be impossible, but using the interconnection of the network itself, the bandwidth usage remains spread and the VoIP can be high-quality and fast.
In the game server and game server selection context, the game hosting servers 296 each “bid” for the opportunity to host each game. The game hosting servers 296, in the preferred embodiment, use a small piece of software that is always-running. This piece of software keeps track of the type of games the server is capable of hosting, the current “load” on the game hosting server 296 including the Central Processing Unit's (CPU) utilization, the network utilization and the potential load from prior or soon-to-start game instances. This software also contacts all known chat/lobby servers 294 for matches which are or will soon be in need of a game server 300. The game hosting server 296 then requests that it be put in a “bid queue” for the chance to bid on upcoming matches. The software on the game hosting server 296 is informed by a list maintained on the chat/lobby servers 294 of upcoming and pending games and will request to be put in the queue for a chance to “bid” for a given match. The number of active “bids” for a match is limited, in the preferred embodiment to fifteen, so as to not “flood” the clients offline with huge numbers of ping requests when the latency-detection process is initiated (as described below). Once an a game hosting server 296 is needed, those in the queue which meet the criteria are allowed to “bid” whereby their characteristics (if the user has selected to use any number of characteristics as limiting factors) are evaluated and they are asked to “ping” the client computer 288 who will be playing. They will then inform the chat/lobby server of these latencies and other characteristics. If the latencies are unavailable, the chat/lobby server may request that the client software 290 ping the game hosting server 296 instead.
The game hosting servers 296 are ranked using criteria, including player rankings as to their experiences playing on that server and using objective measures such as the server CPU load and the current and upcoming network usage. Also considered are the specifications of the game hosting server 296 and a server administrator set number of concurrent games or bids allowed.
In this process the chat/lobby servers 294 will continuously update a list of upcoming matches and matches waiting to be allocated a game server 300. The chat/lobby server 294 also manages the game hosting server 296 bid request, bid authorization, bid receipt and bid-ranking processes. The chat/lobby server 294 maintains a database of the currently available game hosting servers 296 as they inform the chat/lobby server 294 of their availability for utilization and as they make bids. The database would be housed on the database server 302. This database would also maintain the player ratings of the game hosting servers 296 and other relevant data related to the game hosting servers 296. In one embodiment, “better” rated or performing game hosting servers 296 may be awarded in some way by virtue of their being “better.”
Latency Detection and Game Server SelectionOne game hosting server 296 may be better-suited to host a game than other game hosting servers 296. The most important considerations for gamers may be the above described player ratings, the current network and CPU load on those game hosting servers 296, the latencies of those game hosting servers 296 and other user-selected criteria. The user may choose to only play on well-rated servers or to play only on servers in a particular region (the west coast or east coast or mid-west of the United States). Users may even select to play, only, on their self-hosted server. Any number of criteria may be considered or be selected to be required by a player or players involved in a given match. All of these factors will be considered against the currently “bidding” game hosting servers 296. Once a group of servers has been selected using those criteria, if the users has selected to consider latency, the least latent of those servers will be selected by determining the latency of those servers using the following method.
Once each individual (or substantially all, as required by the rules of the particular competitive structure) has selected the “ready” option to begin a match, this is signaled to the chat/lobby server 294. At this point, the chat/lobby server 294 then coordinates with each of the game hosting server 296 to determine the latencies of each of the game participants. In the preferred embodiment, the chat/lobby server 294 requests that each of the available game hosting server 296 for the requested game perform a ping on each of the clients involved in the match. Alternatively, the client software 290 may perform a ping on each of the game hosting servers 296 to determine the latency of each client and then report that to the chat/lobby server 294.
A ping is a networking term that is well-known in the art. When a computer is pinged (the verb) by another computer, this ping “bounces back” in a fashion similar to that of a SONAR ping. The time at which the ping is sent is recorded by the first computer and the time at which the other computer's reply to the ping is received is also recorded. This results in a latency or ping (the noun)—the time it takes for one packet of data to travel from one computer to another computer and back to the first computer. In online gaming the latency is very important to a user. The better the latency (lower latencies are better), the more responsive the online game is to the player's movements. A very poor latency to a game server may result in a player's inability to control their avatar effectively and loss of a match or individual fight within the game. Latencies are largely determined based upon the connections used by the computers at either end. The locations of the computers involved are also a very significant determinant of latencies. Two computers connecting to each other each in the same city will typically have very low latencies, assuming each has a relatively fast network connection to the internet. Two computers communicating with each other across the nation, for example, from New York to Los Angeles will have a higher latency than two computers both communicating in Los Angeles.
Typically, avid gamers desire latencies less than 50 milliseconds. As latencies get higher than 100 milliseconds, the ability to control the actions of the avatar in the match degrade, reaching near unplayability at a latency of somewhere above 300 milliseconds. However, the importance of the latency is largely dependant upon the interactivity and pace of the game being played. For some games, latencies over 2000 milliseconds (2 seconds) will not affect game play at all. Examples of these types of games are typical online games such as hearts, checkers and chess. However, the types of fast-paced action games being played using the method of this invention will be very dependant upon a good latency, for example of 50 milliseconds, if attainable, or less. Additional criteria, as described above in the preferred embodiment, are used in selecting a server, such as the game hosting server's 296 CPU load, network utilization, upcoming (scheduled or allocated matches) network and CPU load and player ratings of the server created over time from player reviews. Once those criteria are met, latency is considered.
Once each player's latencies, after a ping, are received by the game servers, they are forwarded on to the chat/lobby server 294. The chat/lobby server 294 then, using the ping and other criteria requested by the user (or automatically), determines which game hosting server 296 will is the optimal server for the individual's involved to play the match. This is done by comparing the two lists of latencies-one for each person. The list is first narrowed, in the preferred embodiment, by finding all latencies for both parties for each game hosting server 296 that are within 15 milliseconds of each other. In other embodiments, particularly where latencies are not as important, larger latencies may be used. However, in the preferred embodiment, closely-matched latencies will be sought and 15 milliseconds of latency has been chosen as the range of acceptable differences between the parties. Removing latencies that are widely varying from each other will result in a narrowed latency list of potential game servers that are very close to the same latency for each party. Next, from those potential game servers, the lowest combined latency is chosen.
This concept may be understood more fully through the use of an example. For simplicity, an assumption is made that the four challengers in each group are in one room, connected to one network connection. This allows us to assume that their latencies to a particular game server are the same or substantially similar. For purposes of this example, the challenger team is in Los Angeles, Calif. and the challenged team is in New York, N.Y. Both have agreed to a match and all parties have shown up at the proper time or the challenge has been accepted in real-time. At this point, the chat/lobby server 300 software accesses its database 302 to determine the potential game hosting servers 296 for that type of match. In the preferred embodiment of the invention, numerous game hosting servers 296 for each type of game that a competitive structure has been created are available. The chat/lobby server 294 then requests that each of those game hosting servers 296 on that list ping all of computers of the participants and record the latencies sent back. The recorded latencies are then forwarded back to the chat/lobby server 294. The chat/lobby server 294 then performs the calculations necessary to assure both parties receive the best possible latencies for the match.
So, for simplicity the assumption is made that there are only three potential game hosting servers 296 on which to play. As stated above, in the preferred embodiment, there are numerous game hosting servers 296 available throughout the world so that any player may find a low-latency game hosting server 296 no matter where they are in the world and no matter who they challenge in the world. One of the game hosting servers 296 in this example is located in Los Angeles, Calif. and the other game hosting server 296 is located in St. Louis, Mo. The list of latencies received by the chat/lobby server 294 appears similarly to as follows:
The chat/lobby server 294 then uses the algorithm described above to determine the optimum game server for both parties. The first step is to narrow the list to one of only those game hosting servers 296 that have latencies within 15 milliseconds of each other. To do this the latencies are subtracted from each other as depicted in the following table:
As can be seen, the Los Angeles, Calif. game server will be removed from the list of potential game servers because the difference in latency is greater than 15 ms as required in the preferred embodiment. In other embodiments, larger latency differences or smaller latency differences may be used, dependant upon the needs of the players being matched. Alternatively, differing “tiers” of latency differences may be used. If the 15 ms latency difference is unattainable, the software may seek latencies less than 30 ms difference, then 60 ms and so on until the smallest difference possible is achieved.
The next step is to review the data to determine, in the now-narrowed list, which two latencies are the combined lowest for the parties. To do this, the two (or more in other types of matches) latencies are added together to create a data set similar to the following table:
Using this data, the chat/lobby server 294 is able to tell that the lowest combined latency is the game hosting server 296 located in Phoenix, Ariz. with a combined latency of 54 milliseconds. This game server is then chosen to be the game server for the match.
Once a selection of game hosting servers 296 has been chosen using this method, the chat/lobby server 294 communicates with the chosen game hosting servers 296. This communication is used to set up the match soon to start. This communication is automated and is designed to set various settings prior to the start of a match. These settings are largely determined by two factors. One factor is the game and ladder themselves. The ladder that the players are involved in may have set rules, such as the four versus four player game required by the particular ladder in our example. Additionally, there may be certain other requirements based upon the competition structure or game, such as time limits or frag (as described above) limits that are required as a part of being involved in a particular ladder. The other factor is the individual's launching the game themselves. To some extent, as the challenger challenges an individual, the challenger is able to set the parameters of the game, so far as they are allowed to be altered based upon the competition structure rules.
Based upon the player selected criteria, including the latencies of the player and the customization potential of the matches for a particular type of game, the chat/lobby server 294 then sets all relevant settings including the map (the level on which the game will be played), the time limit, frag or flag limit, and other relevant game settings. The chat/lobby server 294 then starts the game server 300 with those settings. The chat/lobby server 294 then also, in the preferred embodiment, sets a password for the game server 300. Only the chat/lobby server 294 knows the password and in the preferred embodiment, this password is not passed along visibly to the client software 290. Instead, once the clients have clicked the ready button, the chat/lobby server 294 performs the functions described to set up and start the game server 300. Once the game hosting server 296 is selected by the chat/lobby server 294, set up and started; the chat/lobby server 300 then forwards to the client software 290 for each individual involved in the map, the location (typically an internet protocol address), port (reference to a specific network port the game server is “listening” on for connections) and password that it has created for the match. The individuals using the client software 290 never see, in the preferred embodiment, any of this information. In alternative embodiments, the user may be supplied with this information and may be able to connect manually or without a password at all. Alternatively, the individuals involved in a pre-scheduled match may be emailed the password, internet protocol address and port for a game server to join at a scheduled time.
The client software 290 on each individual's computer then launches the game client 292 software of each individual's computer and connects them to the proper game server 300 and port using the password supplied to the client software by the match software. The game client 292 software on the individual's computer then starts, connects to the selected game server 300 on the selected port using the password as supplied. Once each individual is connected to the game server 300, the match begins.
As the match goes on, for a particular game, data is generated about the match. For example, as a kill is made by one individual or team, data about that death is generated. For example, for Battlefield 1942® data about which individual did what percentage of the damage to another individual in making a kill may be created. Also, data about which weapons were used in the kill by each player may be created. The time of the kill is likely logged. Throughout the game, as it is played, data may also be created such as percentages of attacks that landed or accuracy ratings for shooting in game. Titles may be attached to various activities, such as killing more than three individuals on the opposing team in a row may be dubbed a “killing spree” by a particular game. Shields and buffs (limited time enhancements to avatars within the game) may be acquired. Additional weapons or upgrades may be acquired by the players. Goals or sub-goals may be accomplished in the course of the game. All of these events and happenings generate data that is or may be recorded. For some games or game types, the game may create logs of this information. In other games or game types, a program residing on the game hosting server 296 may record relevant information or additional information not otherwise recorded by the methods employed by the game. The data generated using either of these methodologies will be referred to in the remainder of this document as a “data log.” Finally, the data concerning which individual or team won the match and under what rule, such as a certain number of kills reached or having the most kills in a set time-period, is recorded. All of this data is or may be recorded by the game server 270 or recorded by other means and stored in data logs.
In the preferred embodiment, at the end of the match, the chat/lobby server 294 requests that the data logs of the match be sent to the database server 302. These data logs are sent by the game hosting server 296. The preferred method of sending these data logs uses an FTP (File Transfer Protocol) client 298. These data logs will contain a great deal of information about the match, containing some or all of the data described above along with additional data about the match and players that may have been recorded during the course of the match. In the preferred embodiment, the database server 302 then compiles the data in these data logs and organizes the relevant portions of it for storage. The database server 302 then compiles or to recompiles a profile for each team and individual including the newly generated data, prior data. The most obvious statistics which may be generated from this data are number of wins and losses. Winning and loss percentages may be calculated. The individual players may be ranked within a team based upon their number of kills in all matches combined or for a more recent set time-frame. The most accurate shooting player on a particular ladder may be calculated from the database date for numerous games. The “most deadly” player on a particular ladder may be calculated using various statistics stored in the database server 302. The chat/lobby server 294 and database server 302 are used, potentially in conjunction with additional servers, to calculate various additional statistics and some or all of these are made available to the public using one or more web sites to which all individuals on a given ladder login. In the preferred embodiment, a record of every match played by each individual or team is recorded along with all relevant data. This data may be used to compile numerous other types of data and information, such as behavioral patterns, typical playtimes, player habits, player streaks or numerous other types of information.
This data and information is useful to the individuals on the ladder in comparing teams or individuals. The data may also be used to create more sophisticated ranking systems whereby win/loss record may not be the only factor included in the rankings. The data may also be used to more readily compare one individual player's contribution to the team or group situation than mere anecdotal evidence. Using the data generated from the match, the rankings of the two individuals, two teams or group of individuals are updated. Generally, winning a match raises the ranking on the ladder and losing generally lowers the ranking. In the preferred embodiment, win/loss record, number of forfeits, current points score (points being awarded for victories based upon the ranking of the individual or team defeated) and activity level (games being played weekly or monthly) are used to rank players or teams. A more complicated algorithm than simple win/loss percentage is used, but these algorithms are based upon the games themselves. For example, a ladder for team four versus four Battlefield 1942® might consider win/loss record, the opponents faced, the percentage of kills to death, the number of flags lost, the number of flags remaining and accuracy of each member of the team in shooting.
Also at the end of a match, either side may post comments about the match, both to be included in the profiles of both teams or individuals and on the forums. These comments or ratings of the other players or teams may also be incorporated into the relevant data. They may also provide feedback about the match to administrators of the competitive structure. This information, if it arouses the suspicion of the administrator may result in a review of the match and an alteration of the scores or invalidation if the match is determined to be fraudulently undertaken or if cheating was used. This review process is useful for ensuring accurate statistics and rankings.
In the preferred embodiment, the capability to record and/or broadcast either via the Internet or via live or recorded television a match is also included. The game server on which a match is played, for example, by two relatively-skilled teams may be monitored with software capable of “watching” the match in real-time. This software may create a feed for live Internet or television broadcast. Alternatively or additionally, the software may create a recording of a match from one or numerous players perspectives and save that file for later broadcast via the Internet or television. Additionally, in the preferred embodiment, users will be able to upload recorded portions or complete matches to a database server. This recorded match will be stored in the database server 302 database along with the data and other statistics for that match to be included in the complete record of the team's match history and profile. The profile, along with the statistics and any recorded or uploaded video or images from the match may be viewed along with the rest of the individual or team profile.
Administrators in this system may have varying levels of responsibility and access to portions of the site and to administrator capabilities. These range from being able to post responses on the forums to being able to create and manage groups of ladders, tournaments and leagues. Additional capabilities include the ability to remove users from the user-list, the ability to alter scores or revise scores based on user feedback or the ability to create content for the web site.
It will be apparent to those skilled in the art that the present invention may be practiced without these specifically enumerated details and that the preferred embodiment can be modified so as to provide additional or alternative capabilities. The foregoing description is for illustrative purposes only, and that various changes and modifications can be made to the present invention without departing from the overall spirit and scope of the present invention. The present invention is limited only by the following claims.
Claims
1. A computer-based method of network interactive match assignment and server selection for an instance of a computer game, comprising the steps of:
- receiving a first player in a game lobby;
- receiving a second player in said game lobby;
- transmitting a request from said first player to said second player to play the match;
- setting up the match between said first player and said second player; and
- providing information sufficient to enable said first player and said second player to play the match.
2. A computer-based method of network interactive match assignment and server selection for an instance of a computer game, comprising the steps of:
- receiving a first player in a game lobby;
- receiving a second player in said game lobby;
- transmitting a request from said first player to said second player to play the match, wherein said transmitting step includes at least one of the following alternatives:
- a) challenging said first player to the match immediately,
- b) challenging said first player to the match scheduled in the future,
- c) requesting that the match be automatically found and started,
- d) selecting limiting criteria based upon which the match is automatically found and started
- e) requesting that a scrimmage match be automatically found and started, or
- f) requesting the match using communication means;
- setting up the match between said first player and said second player; and
- providing information sufficient to enable said first player and said second player to play the match.
3. A computer-based method of network interactive match assignment and server selection for an instance of a computer game, comprising the steps of:
- receiving a first player in a game lobby;
- receiving a second player in said game lobby;
- transmitting a request from said first player to said second player to play the match, wherein said transmitting step includes at least one of the following alternatives:
- a) challenging said first player to the match immediately,
- b) challenging said first player to the match scheduled in the future,
- c) requesting that a match be automatically found and started,
- d) selecting limiting criteria based upon which a match is automatically found and started
- e) requesting that a scrimmage match be automatically found and started, or
- f) requesting a match using communication means;
- using criteria selected by at least one of said first player or said second player to narrow game or game hosting server selection;
- determining the latency from at least one game hosting server to at least one of said first or said second player;
- selecting the game hosting server;
- preparing said selected game hosting server for play by at least said first player and said second player; and
- providing information sufficient to enable said first player and said second player to play the match.
4. The method of claim 1, wherein said transmitting step includes a challenge to the match from said first player to said second player.
5. The method of claim 1, wherein said transmitting step is accomplished using an automatic match-up.
6. The method of claim 1, wherein said transmitting step is accomplished automatically using criteria selected by at least one of said first player or said second player.
7. The method of claim 1, wherein said setting up step includes consideration of at least one of the following:
- a) determining the latency from at least one game hosting server to at least one of said first player or said second player;
- b) using criteria selected by at least one of said first player or said second player to narrow game or game hosting server selection;
- c) selecting a game hosting server;
- d) preparing said selected game hosting server for play of a game by at least said first player and said second player.
8. A computer-based method of choosing an interactive game hosting server on which to play an interactive game comprising the steps of:
- determining the players who are to be involved in a game;
- requesting that at least one available interactive game hosting server ping said players;
- removing interactive game hosting servers whose combined latencies to said players are more than a predetermined amount; and
- selecting an interactive game hosting server from the remaining interactive game hosting servers using predetermined criteria.
9. The method of claim 8 wherein said predetermined criteria is choosing the interactive game hosting server with the lowest combined latency among said players.
10. The method of claim 8 further comprising a step following the determining step of narrowing the list of potential interactive game hosting servers using criteria set by at least one of said players.
11. A computer-based method of collecting data pertaining to interactive games and ranking players based on the data comprising the steps of:
- monitoring an interactive game as it takes place;
- collecting data pertaining to said interactive game; and
- using the collected data to create at least one of statistics, indications of behavioral patterns, player rankings, player profiles, server rankings or server profiles.
12. The method of claim 1, further comprising the additional steps of:
- monitoring the match as it takes place;
- collecting data pertaining to the match; and
- using said collected data to create at least one of statistics, indications of behavioral patterns, player rankings player profiles, server rankings or server profiles.
13. A computer-based peer-to-peer method of allocating game hosting servers for a network interactive match assignment, comprising the steps of:
- receiving indications of game hosting readiness from at least one game hosting server;
- adding said game hosting server to a bid queue;
- receiving a request for a game hosting server allocation in order to play a match;
- selecting at least one game hosting server in said bid queue to bid to host the match;
- collecting bids to host the match from said at least one game hosting server in said bid queue; and
- selecting one of said at least one game hosting server to host the match.
14. The computer-based method of claim 13, wherein said collecting bids step comprises receiving at least one of the following from said at least one game hosting server:
- current latency data;
- anticipated latency data;
- current central processing unit load;
- anticipated central processing unit load;
- maximum number of allocable matches;
- number of currently allocated matches; or
- current bandwidth limitations.
15. A computer-based system for network interactive match assignment and server selection for instances of computer games, comprising:
- at least one coordinating server designed to enable match allocation;
- means for connecting at least two match participant client computers to said coordinating server, said two match participants client computers including interactive game software capable of network match play; and
- means for connecting a plurality of game hosting servers, said game hosting servers including software designed to enable a bid process to host the match.
16. A computer-based system for network interactive match assignment and server selection for instances of computer games, comprising:
- at least one coordinating server designed to enable match allocation using a bid process comprising the steps of:
- a) receiving indications of game hosting readiness from at least one game hosting server;
- b) adding said game hosting server to a bid queue;
- c) receiving a request for a game hosting server allocation in order to play a match;
- d) selecting at least one game hosting server in said bid queue to bid to host the match;
- e) collecting bids to host the match from said at least one game hosting server in said bid queue; and
- f) selecting one of said at least one game hosting server to host the match.
- means for connecting at least two match participant client computers to said coordinating server, said two match participants client computers including interactive game software capable of network match play; and
- means for connecting said at least one game hosting server, said at least one game hosting server including software designed to enable said bid process to host the match.
17. A computer-based system for choosing an interactive game hosting server on which to play an interactive game comprising:
- means for determining the players who are to be involved in a game;
- means for requesting that at least one available interactive game hosting server ping said players;
- means for removing interactive game hosting servers whose combined latencies to said players are more than a predetermined amount; and
- means for selecting the remaining interactive game hosting server based upon predetermined criteria.
18. The system of claim 17 wherein said predetermined criteria is choosing the interactive game hosting server with the lowest combined latency among the players.
19. The system of claim 17, further comprising additional means for narrowing the list of potential interactive game hosting server using criteria set by at least one of said players.
20. A computer-based peer-to-peer system for allocating game hosting servers for a network interactive match assignment, comprising the steps of:
- means for receiving indications of game hosting readiness from at least one game hosting server;
- means for adding said game hosting server to a bid queue;
- means for receiving a request for a game hosting server allocation in order to play a match;
- means for selecting at least one game hosting server in said bid queue to bid to host the match;
- means for collecting bids to host the match from said at least one game hosting server in said bid queue; and
- means for selecting one of said at least one game hosting server to host the match.
21. The system of claim 20, wherein said collecting bids step comprises receiving at least one of the following from said at least one game hosting server:
- current latency data;
- anticipated latency data;
- current central processing unit load;
- anticipated central processing unit load;
- maximum number of allocable matches;
- number of currently allocated matches; or
- current bandwidth limitations.
22. A computer-based system for network interactive match assignment and server selection for instances of computer games, comprising:
- means for receiving a first player in a game lobby;
- means for receiving a second player in said game lobby;
- means for transmitting a request from said first player to said second player to play the match;
- means for setting up the match between said first player and said second player; and
- means for playing the match.
23. A computer-based system for network interactive match assignment and server selection for instances of computer games, comprising:
- means for receiving a first player in a game lobby;
- means for receiving a second player in said game lobby;
- means for transmitting a request from said first player to said second player to play the match, wherein said transmitting means is capable of at least one of the following:
- a) challenging said first player to the match immediately,
- b) challenging said first player to the match scheduled in the future,
- c) requesting that the match be automatically found and started,
- d) selecting limiting criteria based upon which the match is automatically found and started
- e) requesting that a scrimmage match be automatically found and started, or
- f) requesting the match using communication means;
- means for setting up the match between said first player and said second player; and
- means for providing said first player and said second player with information sufficient to play the match.
24. A computer-based system for network interactive match assignment and server selection for instances of computer games, comprising:
- means for receiving a first player in a game lobby;
- means for receiving a second player in said game lobby;
- means for transmitting a request from said first player to said second player to play the match, wherein said transmitting means is capable of at least one of the following:
- g) challenging said first player to the match immediately,
- h) challenging said first player to the match scheduled in the future,
- i) requesting that the match be automatically found and started,
- j) selecting limiting criteria based upon which the match is automatically found and started
- k) requesting that a scrimmage match be automatically found and started, or
- l) requesting the match using communication means;
- means for using criteria selected by at least one of said first player or said second player to narrow game or game hosting server selection;
- means for determining the latency from at least one game hosting server to at least one of said first or said second player;
- means for selecting the game hosting server;
- means for preparing said selected game hosting server for play by at least said first player and said second player; and
- means for providing information sufficient to enable said first player and said second player to play the match.
Type: Application
Filed: May 15, 2006
Publication Date: Nov 16, 2006
Applicant:
Inventors: Jared Cugno (Santa Monica, CA), Amir Haleem (Santa Monica, CA), Jack Skeels (Santa Monica, CA)
Application Number: 11/434,314
International Classification: A63F 9/24 (20060101);