CROSS REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Patent Application No. 60/834,238, filed on Jul. 28, 2006, entitled INTERACTIVE GAMING SYSTEM WITH PERSONALIZED METADATA, which is incorporated by reference in its entirety.
Many games traditionally played in person between players are now played between players located remotely from one another using online computing environments. A player accesses a gaming environment via a web browser, optionally provides identification or log in credentials, and find games and other players. Examples of games available online include poker, blackjack, spades and other card games, chess, checkers, scrabble, and other table games.
In some games, such as poker, it may be advantageous for a player to learn and track information about other players. For example, in poker, knowing an opposing player's tendencies may assist in making better decisions during game play. However, millions of people play online poker. Therefore, memorizing or retaining information about opposing players is difficult unless a user frequently interacts with a specific opposing player.
Some online environments facilitate the tagging of opposing players, such as tagging opposing players with metadata or other characteristics. For example, a user may write down information about specific opposing players, and tag these players (such as their representative icons or avatars within the gaming environment) with the information. Thus, when the specific opposing player is in a future game with a user, the user may be able to retrieve previously written tagged information (such as notes) about the specific player, and adjust their strategy accordingly. However, there may be times when the user is unable to retrieve notes, such as due to time constraints, due to no previous interactions, and so on. Additionally, it may be awkward for a user to retrieve notes for multiple opposing players, not to mention being cumbersome and time consuming.
BRIEF DESCRIPTION OF THE DRAWINGS
These and other problems exist with respect to providing traditional games in online gaming environments.
FIG. 1 is a block diagram illustrating an AJAX enabled web based gaming environment.
FIG. 2 is a flow diagram illustrating a routine for displaying an indicator for a player.
FIGS. 3A-3B illustrate display objects related to an opposing player within a gaming environment.
FIG. 4 is a flow diagram illustrating a routine for displaying user-determined indicators.
FIG. 5 is a display illustrating a gaming environment having indicators.
A system and method for providing visual indicators related to player and other game attributes within an online gaming environment is described. In some examples, the system presents similar visual indicators to all players (users and opposing players) within a gaming environment. In some examples, the system presents unique or specific visual indicators to a user that are different from indicators presented to opposing players. These specific indicators may be system or user-defined.
The indicators may relate to attributes associated with opposing players. For example, they may relate to a number of points earned by an opposing player, an amount of cash or wagering collateral held by the opposing player, the style of play of an opposing player, a skill rating for an opposing player, historical information associated with the opposing player, and other visually discernable metadata associated with the opposing player.
- Suitable System
In some examples, the system provides a user with a gaming environment similar to a real life “bricks and mortar” environment. The system may present visual indicators to the user as they would be presented in the real environment. For example, a poker gaming environment may present a simulated card room with game objects including tables and opposing players around the tables. The system may present indicators related to the information about the table, such as information related to the present game play at the table. The system may also present indicators related to information about some or all of the players within the simulated card room. Thus, the system presents a user with visual information related to the card room and ongoing play, enabling the user to identify an advantageous or desired table and position at the table that best suits the user.
Systems and modules described herein may comprise software, firmware, hardware, or any combination(s) of software, firmware, or hardware suitable for the purposes described herein. Software and other modules may reside on servers, workstations, personal computers, computerized tablets, PDAs, cell phones and other mobile devices, and other devices suitable for the purposes described herein. In other words, the software and other modules described herein may be executed by a general-purpose computer, e.g., a server computer, wireless device or personal computer. Those skilled in the relevant art will appreciate that aspects of the system can be practiced with other communications, data processing, or computer system configurations, including: Internet appliances, hand-held devices (including personal digital assistants (PDAs)), all manner of cellular or mobile phones, multi-processor systems, microprocessor-based or programmable consumer electronics, set-top boxes, network PCs, mini-computers, mainframe computers, and the like. Indeed, the terms “computer,” “server,” “host,” “host system,” and the like are generally used interchangeably herein, and refer to any of the above devices and systems, as well as any data processor. Furthermore, aspects of the system can be embodied in a special purpose computer or data processor that is specifically programmed, configured, or constructed to perform one or more of the computer-executable instructions explained in detail herein.
Software and other modules may be accessible via local memory, via a network, via a browser or other application in an ASP context, or via other means suitable for the purposes described herein. Examples of the technology can also be practiced in distributed computing environments where tasks or modules are performed by remote processing devices, which are linked through a communications network, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. Data structures described herein may comprise computer files, variables, programming arrays, programming structures, or any electronic information storage schemes or methods, or any combinations thereof, suitable for the purposes described herein. User interface elements described herein may comprise elements from graphical user interfaces, command line interfaces, and other interfaces suitable for the purposes described herein. Screenshots presented and described herein can be displayed differently as known in the art to input, access, change, manipulate, modify, alter, and work with information.
Examples of the technology may be stored or distributed on computer-readable media, including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other data storage media. Indeed, computer implemented instructions, data structures, screen displays, and other data under aspects of the invention may be distributed over the Internet or over other networks (including wireless networks), on a propagated signal on a propagation medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a period of time, or they may be provided on any analog or digital network (packet switched, circuit switched, or other scheme).
Referring to FIG. 1, a block diagram illustrating an AJAX enabled web based gaming environment 100 is shown. The gaming environment 100 may include a user device 110 (or, client device) having a web browser or other user interface 112 and an AJAX engine 130. A server 140, connected to the user device 110 over a network 120 such as the internet, provides the gaming environment to the user. The server environment 140 may include a web and/or XML server, content databases, and other processing components. In this example, the system, at server 140, receives HTTP requests from the user device 110 via the AJAX engine 130. The HTTP requests cause the web and/or XML server 140 to access databases, processing, and other components in order to fulfill the request. The system responds to the http request by providing data to the web and/or XML server 140 which then provides XML data to the AJAX engine 130. The AJAX engine 130 may then provides HTML and/or cascading style sheet (CSS) data to the browser 112 of the user device 110. Thus, the system enables the user at user device 110 to continue using browser 112 while HTTP requests are being fulfilled.
Gaming environment 100 can be configured to allow users to play games without having to download applets or executable files. The asynchronous nature of AJAX allows the users to perform actions during the game and continue performing actions while other actions are being processed, providing a seamless game playing experience similar to games within desktop applications. As will be appreciated, other suitable platforms for implementation are available.
In some examples, the system stores user information, such as user account information, financial information, attribute information, and so on, within a database stored at server 140. The system may update the database when a user provides information related to opposing players, such as information related to user-assigned attributes for opposing players. During game play, the system may retrieve this user specific information and provide indicators and other enhanced game play to the user.
In some examples, the system employs a gateway between the browser 112 and server 140. The gateway may be a Java servlet that passes commands to and from the applications contained on the server 140, and may interface with the AJAX engine 130.
In some examples, the user device 110 may be a mobile device, such as a cellular telephone, Personal Digital Assistants (PDA), or other handheld device. Often, these devices may not have the browser capabilities of personal computers. Therefore, the system may provide these mobile devices with a MIDlet. A MIDlet is a Java program used within embedded devices, such as mobile devices. The MIDlet enables the mobile device to interface with the gateway of a gaming environment. Some PDA devices, however, may be capable of running native applications and interfacing with larger computers. Other mobile embodiments may utilize Flash and/or AJAX. In still further embodiments, the system may be implemented via a Web2.0 application or such that runs in a mobile device's fully functional web browser.
- Providing Visual Indicators Within a Gaming Environment
Although gaming environment 100 is described with respect to using the Ajax engine 130 within the client device, the system may be envisioned and implemented within other applications, such as .NET, Java, XML applications, Flex, Flash Remoting, and so on.
The system provides a gaming environment to users that wish to play games with other users, such as betting games, action games, role playing games, and so on. As described herein, the system enables users to visually identify attributes of opposing players, other game objects, and game play by providing indicators to the user about the opposing players. In some cases, the indicators are visual indicators that relate to the players and/or objects. In some cases, the indicators are audio or other indicators that relate to the players and/or objects.
Presented attributes may be related to opposing players or to the type of game and/or gaming environment. Indicators may quantitatively or qualitatively present these attributes. For example, indicators may be different colors that pertain to different attributes, may be icons that represent or are tailored to attributes, may be an audio tone or song related to an attribute, and so on.
The indicators may present information to a user about attributes of opposing players. For example, the indicators may provide information about an opposing player's skill, style of play, amount of points, cash, or chips or other gaming collateral, and so on. These indicators may be dynamically updated during game play, enabling users to discern current and timely information about opposing players.
Referring to FIG. 2, a flow diagram illustrating a routine 200 for displaying an indicator for a player is shown. In step 210, the system determines one or more attributes about a player within a gaming environment, such as an online gaming environment supporting a poker game. The system may look to current or historical performance of the player, monetary holdings of the player, assigned or determined skill ratings, and so on, in determining an attribute. For example, the system may determine that a player is a player that historically plays very few hands during a poker game, and determine an attribute of the player being a “tight” player.
In step 220, the system identifies an indicator associated with the determined attribute. For example, the system looks to a table or other data structure that relates attributes with indicators, and identifies an indicator associated with the determined attribute. In this example, the system identifies a red light as being related to a tight player.
In step 230, the system presents the red light to the gaming environment. For example, the gaming environment may be a poker table with players around the poker table. The system may present a red light next to or in place of the tight player. Thus, the system provides other players with visual information about the tight player, and may act accordingly.
FIG. 3A illustrates a display object 300 related to a player within a gaming environment that includes a visual indicator 310. The display object 300 may include a generic player icon 320, an icon 330 related to the player chip stack, a name of the player 340, and whether the player has cards 350 (that is, if the player is currently playing a hand). The display object 300 may also include a visual indicator 310 that provides a color or other displayed information related to the attributes of the player.
As described herein, the system may dynamically adjust or change presented indicators. For example, when the tight player plays a number of weak hands uncharacteristic of the player's attributes, the system may perform some or all of routine 200 to determine and display a different indicator than originally displayed. The system may remove the red light and present a blinking green light, indicating that the player is a “loose” player (the green light) at present (the blinking of the light).
The system may identify and display more than one indicator in order to provide more information to users about players. For example, the system may display an icon and a color, where the icon related to the type of player, and the color relates to the current game play of the player. In this example, a “loose” player that is losing hands may appear as an ATM machine icon having a blinking green light.
FIG. 3B illustrates a display object 360 related to a player within a gaming environment that includes a visual indicator 370 and an attribute defined icon 380. The display object may display similar information to object 300, and may also include a visual indicator 370 and a player icon 380 that represents one or more attributes associated with the player. Using the previous example, the icon 380 is an ATM machine and the visual indicator 370 is a blinking green light.
The system may also display indicators specific to a user, such as user-defined or user-determined indicators. Referring to FIG. 4, a flow diagram illustrating a routine 400 for displaying user-determined indicators is shown. In step 410, the system receives input from the user related to assigning an attribute to an opposing player. For example, the user may select an opposing player and indicate a desire to assign an attribute. The system may receive a selection of a system presented option from the user, may receive text entry from the user, and so on. In step 420, the system identifies an indicator associated with the received input. In step 430, the system displays the indicator to the user.
Therefore, the system enables the user to modify the display of opposing players according to information determined by the user. For example, if the user believes a normally tight player is playing loose, the user may select that player (such as right click on the player), and choose an option to adjust the player attributes (such as select “temporary loose play”). The system may then adjust the visual indicator associated with the player to an indicator associated with a loose player, such as a green blinking light.
The system may present indicators as displayed colors, displayed icons, audio tones, or other indicators. The system may present indicators that simulate actions that would occur within a real life game associated with the online gaming environment. During an online poker game, the system may present an indicator to a user that mimics what would happen during a real game. For example, during a poker hand, the system may cause a user-defined loose player to say “I have you beat” to the user when the loose player bets all his/her chips on a hand. The system, having received an earlier indication from the user that the opposing player is loose, may play the audio to emulate what a loose player (according to the user) might say when betting all their chips on a hand.
- The Gaming Environment
Thus, the system may present indicators that are tailored to the type of game or gaming environment. Some examples of indicators related to poker include:
- Icons that relate to common player types. These may include a mouse for tight, conservative players, a jackal for loose, aggressive players, a donkey for bad players, a shark for good players, an elephant for players that tend to call a lot of hands, and so on.
- Dynamic icons that relate to game play. These may include moving representative player icons to look like they have a strong or weak hand, adjusting icon facial or body expressions, simulating possible tells, and so on.
- Audio indicators that relate to player types or game play. These may be common expressions based on a given play of a hand, may be profanities or other distracting outbursts, and so on.
- Colors or other non-representative or figurative icons. These may be colors that guide how to play (e.g., the color red is often associated with stop, and may be applied to good opposing players in order to stop a user from playing hands with the good player), dynamic indicators that display temporal attributes (e.g., a blinking light may indicate a temporarily assigned attribute), and so on.
The indicators may also display information about the gaming environment and/or games within the environment, such as difficulty of game, speed of game play, structure of the game, and so on. For example, the system may present indicators with a simulated card room that display information related to players within the room and to games being played within the room, effectively guiding a user to a table having opposing players and game play desirable to the user.
Referring to FIG. 5, a top view of a graphically displayed gaming environment 500, such as a poker room having multiple poker tables 510-550 is shown. The poker room 500 includes a number of active tables 510-540 and a number of inactive tables 550. Additionally, the poker room 500 includes a cashier 560 where a user may purchase chips and/or cash out chips, and an exit 570 that may lead to other poker rooms, other gaming environments, or may be an exit from the system.
The tables include indicators related to players 580 that display types of active players 582, 583, available seats 581, and indicators related to the table 590 that display the type of play 591, 592, and 593 at a table. For example, unfilled or blank circles 581 may indicate open seats, light filled circles 582 may indicate weak players and dark circles 583 may indicate strong players. Colors and other visual indicators may be used to provide additional details with respect to the players, although they are not shown in the Figure. For example, a colored circle may blink, indicating additional the current style of a player. Additionally, the indicators related to the table may be one of a number of different colors 591, 592, 592 indicating the strength or style of play, the speed of play, and other characteristics or attributes. The poker room 500 may display additional information not depicted in the Figure, such as table names, types of games being played, length of games, and so on. The active tables will now be described:
Table 510 includes indicators 583 related to three strong players, indicators 582 related to two weak players, and two open seats 581, as well as an indicator 591 that describes the play at the table as normal. Should a user choose this table, the user may determine where to sit based on the information presented by the indicators. For example, the user may sit between indicators 582 related to weak players in order to obtain a position between weak players.
Table 520 includes seven occupied seats, and therefore does not have room for the user.
Table 530 includes indicators 583 related to six strong players and an indicator 581 related to one open seat. Additionally, the indicator 593 displays a color related to strong high stakes play at the table. Thus, a beginning user may see the indicators and determine the table is too strong, avoiding the likelihood of losing the game, and money, to the strong players at the table.
Table 540 includes indicators 582 related to two weak players and five indicators related to open seats. The user may choose this table because there are no strong (or currently strong) players, or may avoid the table because there are few total players.
The indicators within the poker room 500 may be assigned by the system, as described with respect to routine 200, or may be assigned by the user, as described with respect to routine 400. Additionally, poker room 500 may display icons and other indicators discussed herein. Thus, the system provides a gaming environment, such as a poker room 500 that facilitates the choice of a table for a user based on information previously determined by the user and/or based on information determined by the system.
The system may incorporate search modules and other applications to assist users in finding desirable games, such as desired poker tables, and dynamically adjust the displayed indicators accordingly. For example, the user may wish to see all tables having an average pot size above a threshold amount, and adjust the indicators to show all tables above the threshold. In this example, upon receiving a selection from a user to show all tables with an average pot size above 10 dollars, the system colors are tables satisfying the criteria green, and colors all tables not satisfying the criteria red. The system may maintain the individual opposing player indicators to facilitate seat selection for the user.
The system may also include a player locator application. The system may receive input from the user related to types of desired opposing players, and provide and/or adjust player indicators to satisfy the users desired criteria. For example, the system may receive a request from the user to indicate all opposing players having a chip stack above 100 dollars, and color all player indicators green that satisfy the request.
Once a user selects a table, the system may present the table, assign a seat for the user, such as a user-selected seat, and present additional indicators related to the players at the table, as described herein.
The system may provide high level views or indicators about a table or a gaming environment (poker room) using colors, colored borders, graphical iconic illustrations (such as icons related to hot, sizzling, cool or freezing), audio information, and so on. In some cases, the system only presents metadata related to the indicators to the user. The user may select what attributes the system should present. For example, the user may select a gaming environment attribute such as number of players or difficulty of play. A high level view of the gaming environment may show rooms or areas and indicators related to difficulty of play. Should the user select an attribute related to the type of play, the system then adjusts the high level view to display the various types of play at the tables.
In some examples, the system enables a user to select a display environment, such as a skin, for the gaming environment. The system provides the user with the ability to create attributes and view metadata related to the attributes that system-created and/or user-created attributes. The attributes may be related to the skin or specific objects within the skin. The same basic skin may be viewed by multiple parties each accessing a gaming environment at different locations. The skin may have unique visual indicators only presented within the skin. The system may enable other players to see the skin, but may block these players from seeing the indicators.
Although many examples described herein relate to online poker and online poker rooms, the system may be implemented with respect to other types of betting games and online games in general. Examples of some implementations include:
- In online chess and other games, the system may display indicators to a user related to an opposing players attributes with respect to historical style of play, speed of play, overall skill of player, current or temporal skill of the player, loyalty of the player (e.g., often exits the game before losing), friendliness of the player (often sends vulgar or crude comments in a chat box) and so on.
- In action games, the system may display indicators to a user related to the skill of the player, the loyalty of the player, friendliness of a player, and so on.
The above detailed description of examples of the technology is not intended to be exhaustive or to limit the system to the precise form disclosed above. While specific embodiments of, and examples for, the system are described above for illustrative purposes, various equivalent modifications are possible within the scope of the system, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative embodiments may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or subcombinations. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed in parallel, or may be performed at different times.
The teachings of the technology provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various embodiments described above can be combined to provide further examples. Any patents and applications and other references noted above, including any that may be listed in accompanying filing papers, are incorporated herein by reference. Aspects of the system can be modified, if necessary, to employ the systems, functions, and concepts of the various references described above to provide yet further examples of the technology.
From the foregoing, it will be appreciated that specific embodiments of the system have been described herein for purposes of illustration, but that various modifications may be made without deviating from the spirit and scope of the system. Accordingly, the system is not limited except as by the appended claims.