PEER-TO-PEER WAGERING PLATFORM
20230222867 · 2023-07-13
Inventors
- Andrew Paradise (San Francisco, CA)
- Casey Chafkin (Boston, MA, US)
- Jason Petralia (Winchester, MA, US)
- Ahmed Abdalla (North Attleboro, MA, US)
Cpc classification
A63F13/792
HUMAN NECESSITIES
A63F13/352
HUMAN NECESSITIES
G07F17/3223
PHYSICS
A63F13/48
HUMAN NECESSITIES
A63F13/30
HUMAN NECESSITIES
A63F13/80
HUMAN NECESSITIES
G07F17/323
PHYSICS
A63F13/00
HUMAN NECESSITIES
International classification
A63F13/00
HUMAN NECESSITIES
Abstract
Data characterizing historical skills-based gaming metrics for a first user and historical skills-based gaming metrics for at least one second user is accessed. Using the accessed data and a set of rules, a targeted advertisement to present to the first user is determined. The targeted advertisement specifies at least one skills-based game and a characterization of the at least one second user’s historical skills-based gaming metrics. The targeted advertisement is generated. Data characterizing the targeted advertisement is provided. Related apparatus, systems, techniques, and articles are also described.
Claims
1-20. (canceled)
21. A method, comprising: receiving, at a transactional server, data characterizing a first game instance and one of a plurality of digital gaming competitions, the first game instance enrolled in the one of the plurality of digital gaming competitions; selecting, by the transactional server, at least one pseudo random number seed characterized by a unique match identifier for the one of the plurality of digital gaming competitions; generating, by the transactional server and using the at least one pseudo random number seed, one or more pseudo random numbers; and transmitting, by the transactional server, the one or more pseudo random numbers to a first client device associated with the first game instance such that a beginning of gameplay experience is common between the first game instance executing on the first client device and a second game instance executing on a second client device and enrolled in the one of the plurality of digital gaming competitions, wherein the beginning of the gameplay experience is different between game instances enrolled in different digital gaming competitions.
22. The method of claim 21, wherein the first game instance uses the one or more pseudo random numbers to complete execution of the first game instance.
23. The method of claim 21, wherein the first game instance includes a game engine, wherein the game engine uses the one or more pseudo random numbers to generate gameplay attributes for the one of the plurality of digital gaming competitions.
24. The method of claim 23, wherein the gameplay attributes provide a common gameplay experience between the first game instance executing on the first client device and the second game instance executing on the second client device.
25. The method of claim 21, further comprising: accessing data characterizing historical gaming metrics for a player; determining, using at least a portion of the accessed data and a set of rules, an advertisement to present to the player; generating the advertisement; and displaying the advertisement in an advertisement display space of the first game instance.
26. The method of claim 25, wherein the advertisement prompts the player to enroll in another of the plurality of digital gaming competitions.
27. The method of claim 21, further comprising: receiving data characterizing game play of a player; monitoring one or more characteristics of the received data; and comparing the monitored characteristics to historical characteristics associated with the player to detect fraudulent behavior by the player, wherein deviations between the monitored characteristics and the historical characteristics indicate the fraudulent behavior.
28. The method of claim 21, wherein the unique match identifier is used for generating the at least one pseudo random number seed.
29. The method of claim 21, wherein the unique match identifier is associated with an instance of the one of the plurality of digital gaming competitions.
30. The method of claim 21, wherein each of the first game instance and the second game instance is an asynchronous skill-based game having random elements.
31. A system, comprising: at least one data processor; and a memory storing instructions, which when executed by the at least one data processor cause the at least one data processor to perform operations comprising: receiving data characterizing a first game instance and one of a plurality of digital gaming competitions, the first game instance enrolled in the one of the plurality of digital gaming competitions; selecting at least one pseudo random number seed characterized by a unique match identifier for the one of the plurality of digital gaming competitions; generating, using the at least one pseudo random number seed, one or more pseudo random numbers; and transmitting the one or more pseudo random numbers to a first client device associated with the first game instance such that a beginning of gameplay experience is common between the first game instance executing on the first client device and a second game instance executing on a second client device and enrolled in the one of the plurality of digital gaming competitions, wherein the beginning of the gameplay experience is different between game instances enrolled in different digital gaming competitions.
32. The system of claim 31, wherein the first game instance uses the one or more pseudo random numbers to complete execution of the first game instance.
33. The system of claim 31, wherein the first game instance includes a game engine, wherein the game engine uses the one or more pseudo random numbers to generate gameplay attributes for the one of the plurality of digital gaming competitions.
34. The system of claim 33, wherein the gameplay attributes provide a common gameplay experience between the first game instance executing on the first client device and the second game instance executing on the second client device.
35. The system of claim 31, the operations further comprising: accessing data characterizing historical gaming metrics for a player; determining, using at least a portion of the accessed data and a set of rules, an advertisement to present to the player; generating the advertisement; and displaying the advertisement in an advertisement display space of the first game instance.
36. The system of claim 31, the operations further comprising: receiving data characterizing game play of a player; monitoring one or more characteristics of the received data; and comparing the monitored characteristics to historical characteristics associated with the player to detect fraudulent behavior by the player, wherein deviations between the monitored characteristics and the historical characteristics indicate the fraudulent behavior.
37. The system of claim 31, wherein the unique match identifier is used for generating the at least one pseudo random number seed.
38. The system of claim 31, wherein the unique match identifier is associated with an instance of the one of the plurality of digital gaming competitions.
39. The system of claim 31, wherein each of the first game instance and the second game instance is an asynchronous skill-based game having random elements.
40. A non-transitory computer program product storing executable instructions, which when executed by at least one data processor forming part of at least one computing system implement operations comprising: receiving data characterizing a first game instance and one of a plurality of digital gaming competitions, the first game instance enrolled in the one of the plurality of digital gaming competitions; selecting at least one pseudo random number seed characterized by a unique match identifier for the one of the plurality of digital gaming competitions; generating, using the at least one pseudo random number seed, one or more pseudo random numbers; and transmitting the one or more pseudo random numbers to a first client device associated with the first game instance such that a beginning of gameplay experience is common between the first game instance executing on the first client device and a second game instance executing on a second client device and enrolled in the one of the plurality of digital gaming competitions, wherein the beginning of the gameplay experience is different between game instances enrolled in different digital gaming competitions.
Description
DESCRIPTION OF DRAWINGS
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033] Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
[0034]
[0035] Each game instance 130.sub.i includes a peer-wagering module 140.sub.i. The peer-wagering module 140.sub.i integrates into the game instance 130.sub.i and enables the players 110.sub.i to wager on the outcome of a given game competition. The peer-wagering module 140.sub.i communicates with and works in tandem with a transactional server 160. The transactional server 160 maintains account information for each player 110.sub.i, including financial information, and acts as a trusted party to hold funds in escrow and/or secure funds to enforce the terms of a wager (i.e., ensures winning players receive the winnings).
[0036] The transactional server 160 can also pass data characterizing advertisements (e.g., advertising logic, invitations, and/or messages) to the third party game server 150. This advertising data can be algorithmically customized based on player 110.sub.i historical gaming data or metrics of the gaming data. For example, an advertisement could include or be modified to prompt the player with “you’ve won four out of five of your last games, click here to play in $5 tournament and take your game play to the next level.”
[0037]
[0038] The historical skills-based gaming metrics can be supplied by the player client 120.sub.i, or tracked and/or recorded (e.g., over time) by the transactional server 160, or the third party gaming server 150. Historical skills-based gaming metrics can include game attributes that can be traced (e.g., recorded or monitored) and are associated with the player’s in-progress, most recent, and/or past game plays. For example, historical skills-based gaming data can include: an in-game score, game outcome, time to complete a stage, game level achieved, difficulty, number of enemies, power-ups acquired, player ratings, number of wins or losses, statistical measures of attributes (e.g., average scores, ratio of wins to losses, etc.), top scores across some or all players, completion of any game related task, objective, and/or achievement, in-game acquisition of items, and/or other character attributes. Historical skills-based gaming metrics can include other traceable game attributes.
[0039] When the advertisement is presented to the player and/or the content of the targeted advertisement can be based on configurable messaging rules (i.e., a set of rules). The rules can be used to target players with specific attributes, levels of skill, or relationships. For example, an advertisement or invitation could prompt to a player to join and wager on a tournament based on a player exceeding a certain predetermined value or score for a particular in-game challenge. The rules could include whether the player has completed a particular level, game, number of games played, time played, or other game element. An advertisement could be presented when a player is among a certain percentile of players (e.g., prompting players to enroll in a tournament with like-skilled players).
[0040] Additional rule examples can include when a player has wagered, lost, and/or won at least a certain amount (e.g., prompting players to enroll in a tournament that requires “high stakes” or large minimum wagers), when one or more other players associated with the first player (e.g., links on a social networking website) are enrolled in a tournament (e.g., prompting a player to enroll in a tournament with their friends), when a player has played a certain number of games, and/or when a player has completed a level or challenge in a tournament. The messaging rules can also be based on a geographic location of the player (e.g., online wagering regulations may vary based on locality), or whether the player is eligible to wager cash or rewards on a tournament. Administrators, and/or tournament creators can configure or customize the messaging rules.
[0041] The targeted advertisement can include graphical, textual, and hyperlink information necessary to populate pre-existing advertising space with a customized invitation for players to wager on a skill based gaming tournament. Targeted advertisements can include customized messages derived or based on the messaging rules and/or other data triggered by a rule, gameplay, or historical skills-based gameplay metrics. The targeted advertisement can be targeted to the player and include a characterization of the player’s historical skills-based gaming metrics and a characterization of one or more other player’s historical skills-based gaming metrics. For example, the targeted advertisement can include information regarding how many active games are being played for a given game or a different game. The advertisement can include a message regarding how many of the player’s friends, contacts, or in-network users are active in the system. The advertisement content can show how a player would fare if they joined a tournament or played a different game by including a comparison between or characterization of the historical gaming data and other players in the system (e.g., showing how much money the player would have won in a real tournament, a comparison of the player’s average score to other player’s average scores, a mock leader board where the game player is compared to all players of the game, etc.). The targeted advertisement could include a proposed wager amount for the first player.
[0042]
[0043]
[0044] By utilizing specific player’s historical gaming data and messaging rules, the advertisements/messages can be customized to the player and each advertisement has a higher likelihood of enticing the player than a non-customized (e.g., a general) advertisement.
[0045] Referring again to
[0046] Players 110.sub.i can create tournaments. Prior to game play, the peer-wagering module 140.sub.i can receive credential information from the player 110.sub.i, send the credentials to the transactional server 160, which can authenticate the credentials. Authentication can include age and location controls to ensure local law compliance. Age can be entered by the player 110.sub.i and location can be verified by any of a billing address used to fund an account, the GPS location of a mobile device (if available), and an IP address of the player client 120.sub.i. When each player 110.sub.i enrolls in a tournament, including placing a wager on the tournament (e.g., paying a tournament entry fee), the transactional server 160 can secure the player 110.sub.i funds. Secured funds cannot be withdrawn or used for another wager. Securing the funds can include transferring the funds from the player account to an escrow account as well as placing a “hold” on the funds in the player’s account.
[0047] Once the transactional server 160 secures funds from all participating players 110.sub.i, the tournament can proceed. The tournament proceeds under normal game mechanics (such as each game instance 130.sub.i communicating game data with the game server 150) until game play completes. The transactional server 160 receives completed game statistics from the game server 150 or, alternatively, from each peer-wagering module 140.sub.i. The game statistics can indicate winners and losers based on one or more in-game metrics. A player 110.sub.i can also determine one or more custom in-game metrics to be used in determining winners and losers during tournament initialization. The transactional server 160 transfers the previously secured funds to one or more player 110.sub.i accounts based on the game statistics. For example, a winning player can have the player’s winnings transferred from the other players’ accounts or the secure escrow account into the winning player’s account. The transactional server 160 sends financial data related to winnings and losses to each peer-wagering module 140.sub.i, which provides the financial data to the players 110.sub.i. Additionally, the transactional server 160 can send the game statistics to each peer-wagering module 140.sub.i, which provides the game statistics to the player 110.sub.i.
[0048] Game statistics sent to the transactional server 160 from either the game server 150 or from each peer-wagering module 140.sub.i can include summary level statistics such as winners and losers and/or specific in game actions such as player orientation within the gaming environment, player actions (e.g. buttons pressed or character movement), or user display details. The user display details can include, but are not limited to, graphics card-information, in-game screen shots and live action game-play. These statistics can be used to determine system level player-rewards that are independent from tournament outcomes as well as in the detection of fraudulent behavior through any of the following: real-time tournament monitoring, delayed tournament review, or statistical player review for idiosyncratic behavior or behavior characteristic of fraudulent play.
[0049] The peer-wagering module 140.sub.i provides necessary user interface components and player 110.sub.i to transactional server 160 interaction functionality for the game instance 130.sub.i. This provides a low barrier for third party game providers to enable the peer-wagering functionality into the game. The peer-wagering module can be implemented with platform specific software development kits (SDKs).
[0050] Communication can occur over any suitable communications network, such as, for example, the internet.
[0051]
[0052] Optionally, at 240, the transactional server 160 receives data characterizing the outcome of the competition. The data can include in-game statistics and indicate that some of the enrolled players are winners and some are losers. Alternatively, the transactional server 160 can differentiate, based on the in-game statistics, players that are winners and players that are losers. The transactional server 160 can determine based on the in-game statistics the amount of secured funds (if any) to which enrolled players are entitled. Optionally, at 250, the transactional server 160 can transfer at least a portion of the secured funds to one or more accounts associated with their respective enrolled players. Optionally, at 260, the transactional server 160 can transmit data characterizing the transfer and/or the in-game statistics. The transactional server 160 can receive the respective data from and transmit the respective data to one or more of the peer-wagering module 140.sub.i and the third party game server 150.
[0053] The game can be asynchronous. Asynchronous games cover any turn-based game where players 110.sub.i take turns and real-time game play is not an issue. A player 110.sub.i may leave the game to perform other tasks on the same device on which the game is running, without forfeiting a tournament. Asynchronous games can include games such as Chess, Checkers, Go, and most board games where timing of player turns is not a consideration.
[0054] The game can be synchronous. Synchronous games cover any game where real time interaction between the game and player or between players is required. For example, first person simulations wherein each player has one or more characters (i.e. avatars) and multiple players’ characters are interacting in real time with each other’s characters or game environment in a synchronized way. First person shooters, driving and racing simulators as well as real time sports simulations are synchronous. Some turn-based game designs can also include synchronous aspects if all players must be present at some times while a game is in progress.
[0055] Whether synchronous or asynchronous, an entire level of a can game constitute a turn, and the players can take turns independently. For example, games such as Angry Birds, where two or more players can complete a level, independently but potentially at the same time, and the winner can be determined based on some metric when all players complete the level. In this manner, an entire level constitutes a player turn.
[0056] The transactional server 160 can provide an application-programming interface (API) for the third party game instances 130.sub.i or the third party game server 150 to communicate with the transactional server 160.
[0057] Establishing tournaments can allow players 110.sub.i to compete with one another within skill-based games in a single or series of contests. Tournaments can work with synchronous and asynchronous play modes, and tournaments can be user or system generated. Tournaments can be either public or private. Public tournaments can be open to any registered player while private tournaments can be open only to invited players. Any tournament must necessarily have at least two participants. Player-created tournaments can require a specific number of entrants in order to begin the competition, whereas system-created tournaments can have a fixed or variable number of permitted and/or required entrants. Tournaments with a variable number of participants can have a fixed starting time and can have a maximum number of allowed entrants.
[0058] Tournaments can comprise a single match or a series of matches (i.e., multi-round tournaments). The structure can be determined at the time of tournament creation. Each match can have a specified number of participants and winners. A specific win-metric can determine the winners of each match. Individual tournament rounds (e.g., matches) can begin at a pre-determined time set up by the creator of the tournament or they can proceed in immediate sequence. Matches not completed by the next designated match time slot can be terminated, and the top contenders from each non-concluded match can be rewarded the win for that match.
[0059] Each tournament or tournament round can have defined criteria by which the winner(s) are determined. Possible win-metrics can be dependent on the type of game, but can include (for example): highest score, first to complete a level, least moves to complete a level, etc. Additionally, each tournament can have an entry fee which is a dollar amount required to enter the tournament (i.e., a wager amount). However, some system-created tournaments can waive this fee for some or all players 110.sub.i. The tournament creator can determine the amount of the entry fee.
[0060] Prizes offered to tournament winner(s) can be determined at the time of tournament creation. Prize information can be visible to all prospective tournament entrants. In the case of user-created tournaments, the player creating the tournament can set the total prize pool automatically. For example, the creating player can set the prize pool based on the number of entrants and the entry fee that the creating player has specified. The creating player can allocate prizes in a variety of ways such as awarding prizes to more than one participant in a given tournament. A tournament creator can specify the number of winners and the percentage allocation of prizes to each of those winners. A public tournament creator can base prize distribution on individual performance relative to the defined win-metric; however, a private tournament creator can incorporate team scoring relative to the win-metric in determining prize allocation.
[0061] An example player 110.sub.i interaction with an asynchronous multiplayer game including the current subject matter includes creating a tournament, joining a tournament, and concluding a tournament. To create a tournament, the player 110.sub.i, using the player client 120.sub.i, launches a third party game instance 130.sub.i. The player can choose within the game to compete using the peer-wagering module 140.sub.i. The user can log into their transactional server 160 account, optionally electing to remain logged in to the account within this session and future session of this game.
[0062]
[0063] Once signed into their account, the player 110.sub.i can create a public or private tournament and set parameters for the tournament. The transactional server 160 can prompt the player to add funds to their account if the player 110.sub.i has inadequate funding. The player 110.sub.i can invite several known players using their account names (e.g., email addresses, user names, etc.). If the tournament is a public tournament, uninvited participants can join. Public tournaments can start on a rolling basis with players taking their first turn as soon as they join the tournament or as soon as the player before them has played (depending on game mechanics). Private tournaments start when the prescribed number of participants has entered the tournament. The game proceeds according to the game developer’s prescribed game mechanics.
[0064] If the player 110.sub.i does not yet have an account, the player 110.sub.i can register for an account by entering information such as email address and password in data fields 330 and pressing the next button 340.
[0065] To join a tournament, a player 110.sub.i can receive a notification inviting them to a tournament. Notifications can arrive via any one of several means. For example, push notifications, SMS, email and in-game notifications are all options for notification. Alternatively, the user browses public tournaments that are seeking players and selects one. The player 110.sub.i launches the game via the notification they have received or proceeds into the game after selecting a public tournament. The player 110.sub.i accepts the terms of the tournament, including the funding requirements of the tournament in response to a prompt. If the player 110.sub.i has inadequate funding in their account, they can add funds. The player 110.sub.i can accept the terms of the tournament and enter the game. The game proceeds according to the game developer’s prescribed game mechanics.
[0066] In the case when the multiplayer game is synchronous, all players 110.sub.i must start the game simultaneously. To provide this functionality, the transactional server 160 presents the players 110.sub.i with a tournament lobby while they wait for the synchronous game tournament to begin. The transactional server 160 provides the lobby for both the player 110.sub.i who created the tournament as well as the players 110.sub.i who join the tournament. The players can see the other players as they join the tournament and can have the opportunity to withdraw from the tournament before the tournament begins. The game can begin a predetermine length of time (e.g., 60 seconds) after all players have joined the tournament. Any withdrawal by the players 110.sub.i after this point constitutes forfeiture of the tournament entry fee (i.e. the wager).
[0067] The tournament can also start at a predetermined time independent of the number of players 110.sub.i in the lobby. Players 110.sub.i can sign-up for the tournament in advance of the tournament start time. Once players 110.sub.i have signed-up for a tournament, the transactional server 160 can alert the players 110.sub.i that the tournament is starting soon through a variety of methods such as email, SMS, in-game alert, etc.
[0068]
[0069] Detailed information 530 provides tournament information for a selected tournament and shows the name, type, number of players and maximum players, entry fee, and prize breakdown. In this example tournament, the top three players 110.sub.i will receive winnings. Player list 540 provides each player name and overall score currently entered in the tournament. Push buttons 550 enables the player 110.sub.i to enter or not enter the tournament.
[0070] At the conclusion of a tournament, the normal game mechanics are complete and the third party game server 150 posts data to the transactional server 160 indicating game results. Each player 110.sub.i who completes the game should see game results immediately, including data from the transactional server 160 detailing their winnings or losses for the tournament. Other players 110.sub.i in the tournament can also receive a notification detailing their winnings or losses from the transactional server 160 and indicating that their tournament is complete. For games where a continuous connection to the service is important to game-play or game integrity, any player 110.sub.i who drops off the service and does not re-connect within a certain predetermined period forfeits the game. Third party game developers can determine the period or can optionally include reconnection logic to re-establish a lost connection between players when such a loss of connection cannot be used to gain an advantage in either game-play or waging. Additionally, players may be required to take their turn or take another specified in-game action within a predetermined amount of time. Players who do not act within this set amount of time, as determined by third party game developers, will forfeit the game. The peer-wagering module 140.sub.i can report to the transactional server 160 when the player 110.sub.i disconnects from the competition or when the player 110.sub.i has not taken his turn within the allotted time.
[0071]
[0072]
[0073] At 702 through 708 the player 110.sub.i logs into the transactional server 160 using the interface provided by the peer-wagering module 140.sub.i embedded in the game instance 130.sub.i. The peer-wagering module 140.sub.i authenticates 706 with the transaction server 160 allowing for further messaging between the peer-wagering module 140.sub.i and the transaction server 160, via authentication tokens, security certificates, or other user/password exchanges 708. All future requests are set with the valid authentication method. Peer-wagering module 140.sub.i requests 710 a list of potential gaming opponents for the logged in player for the currently running game. The transactional server 160 and peer-wagering module 140.sub.i returns (712 and 714) a list of the players available for play as well as a list of current tournaments requiring additional players. The creating player 110.sub.i creates a tournament 716 and invites other players 110.sub.i. The peer-wagering module 140.sub.i sends 718 the transactional server 160 data regarding invited players 110.sub.i and the tournament name. When a player 110.sub.i joins the tournament, the player’s information is communicated to the peer-wagering module 140.sub.i as well. Funds are transferred 720 from the joining/creating player’s transactional server 160 account. The transactional server 160 places these funds in escrow or places a “hold” on wagered funds in player accounts. The transactional server 160 returns 722 a unique tournament ID and all entered players 110.sub.i wait 724 for the tournament to start. Each peer-wagering module 140.sub.i communicates with 726 the transactional server 160 with the tournament ID until the server indicates 728 the tournament has started. The peer-wagering module 140.sub.i can signal the transactional server 160 to force the tournament to start for those players who have joined.
[0074] During normal game play, all communication (732 and 734) occurs between the third party game instance 130.sub.i and its own third party game server 150. All active gaming statistics including rank of each player is communicated and coordinated between the game instance 130.sub.i and the gaming server 150. The third party game instance 130.sub.i communicates 736 data regarding any players 110.sub.i who have left the game or any data relevant to the detection of fraudulent behavior.
[0075] On completion of the game, each connected peer-wagering modules 140.sub.i send (740 and 742) tournament statistics to the transactional server 160. The transactional server 160 calculates winnings and losses based on the tournament statistics. The transactional server 160 sends (744 and 746) notifications to all players in the completed tournament indicating their tournament has completed, and they have winnings or losses, as well as a leader board for the tournament. The players 110.sub.i receiving the completion notification can launch a new game via the notification.
[0076] Alternatively, on completion of the game 750, the third party game server 150 sends 752 games statistics to the third party game 130.sub.i and sends 754 tournament statistics to the transactional server 160. Each peer-wagering module 140.sub.i polls 756 the transactional server 160. The transactional server 160 sends (758 and 760) a leader board for the tournament, as well as notifications to all players in the completed tournament indicating their tournament has completed, and indicating whether they have winnings or losses. The players 110.sub.i receiving the completion notification can launch a new game via the notification.
[0077] The data flow diagram of
[0078]
[0079]
[0080] The transactional server 160 can further be configured to generate a stream of pseudo-random numbers for use by the third party game instances. Since random numbers are typically used in gameplay engines to decide game elements and properties (e.g., what obstacles are present can be decided based on the value that a random number generator returns), the use of common random numbers can provide a common gameplay experience to a subset of users (e.g., the players involved in a third party game tournament). The common gameplay experience can be used to standardize (or level the playing field) for a game of skill that still has random elements.
[0081] For example, while Tetris is typically considered a game of skill, the order in which the Tetris pieces present to a player is normally random. By providing a common stream of pseudo-random numbers to each game instance participating in an online tournament, the order that Tetris pieces appear to each player can be common across all participating game instances. Thus, the results of a competitive tournament would be based entirely on skill, and not on a random chance of getting an easier order of Tetris pieces presented.
[0082] In one example, the transactional server 160 can use a tournament identification number as a seed to generate pseudo-random numbers, thus causing gameplay to be different between tournaments, but not between game instances involved in a given tournament.
[0083] Various implementations of the subject matter described herein may be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations may include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0084] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and may be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the term “machine-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
[0085] To provide for interaction with a user, the subject matter described herein may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user may provide input to the computer. Other kinds of devices may be used to provide for interaction with a user as well; for example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, speech, or tactile input.
[0086] The subject matter described herein may be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a Web browser through which a user may interact with an implementation of the subject matter described herein), or any combination of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
[0087] The computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0088] Although a few variations have been described in detail above, other modifications are possible. For example, the logic flow depicted in the accompanying figures and described herein do not require the particular order shown, or sequential order, to achieve desirable results. Other embodiments may be within the scope of the following claims.