A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. Copyright 2014, WMS Gaming, Inc.
Embodiments of the inventive subject matter relate generally to wagering game systems and networks that, more particularly, control application data in wagering game systems.
Wagering game machines, such as slot machines, video poker machines and the like, have been a cornerstone of the gaming industry for several years. Generally, the popularity of such machines depends on the likelihood (or perceived likelihood) of winning money at the machine and the intrinsic entertainment value of the machine relative to other available gaming options. Where the available gaming options include a number of competing wagering game machines and the expectation of winning at each machine is roughly the same (or believed to be the same), players are likely to be attracted to the most entertaining and exciting machines. Shrewd operators consequently strive to employ the most entertaining and exciting machines, features, and enhancements available because such machines attract frequent play and hence increase profitability to the operator. However, wagering game providers and wagering game machine manufacturers run into challenges with controlling and presenting data on wagering game machines, servers, and other devices, as the features and enhancements of new wagering games becomes more complex. Some wagering game machines can run multiple applications simultaneously, which may simultaneously need to present information on the wagering game machine, thus increasing the control and presentation complexities that game programmers and machine designers must deal with. Thus there is a continuing need for wagering game providers, wagering game machine manufacturers, and others, to continuously develop new games and applications that will attract frequent game play but also interoperate with other hardware and software on wagering game systems and networks.
Embodiments are illustrated in the Figures of the accompanying drawings in which:
This description of the embodiments is divided into five sections. The first section provides an introduction to embodiments. The second section describes example operating environments while the third section describes example operations performed by some embodiments. The fourth section describes additional example operating environments while the fifth section presents some general comments.
This section provides an introduction to some embodiments.
As mentioned previously, a wagering game machine can run various applications simultaneously to process wagering games, financial transactions, advertising, etc. Many of those applications need to present information (e.g., content, messages, etc) on the wagering game machine. Sometimes, the applications need to present information simultaneously, thus presenting a challenge for programmers to design wagering game machines that can handle the complex timing and presentation needs of the applications. Further, various events can occur continuously during a wagering game session on the wagering game machine that can cause the presentation needs of the applications to change constantly. Thus interoperability needs between the applications are becoming more complex to program. Embodiments of the inventive subject matter, however, present solutions to many of those challenges. For example,
The wagering game machine 160 runs the applications 103-108 as requested or needed. As the applications 103-108 run, the applications 103-108 provide application data (e.g., publish the application data to the application data list 121, broadcast application data to each other, etc.). Application data can include states (application states, state of game play, instructions in queue, etc.), events (game outcomes, wager amounts, how much a machine/player has won, game play element configurations, game results, awards, bonus rounds, game history, etc.), properties, (e.g., window positions, level of communications, etc.), and other information (e.g., player data, metadata, account information, etc.). The applications 103-108 can listen to each other and use the information to generate messages that the presentation controller 111 can use to prioritize and present information. Further, the applications 103-108 can intercept messages from each other, which may trigger new messages, data, events, states, property changes, etc., amongst the applications 103-108. For example, the advertising application 103 can look for application data produced by wagering game applications 105, 106, such as occurrences of a slot reel combination. Based on the slot reel combination, advertising application 103 can present a specific advertisement. The presentation controller 111 can receive messages from the advertising application 103 to present the advertisement and prioritize the presentation of the advertisement (e.g., place the advertisement into a priority order or list 115). In another example, an accounting application 105 can provide financial information about wagering amounts. In return other applications can use the financial information (e.g., a responsible gaming application can receive the financial information, which triggers a reminder by the responsible gaming application for the player account to stop gambling). The system 100 can also require a security exchange or authentication before allowing the data to be received by other applications. For instance, in the case of security sensitive data, like financial data, the system 100 can require that applications, which want to listen to and/or receive the financial information, authenticate themselves with a sentinel service that runs on the client, server, or other device. The applications 103-108 and the presentation controller 111 can also receive application data from other applications (e.g., network applications, applications on personal computing devices connected to the communications network 122, etc.) and/or devices (e.g., other wagering game machines on the communications network 122) accessible to the wagering game machine 160. In some embodiments, the system 100 can also receive other data (e.g., wagering game machine specific data, player specific data, network application specific content, etc.) from the wagering game machine 160, the application configuration server 170, an account server, a wagering game server, or any other server or device on the network. The applications 103-108 can use that information to determine actions, generate application data, etc.
The applications 103-108 can contain individual rule sets and/or rule controllers for each application that controls how to handle application data under known and foreseeable scenarios or combinations of events, states, etc. The system can also include a configuration tool installed on the application configuration server 170 to configure the rule sets for each of the applications 103-108. Thus, the system 100 can know ahead of time how to publication application data. The system 100 can also be configured to dynamically generate new rules and/or reconfigure itself to adapt to new rules. For instance, the system 100 can recognize new scenarios of previously unknown events and come up with new rules for handling the new scenario. The system 100 can dynamically add the new rules to the application rules store 113 and/or to individual rules stores for each application. If the scenarios are potentially repeatable by other wagering game machines, the system 100 can provide the application configuration server 170 with the new rules for those scenarios. The application configuration server 170 can configure the applications for the new rules. The application configuration server 170 can then push the updated rules to the wagering game machine 160 and other wagering game machines on the communications network 122. The system 100 can also provide the new scenarios to the application providers so that the application providers can update the software to respond to the new scenarios with new rules/functionalities and other related scenarios. The wagering game machine 160, the application configuration server 170, and any other network device that runs configurable applications that can provide application data, can include a configuration controller (e.g., see
Although
This section describes example operating environments and networks and presents structural aspects of some embodiments. More specifically, this section includes discussion about wagering game system architectures.
The wagering game system architecture 200 can also include a wagering game server 250 configured to control wagering game content, provide random numbers, and communicate wagering game information, account information, and other information, to and from a wagering game machine 260. The wagering game server 250 can include a content controller 251 configured to manage and control content for the presentation of content on the wagering game machine 260. For example, the content controller 251 can generate game results (e.g., win/loss values), including win amounts, for games played on the wagering game machine 260. The content controller 251 can communicate the game results to the wagering game machine 260. The content controller 251 can also generate random numbers and provide them to the wagering game machine 260 so that the wagering game machine 260 can generate game results. The wagering game server 250 can also include a content store 252 configured to contain content to present on the wagering game machine 260. The wagering game server 250 can also include an account manager 253 configured to control information related to player accounts. For example, the account manager 253 can communicate wager amounts, game results amounts (e.g., win amounts), bonus game amounts, etc., to the account server 270. The wagering game server 250 can also include a communication unit 254 configured to communicate information to the wagering game machine 260 and to communicate with other systems, devices and networks. The wagering game server 250 can also include an application configuration controller 255 configured to configure the wagering game machine 260 with applications that can provide data regarding their presentation needs.
In some embodiments, the wagering game system architecture 200 can also include an application provider server 290 configured to provide applications to the wagering game server 250 and the wagering game machine 260. The application provider server 290 can also have an application configuration controller 291 configured to configure applications to generate, receive, and provide application data and respond to application data from other applications. The application configuration controller 291 can also generate application control rules and include those control rules with the applications.
The wagering game system architecture 200 can also include the wagering game machine 260 configured to present wagering games and receive and transmit information to control application data in wagering game systems. The wagering game machine 260 can include a content controller 261 configured to manage and control content and presentation of content on the wagering game machine 260. The wagering game machine 260 can also include a content store 262 configured to contain content to present on the wagering game machine 260. The wagering game machine 260 can also include a presentation controller 263 configured to present content on a wagering game machine according to application data, broadcasted messages, etc. from smart applications and priority rules. The wagering game machine 260 can also include an application rules store 264 configured to store rules regarding the presentation and prioritization of content on the wagering game machine 260. The wagering game machine 260 can also include an application data controller 265 configured to track application data from smart applications on the wagering game machine 260. The application data controller 265 can publish the application data on an application data list. In some embodiments, the smart applications can read the application data directly from each other using the application data controller 265. The wagering game machine 260 can also include an application configuration controller 266 configured to dynamically recognize new combinations of events, properties, and/or other information and needs from smart applications and generate new application control rules. The application configuration controller 266 can also provide the wagering game server 260 with the new control rules. The application configuration controller 255 on the wagering game server 250 can then use the new rules to configure applications on other wagering game machines. The wagering game machine 260 can also include a priority manipulation unit 267 configured to present priority and presentation information about content and receive information from a player account regarding manipulating the priority and/or presentation for the content.
Each component shown in the wagering game system architecture 200 is shown as a separate and distinct element connected via a communications network 222. However, some functions performed by one component could be performed by other components. For example, the wagering game server 250 can also be configured to perform functions of the presentation controller 263, the application rules store 264, the application data controller 265, the application configuration controller 266, the priority manipulation unit 267, and other network elements and/or system devices. Furthermore, the components shown may all be contained in one device, but some, or all, may be included in, or performed by multiple devices, as in the configurations shown in
This section describes operations associated with some embodiments. In the discussion below, some flow diagrams are described with reference to block diagrams presented herein. However, in some embodiments, the operations can be performed by logic not described in the block diagrams.
In certain embodiments, the operations can be performed by executing instructions residing on machine-readable media (e.g., software), while in other embodiments, the operations can be performed by hardware and/or other logic (e.g., firmware). In some embodiments, the operations can be performed in series, while in other embodiments, one or more of the operations can be performed in parallel. Moreover, some embodiments can perform more or less than all the operations shown in any flow diagram.
The flow 300 continues at processing block 304, where the system determines applications are verified to receive prioritization according to control rules. In some embodiments, the system can require security and/or go through a verification process for the applications to make sure that applications are verified to provide rules, run rules, etc. The verification process may include determining account information for application providers.
The flow 300 continues at processing block 306, where the system determines whether there are control rule updates. In some embodiments, application providers can provide updates to their applications which may include updates to control rules. In other embodiments, configuration servers, wagering game machines, or other devices configured to update control rules, can provide control rule updates. If there are updated and/or additional control rules, smart applications can generate new or updated application data, which the system, for example, using the application data controller 265, can recognize and publish to an application data list (e.g., the application data list 121). In some embodiments, the wagering game applications can also submit new rules. If there are new and/or updated rules, the flow 300 continues at processing block 308, where the system updates rules store for the applications.
The flow 300 continues at processing block 310, where the system determines subscription and/or tiered levels for application providers. In some embodiments, the system can determine tiers of services that allow certain things to happen based on a subscription level (e.g., one subscription level can watch for reels that spin, where another subscription level watches what the reels do). For example, in
The flow 300 continues at processing block 312, where the system generates prioritized control instructions for presenting data from the applications according to control rules. For example, the application data controller 265, in
The flow 300 continues at processing block 314, where the system controls data presentation on the wagering game machine according to the prioritized control instructions. Based on priority, an application can change the way it was going to present data. For example, an application may provide application data indicating that it wants to display a first content on a full screen display of the wagering game machine. However, the system prioritizes the application's need to display the first content by assigning the application's request with a low priority, based on application data of greater importance from other applications that need to display higher priority content in a portion of the wagering game machine display. The application can receive its priority and, based on its assigned priority, decide to change its application data to negotiate a higher priority. For example, the application may decide that it could display the first content in a smaller portion of the screen, instead of a full screen, to expedite the display of the first content. The application can, thus, present new application data that requests to present the first content in a smaller portion of the wagering game display. The system could receive the changed application data and determine that the higher priority content can be displayed simultaneously with the first content, as a result, assign a higher presentation priority to the application because the application no longer requires a full screen display. The system can, therefore, present the first content sooner than it would have had the application not changed the application data.
The flow 500 continues at processing block 504, where the system determines player presentation preferences. The player presentation preferences can indicate a preference for presenting multiple content. For example, the system 600 presents a player account interface 602 that includes presentation preferences in a presentation priority settings 604. The presentation priority settings 604 can indicate a priority of presentation for certain types of content, for events that trigger the presentation of content, etc. In some embodiments, the presentation priority settings 604 can allow a player account to prioritize the priority of content by indicating events whose presentation should not be disturbed. The presentation priority settings 604, for example, includes a first setting 630, for a first event, and, a priority control 634 to set a priority for the first event described in the first setting 630. The first event relates to selection of an advertisement window such as the advertisement window 605. When the advertisement window 605 is selected, the first setting 630 indicates that other content or other events that affect content in other windows, other than the advertisement window 605, have a lower priority than the display of the advertisement in the advertisement window 605. The presentation priority settings 604 also includes a second setting 632, for a second event, and, a priority control 636 to set a priority for the second event described in the second setting 632. A second event described in the second setting 632 relates to the presentation of active game content in either of the primary game window 610 or the secondary game window 612. Specifically, the priority control 636 indicates that when either the reels 607 or the reels 615 begin spinning, then the respective windows (e.g., the primary game window 610 and the secondary game window 612) should not be disturbed by any other event except for the first event described in the first setting 630. However, the first setting 630 can also include an expiration period whereby the priority expires. For example, the first setting 630 indicates that, after being selected, the presentation of the advertisement window 605 should be undisturbed by other content, application data, priority control instructions, etc. for 15 seconds. Thus, if the primary game is spinning the reels 607 within the primary game window 610, but during that spinning period, the player selects the control button 619 on the advertisement window 605 to expand the view of the advertisement 614, the system 600 knows that a presentation of the advertisement 614 has priority over the presentation of the spinning reels 607 and thus expands the advertisement window 605. The advertisement window 605 may cover a portion of the reels 607 while it is being viewed by the player account. However, the first setting 630 indicated that the advertisement window only holds priority for 15 seconds. During those 15 seconds, the primary wagering game may continue spinning the reels 607. However, the system 600 still maintains the advertisement window 605 as an upper display layer so that it continues to cover the reels 607 during the 15 seconds. After the 15 seconds, however, the spinning reels may then take highest priority, and cause the advertisement window 605 to automatically collapse. If during the 15 seconds, the reels 607 stop spinning and want to present a wagering game result, the system 600 can look for a player preference that indicates a priority for displaying wagering game results. If there is no player preference, the system 600 can rely on presentation rules (e.g., if a game result is a win, the system 600 may enforce a display of the win as a higher priority than events indicated in the presentation priority settings 604, however, if the wagering game result is a loss, the system 600 may honor other events indicated in the presentation priority settings 604 as being higher priority than the game result display.).
The flow 500 continues at processing block 506, where the system determines a presentation priority for presenting the multiple content in multiple stages. For example, in
The flow 500 continues at processing block 508, where the system presents an indication of the presentation priority according to the multiple stages. In some embodiments, the system can present an indicator on a display (e.g., in a window of the wagering game machine, on a peripheral devices, etc.) to indicate the priority order. For example, in
The flow 500 continues at processing block 510, where the system provides a user interface with configuration controls to modify the presentation of the content. The configuration controls can rearrange the presentation order of the multiple stages. For example, in
This section describes example operating environments, systems and networks, and presents structural aspects of some embodiments.
The CPU 726 is also connected to an input/output (“I/O”) bus 722, which can include any suitable bus technologies, such as an AGTL+ frontside bus and a PCI backside bus. The I/O bus 722 is connected to a payout mechanism 708, primary display 710, secondary display 712, value input device 714, player input device 716, information reader 718, and storage unit 730. The player input device 716 can include the value input device 714 to the extent the player input device 716 is used to place wagers. The I/O bus 722 is also connected to an external system interface 724, which is connected to external systems (e.g., wagering game networks). The external system interface 724 can include logic for exchanging information over wired and wireless networks (e.g., 802.11g transceiver, Bluetooth transceiver, Ethernet transceiver, etc.)
The I/O bus 722 is also connected to a location unit 738. The location unit 738 can create player information that indicates the wagering game machine's location/movements in a casino. In some embodiments, the location unit 738 includes a global positioning system (GPS) receiver that can determine the wagering game machine's location using GPS satellites. In other embodiments, the location unit 738 can include a radio frequency identification (RFID) tag that can determine the wagering game machine's location using RFID readers positioned throughout a casino. Some embodiments can use GPS receiver and RFID tags in combination, while other embodiments can use other suitable methods for determining the wagering game machine's location. Although not shown in
In some embodiments, the wagering game machine 706 can include additional peripheral devices and/or more than one of each component shown in
In some embodiments, the wagering game machine 706 includes a wagering game module 737. The wagering game module 737 can process communications, commands, or other information, where the processing can control application data in wagering game systems.
Furthermore, any component of the wagering game machine 706 can include hardware, firmware, and/or machine-readable media including instructions for performing the operations described herein.
The mobile wagering game machine 800 includes several input/output devices. In particular, the mobile wagering game machine 800 includes buttons 820, audio jack 808, speaker 814, display 816, biometric device 806, wireless transmission devices (e.g., wireless communication units 812 and 824), microphone 818, and card reader 822. Additionally, the mobile wagering game machine can include tilt, orientation, ambient light, or other environmental sensors.
In some embodiments, the mobile wagering game machine 800 uses the biometric device 806 for authenticating players, whereas it uses the display 816 and the speaker 814 for presenting wagering game results and other information (e.g., credits, progressive jackpots, etc.). The mobile wagering game machine 800 can also present audio through the audio jack 808 or through a wireless link such as Bluetooth.
In some embodiments, the wireless communication unit 812 can include infrared wireless communications technology for receiving wagering game content while docked in a wager gaming station. The wireless communication unit 824 can include an 802.11G transceiver for connecting to and exchanging information with wireless access points. The wireless communication unit 824 can include a Bluetooth transceiver for exchanging information with other Bluetooth enabled devices.
In some embodiments, the mobile wagering game machine 800 is constructed from damage resistant materials, such as polymer plastics. Portions of the mobile wagering game machine 800 can be constructed from non-porous plastics which exhibit antimicrobial qualities. Also, the mobile wagering game machine 800 can be liquid resistant for easy cleaning and sanitization.
In some embodiments, the mobile wagering game machine 800 can also include an input/output (“I/O”) port 830 for connecting directly to another device, such as to a peripheral device, a secondary mobile machine, etc. Furthermore, any component of the mobile wagering game machine 800 can include hardware, firmware, and/or machine-readable media including instructions for performing the operations described herein.
The described embodiments may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic device(s)) to perform a process according to embodiments(s), whether presently described or not, because every conceivable variation is not enumerated herein. A machine readable medium includes any mechanism for storing or transmitting information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium (e.g., floppy diskette); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions. In addition, embodiments may be embodied in an electrical, optical, acoustical or other form of propagated signal (e.g., carrier waves, infrared signals, digital signals, etc.), or wireline, wireless, or other communications medium.
This detailed description refers to specific examples in the drawings and illustrations. These examples are described in sufficient detail to enable those skilled in the art to practice the inventive subject matter. These examples also serve to illustrate how the inventive subject matter can be applied to various purposes or embodiments. Other embodiments are included within the inventive subject matter as logical, mechanical, electrical, and other changes can be made to the example embodiments described herein. Features of various embodiments described herein, however essential to the example embodiments in which they are incorporated, do not limit the inventive subject matter as a whole, and any reference to the invention, its elements, operation, and application are not limiting as a whole, but serve only to define these example embodiments. This detailed description does not, therefore, limit embodiments, which are defined only by the appended claims. Each of the embodiments described herein are contemplated as falling within the inventive subject matter, which is set forth in the following claims.
This application is a divisional application of, and claims priority benefit of, U.S. application Ser. No. 13/123,454 which is a National Stage Application of PCT/US09/60078 filed 9 Oct. 2009, which claims priority benefit of Provisional U.S. Application No. 61/104,121 filed 9 Oct. 2008. The Ser. No. 13/123,454 Application, the PCT/US09/60078 Application, and the 61/104,121 Application are incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
7025674 | Adams et al. | Apr 2006 | B2 |
20050085300 | Johnson | Apr 2005 | A1 |
20060148549 | Walker et al. | Jul 2006 | A1 |
20080146342 | Harvey et al. | Jun 2008 | A1 |
20110250955 | Adiraju et al. | Oct 2011 | A1 |
Number | Date | Country |
---|---|---|
WO-2007120444 | Oct 2007 | WO |
WO-2010042775 | Apr 2010 | WO |
Entry |
---|
“AU Application No. 2009302257 Examination Report”, Apr. 17, 2013 , 4 pages. |
“PCT Application No. PCT/US09/60078 International Preliminary Report on Patentability”, Sep. 20, 2010 , 4 pages. |
“PCT Application No. PCT/US09/60078 International Search Report”, Nov. 30, 2009 , 11 pages. |
“U.S. Appl. No. 13/123,454 Office Action”, Aug. 23, 2013 , 9 pages. |
Number | Date | Country | |
---|---|---|---|
20140206441 A1 | Jul 2014 | US |
Number | Date | Country | |
---|---|---|---|
61104121 | Oct 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13123454 | US | |
Child | 14220980 | US |