This invention relates to networks of gaming machines, such as slot machines and video poker machines. More particularly, the present invention relates to methods and devices for managing and provisioning gaming machines and other devices in a gaming network.
The gaming machines under the control of a particular entity may be globally distributed in many different types of establishments. Casinos, convenience stores, supermarkets, bars and boats are a few examples of establishments where gaming machines may be placed.
Typically, utilizing a master gaming controller, a gaming machine controls various combinations of devices that allow a player to play a game on the gaming machine and also encourage game play on the gaming machine. For example, a game played on a gaming machine usually requires a player to input money or indicia of credit into the gaming machine, indicate a wager amount, and initiate a game play. These steps require the gaming machine to control input devices, such as bill validators and coin acceptors, to accept money into the gaming machine and recognize user inputs from devices, including key pads and button pads, to determine the wager amount and initiate game play. After game play has been initiated, the gaming machine determines a game outcome, presents the game outcome to the player and may dispense an award of some type depending on the outcome of the game.
The operations described above may be carried out on the gaming machine when the gaming machine is operating as a “stand alone” unit or linked in a network of some type to a group of gaming machines. As technology in the gaming industry progresses, more and more gaming services are being provided to gaming machines via communication networks that link groups of gaming machines to a networked computer (which may be a local or a remote computer) that provides one or more gaming services. As an example, gaming services that may be provided by a networked computer to a gaming machine via a communication network of some type include player tracking, accounting, cashless award ticketing, lottery, progressive games and bonus games.
Typically, network gaming services enhance the game playing capabilities of the gaming machine or provide some operational advantage in regards to maintaining the gaming machine. Thus, network gaming services provided to groups of gaming machines linked over a dedicated communication network of some type have become very popular in the gaming industry. In general, the dedicated communication network is not accessible to the public. To justify the costs associated with the infrastructure needed to provide network gaming services on a dedicated communication network, a certain critical number of gaming machines linked in a network of some type must utilize the service. Thus, many of the network gaming services are only provided at larger gaming establishments where a large number of gaming machines are deployed.
One example wherein a group of gaming machines are linked using a dedicated network to provide a network gaming service is a progressive game network. The progressive game services enabled by the progressive game network increase the game playing capabilities of a particular gaming machine by enabling a larger jackpot than would be possible if the gaming machine was operating in a “stand alone” mode. The potential size of the jackpot increases as the number gaming machines connected in the progressive network is increased. The size of the jackpot tends to increase game play on gaming machines offering a progressive jackpot, which justifies the costs associated with installing and maintaining the dedicated progressive game network.
However, there are many aspects of managing and provisioning gaming machines that are still performed manually. For example, in a time consuming process, installing a new game has previously involved manually exchanging an EPROM (e.g. a read-only memory) containing the game on the gaming machine. The software is manually loaded because the gaming software is very highly regulated and in most gaming jurisdictions only approved gaming software may be installed on a gaming machine. Further, the gaming software is manually loaded for security reasons, in order to prevent the source code from being obtained by individuals who might use the source code to try to find ways of cheating the gaming machine. Other attributes of gaming machines, such as the denomination, pay tables, etc., are also manually configured for similar reasons.
It would be desirable to provide methods and devices that overcome at least some of these drawbacks of the prior art.
Some implementations of the invention provide methods and devices for managing gaming establishments and for provisioning and configuring gaming machines. Some such implementations allow a user to configure one or more gaming machines via an easy-to-use GUI displayed on a wired or a wireless device, such as a laptop, a PDA, a work station or other host device. Gaming machine configurations that can be changed according to some implementations of the invention include game denominations, games to enable, disable or download, game payback percentage, deal speed, volume level and enabling or disabling tournament play.
Some preferred implementations of the invention provide an event scheduler that allows a user either to cause events to occur immediately or schedule certain events to occur at a future time. Some implementations of the invention allow a user to generate activity reports highlighting configuration changes, user logins, game set additions, and/or game downloading. Novel methods and devices for authentication are also provided herein. Some implementations of the invention allow a user to manage easily game downloads to a local server and/or to each gaming machine.
Some aspects of the invention provide a method of controlling a gaming network that includes these steps: selecting a first configuration change for a first gaming machine in a gaming network; indicating a first time for attempting to implement the first configuration change; and implementing the first configuration change by automatically sending a signal to the first gaming machine via the gaming network. The signal may be automatically sent to the first gaming machine at the first time when a configuration change condition is satisfied. The implementing step may involve automatically sending a signal from a server to the first gaming machine.
The method may include the step of determining, before the implementing step, whether game play credits of the first gaming machine are zero. The selecting step and/or the indicating step may be performed by interacting with a graphical user interface on a device other than the first gaming machine, the device being configured for communication with the gaming network. The device may be a hand-held device. The device may be a host device configured for wired or wireless communication with the gaming network.
The method may also include these steps: indicating 2nd through Nth times for implementing each of 2nd through Nth configuration changes; and implementing the 2nd through Nth configuration changes by automatically sending 2nd through Nth signals to the first gaming machine via the gaming network.
The selecting step may involve selecting a first configuration change for each of 1st through Nth gaming machines in a gaming network. The implementing step may comprise implementing the first configuration change by automatically sending 1st through Nth signals to the 1st through Nth gaming machines via the gaming network. The 1st through Nth gaming machines may comprise a bank of gaming machines.
The method may also include indicating a default configuration for the first gaming machine and applying the default configuration to the first gaming machine after the first configuration change when a predetermined condition is satisfied. The predetermined condition may be a passage of time. A first time duration may be indicated for the first configuration change. The first configuration change may be, for example, a denomination change, a paytable change, a display change, a game change and/or a tournament configuration.
The selecting step may involve selecting game software to be downloaded to the first gaming machine. If so, the implementing step may involve causing the selected game software to be downloaded to the first gaming machine.
The implementing step may be delayed if one or more configuration change conditions are (or are not) met, e.g., when it is determined that game play credits of the first gaming machine are not zero.
Some aspects of the invention provide computer software embodied in a machine-readable medium. The computer software includes instructions for controlling at least one device in a gaming network to perform the following steps: present a depiction of gaming machines in a gaming network; indicate a present configuration of a gaming machine; receive gaming machine configuration commands from a user; and implement the gaming machine configuration commands by sending configuration signals to one or more gaming machines in the gaming network.
The software may include instructions for controlling a display to indicate the present configuration of the gaming machine in response to user input. The software may also include instructions for controlling a display to indicate whether a gaming machine is assigned to a bank, to indicate whether a gaming machine is currently in communication with the gaming network, to indicate whether a gaming machine is currently downloading data from the gaming network and/or to indicate a gaming establishment in which a gaming machine is located.
The software may cause configuration signals to be sent to gaming machines in more than one gaming establishment. The software may include instructions for controlling a device to provide a graphical user interface for receiving gaming machine configuration commands from a user. In some implementations of the invention, the software includes instructions for controlling a device to send configuration signals to a plurality of gaming machines in the gaming network in response to a single set of gaming machine configuration commands received from a user.
The software may also include instructions for authorizing, at least in part, software for executing a game of chance to be downloaded to at least one gaming machine in the gaming network.
Some embodiments of the invention provide an apparatus for controlling a gaming network. The apparatus includes these elements: a display device; an input device; at least one network interface configured for communication with a gaming network; and a logic device. The logic device is configured to control the display device to present a depiction of gaming machines in a gaming establishment and to indicate a present configuration of each gaming machine presented. The logic device is further configured to receive first gaming machine configuration commands from a user via the input device and to implement the commands by sending configuration signals via the network interface to one or more gaming machines in the gaming network.
The logic device may be further configured to control the display device to indicate whether a gaming machine is associated with a bank, to indicate whether a gaming machine is currently in communication with the gaming network, and/or to indicate whether a gaming machine is associated with a bank. The display device may incorporate the input device.
The invention also includes methods for providing automated tournaments for games of chance. One such method includes these steps: causing a plurality of devices in a gaming network to indicate tournament notification information regarding a tournament to be conducted; receiving a request to enroll in the tournament transmitted from each of a first plurality of gaming machines in the gaming network; determining whether to accept each of the requests; sending a tournament confirmation message to each of a second plurality of gaming machines in the gaming network that transmitted a request that was accepted; configuring each of the second plurality of gaming machines for participation in the tournament; conducting the tournament; awarding at least one tournament prize; and reporting tournament outcome data. The determining, sending, configuring, conducting and awarding steps may be performed automatically.
The method may also include the step of automatically deducting a tournament fee from a player account. The step of reporting tournament outcome data can include reporting by each of the second plurality of gaming machines to a server that is conducting the tournament. The step of reporting tournament outcome data may also involve broadcasting (e.g., by a server that is conducting the tournament), information regarding a tournament winner.
The conducting step may involve conducting a time-shifted tournament wherein players may participate in the tournament at different times, conducting a game count tournament involving a predetermined number of games that players may complete within different time periods and/or providing players an option of accelerating at least some aspects of a game.
The method may also include the steps of making a plurality of game options available for player selection and of scaling a player's tournament outcome according to at least one of the game options. The game options may be, for example, a denomination option and/or a multiple-play option.
The method may involve these steps: creating a progressive pool for the tournament; and adding a percentage of each player's wager to the progressive pool. The awarding step may involve awarding the progressive pool to at least one winning player.
Alternatively, or additionally, the awarding step may awarding a plurality of prizes, at least some of the plurality of prizes being based on a criterion other than overall ranking. For example, one of the plurality of prizes may be awarded for obtaining a greatest number of a first type of predetermined poker hand (e.g., the most Royal Flushes) and another of the plurality of prizes is awarded for obtaining a greatest number of a second type of predetermined poker hand (e.g., the most instances of a Full House). In some such implementations, more than one of the plurality of prizes can be awarded to an individual player.
Players of the tournament may be provided with an option of skipping at least a portion of a game presentation and/or of having at least one gaming decision automatically made for the player, wherein the game would otherwise require the player to make the gaming decision.
Some implementations of the invention control a gaming network in response to observed revenue obtained by gaming machines during different times and/or with different configurations. One such method includes these steps: determining a first rate of revenue obtained by a first gaming machine of a plurality of gaming machines in the gaming network during a first time when the first gaming machine has a first configuration; transmitting second configuration information to the first gaming machine via the gaming network; configuring the first gaming machine with a second configuration according to the second configuration information; and determining a second rate of revenue obtained by the first gaming machine during a second time when the first gaming machine has the second configuration.
The step of determining the first rate of revenue may involve receiving first revenue data from the first gaming machine via the gaming network, the first revenue data pertaining to the first time. In some implementations of the invention, when it is determined that the first rate of revenue is higher than the second rate of revenue, the method further comprises these steps: transmitting third configuration information to the first gaming machine via the gaming network; and configuring the first gaming machine with a third configuration according to the second configuration information. The second configuration information may be, for example, denomination information, display information, pay table percentage and/or game software information.
Another such method involves these steps: receiving revenue data from a first gaming machine of a plurality of gaming machines in the gaming network; determining a first rate of revenue obtained by the first gaming machine during a first time when the first gaming machine has a first configuration; determining a second rate of revenue obtained by the first gaming machine during a second time when the first gaming machine has a second configuration; determining an Nth rate of revenue obtained by the first gaming machine during an Nth time when the first gaming machine has an Nth configuration; and ascertaining a first optimum configuration for the first gaming machine during a first time of day. The first optimum configuration corresponds with a highest rate of revenue determined for the first gaming machine during the first time of day.
The method may also involve scheduling the first gaming machine to be automatically configured with the first optimum configuration during the first time of day. If the first gaming machine is part of a bank of gaming machines, the method may involve scheduling each gaming machine of the bank of gaming machines to be automatically configured with the first optimum configuration during the first time of day.
The method may include these steps: ascertaining a second optimum configuration for the first gaming machine during a second time of day, the second optimum configuration corresponding with a highest rate of revenue determined for the first gaming machine during the second time of day; and scheduling the first gaming machine to be automatically configured with the second optimum configuration during the second time of day.
The method may include the following steps: receiving revenue data from second through Mth gaming machines in the gaming network; determining a first average rate of revenue obtained by the second through Mth gaming machines during the first time when the second through Mth gaming machines have the first configuration; determining a second average rate of revenue obtained by the second through Mth gaming machines during a second time when the second through Mth gaming machines have a second configuration; determining an Nth average rate of revenue obtained by the second through Mth gaming machines during an Nth time when the second through Mth gaming machines have an Nth configuration; and ascertaining a first overall optimum configuration for the second through Mth gaming machines during a predetermined time of day. The first overall optimum configuration corresponds with a highest average rate of revenue determined for the second through Mth gaming machines during the predetermined time of day. The first optimum configuration may include a denomination, a display type, a pay table percentage and/or a game type.
The present invention provides other hardware (such as network devices and components of network devices) that is configured to perform the methods of the invention, as well as software to control devices to perform these methods.
These and other features of the present invention will be presented in more detail in the following detailed description of the invention and the associated figures.
Various implementations of the invention provide for high speed delivery of game content, game configurations, direct player marketing, and/or server-determined game outcome. Many aspects of the present invention are implemented, at least in part, by one or more servers. Accordingly, some embodiments of the present invention may be referenced herein as a server-based gaming system or simply as “SBG” or the like. A brief overview of some aspects of the present invention is set forth in the following paragraphs. A more detailed discussion follows.
Overview
Although the terms may have different meanings as used by some of skill in the art, the terms “configuring,” “configuration” and the like will be used broadly herein. For example, “configuring” a gaming machine includes not only providing parameters such as a denomination value and/or display parameters, but will also include controlling what games are enabled for play, including but not limited to controlling game downloads to the gaming machine.
Preferred implementations of the invention include a Configuration Manager that provides customers with the ability to manage a gaming network. For example, some implementations of the invention allow a user to manage one or more gaming establishment floors by configuring game machines via the gaming network. Instructions, for example made via an easy-to-use graphical user interface (“GUI”), may be made from various types of networked devices to control one or more servers to control game denominations, which games to enable or disable, game payback percentage, the deal speed of certain games, to enable (or disable) a gaming machine for participation in a tournament, volume level, control gaming machine displays, etc.
Some implementations of the Configuration Manager allow the user to browse connected game machines and select a parameter to be changed. The user then “submits” the change to the game machine and the status of the change will immediately be displayed. At least some configuration changes will preferably take place only when certain conditions are met, e.g., when a player is not actively playing a game. All configuration changes are preferably recorded to a log file for audit and reporting purposes.
Some implementations of the invention allow a user to generate reports of daily activity that indicate configuration changes, user logins, game set additions, game downloading and/or other information. The reports are preferably both viewable and printable, e.g. at a management console, over a network, etc. Preferred implementations of the invention allow reports to be generated on demand or according to a predetermined schedule. For example, reports may be run automatically at specified times during the day and on specified dates or days of the week. Depending on the amount of data that a customer may desire and/or need to manage, some implementations of server based gaming networks include one or more middleware servers (or similar devices) for data filtering, aggregation and/or event reporting.
Some aspects of the invention involve an Event Scheduler that allows an operator to schedule certain events to occur immediately and/or at a future time. The events can be one time only or can also be recurring at times and/or intervals that the operator selects. Game downloads, game configuration changes and reports are examples of events that can be scheduled. For example, if an operator would like data (including but not limited to gaming software) to be downloaded to a certain bank of machines at a certain time of day, the operator could schedule this event. In some implementations, the Event Scheduler provides a GUI that allows the operator to view, edit, or delete events that are shown in a queue of events to be processed.
Event Scheduler can provide a user (e.g., a manager of an individual gaming establishment or a group of gaming establishments) a great deal of flexibility and control. Scheduled tasks can happen instantly, on demand or on a recurring basis. For example, an operator could decide that every day at 2 a.m. the paytable percentage of designated gaming machines will change from 95% to 90%. Alternatively, the operator could change the denomination of a gaming machine, of every machine in a bank, etc., at predetermined times or on demand.
An operator could, for example, cause a gaming machine to be configured to play different games at predetermined times. Alternatively, the operator could keep the underlying game the same, but change some aspects of its configuration, e.g., the display, denomination, etc. An operator can change the look of a casino floor on a periodic basis, e.g., by changing the background color or some other aspect of gaming machine and/or signage displays on a periodic basis. An operator could change the appearance of the game to correspond with some aspect of the change, e.g., to correspond with a denomination of the game (nickel is blue, quarter is red, etc.)
Some implementations of the Event Scheduler and/or the Configuration Manager allow an operator to change whether a gaming machine is participating in a tournament. An operator could also change whether a gaming machine, or a bank of gaming machines is participating in progressive pool. The gaming establishment's signage can also be changed to correspond with scheduled changes. For example, a gaming establishment's signage could be changed to indicate whether a gaming machine or a bank of gaming machines is participating in a tournament and/or a progressive pool. Both of these aspects could be scheduled by the Event Scheduler to happen at a predetermined time.
The Event Scheduler and other features of the invention allow an operator to change the overall look of a casino floor on a scheduled basis or on demand. For example, instead of spending time moving gaming machines around, an operator could just use a host device and make (or schedule) the changes automatically. As noted elsewhere, such a host device could be a wired or a wireless device, such as a laptop, a PC, a PDA, or even a cellular telephone. Wireless devices allow such changes to be made while the operator is on the casino floor.
According to some implementations of the invention, a Download Manager allows, e.g., for the addition of new game binaries into a local game server repository. Some implementations of the Download Manager allow a user to manage game downloads to gaming machines in a gaming network. Other implementations of the invention allow for game downloading to be initiated by players of the gaming machines. Relevant methods and devices are described in U.S. patent application Ser No. 11/078,966 by Nguyen et al., entitled “SECURED VIRTUAL NETWORK IN A GAMING ENVIRONMENT” (Attorney Docket No. IGT1P034X2/P-277 CIP2) and filed on Mar. 10, 2005, in U.S. patent application Ser. No. 10/757,609 by Nelson et al., entitled “METHODS AND APPARATUS FOR GAMING DATA DOWNLOADING” (Attorney Docket No. IGT1P213/P-657) and filed on Jan. 14, 2004, and in U.S. patent application Ser. No. 10/938,293 by Benbrahim et al., entitled “METHODS AND APPARATUS FOR DATA COMMUNICATION IN A GAMING SYSTEM” (Attorney Docket No. IGT1P199/P-909) and filed on Sep. 10, 2004, all of which are hereby incorporated by reference in their entirety and for all purposes.
Still other implementations of the invention involve at least some aspects of peer-to-peer file transfers between gaming machines. Some relevant methods and devices are discussed in U.S. patent application No. ______ (Attorney Docket No. IGT1P185/P-1017) by Nguyen et al., filed Sep. 12, 2005 and entitled “DISTRIBUTED GAME SERVICES” and in U.S. patent application Ser. No. 11/173,442 (Attorney Docket No. IGT1P153/P-991) by Kinsley et al., filed Jul. 1, 2005 and entitled “METHODS AND DEVICES FOR DOWNLOADING GAMES OF CHANCE,” both of which are hereby incorporated by reference in their entirety and for all purposes.
The present invention may be practiced with various types of verification, authentication, privacy and security measures. Preferred implementations of the invention are practiced with the implementations that are described in the License Manager application, which has been incorporated herein by reference in its entirety and for all purposes. Relevant method and devices are described in U.S. patent application Ser. No. 10/050,747 by Oberberger, entitled “GAMING SYSTEM LICENSE MANAGEMENT” (Attorney Docket No. 29757/P-721) and filed on Jan. 16, 2002, which is hereby incorporated by reference in its entirety and for all purposes. Some relevant techniques are also described in U.S. patent application Ser. No. 11/078,966, which has been incorporated by reference herein. According to some aspects of the invention, an Authentication Manager provides the operator with the ability to perform an “on demand” authentication or signature check of software to be run on a gaming machine. This provides the operator the ability to ensure, among other things, that all gaming machines connected to the SBG system are running authentic up-to-date approved software. The Authentication Manager can also be configured to validate all gaming machines based on a schedule set by the operator.
Preferred implementations of the invention provide secure communications between networked devices, including but not limited to the ability to identify requesters on a network reliably. The License Manager application describes some such methods. Alternatively, or additionally, every gaming machine or other device that will be in communication with a gaming establishment (and/or any device that will be in communication with a central system on behalf of a gaming establishment) may be “fingerprinted” according to special characteristics of the machine, and/or according to techniques such as those discussed in patent application Ser. No. 11/078,966, referenced above. Communications from untrusted sources will preferably cause special handling. For example, some implementations provide some level of security notification if an untrusted source cannot be authenticated in response to a challenge.
When, for example, a local server of a gaming establishment requests a game download from a central game repository, a fingerprint of the local server may be obtained and compared with that of a stored fingerprint for that device. If the fingerprint does not match, the central game repository will not download the requested game.
Some such fingerprinting techniques involve the exploitation of small deviations in processor clock skews. Some relevant techniques are discussed, for example, in Kohno, Tadayoshi, “Remote Physical Device Fingerprinting” (IEEE Symposium on Security and Privacy [May 2005]), which is hereby incorporated by reference for all purposes.
Such clock skew deviations are approximately constant over time for each device, but the clock skew of a particular machine will be different from that of another machine. Most Transmission Control Protocol (“TCP”) stacks implement the TCP timestamps option of Request for Comment (“RFC”) 1323. According to this option, each party in a TCP flow includes information about its perception of time in each outgoing packet. Information contained in the TCP headers can be used to estimate a device's clock skew, thereby allowing the device to be identified. Such identification techniques do not require any modification to the fingerprinted devices. Moreover, such techniques can report consistent measurements when the measurer is thousands of miles, multiple hops, and tens of milliseconds away from the fingerprinted device, even when the fingerprinted device is connected to the Internet from different locations and via different access technologies.
Some such techniques provide reliable fingerprinting even when the fingerprinted device is behind a NAT or firewall and whether the device's system time is maintained via NTP or SNTP. These techniques can also determine whether two devices on the Internet, possibly shifted in time or IP addresses, are actually the same physical device.
Exemplary System Architecture
One example of a network topology for implementing some aspects of the present invention is shown in
Gaming establishment 105 includes 16 gaming machines 2, each of which is part of a bank 110 of gaming machines 2. It will be appreciated that many gaming establishments include hundreds or even thousands of gaming machines 2, not all of which are included in a bank 110. However, the present invention may be implemented in gaming establishments having any number of gaming machines.
Various alternative network topologies can be used to implement different aspects of the invention and/or to accommodate varying numbers of networked devices. For example, gaming establishments with very large numbers of gaming machines 2 may require multiple instances of some network devices (e.g., of main network device 125, which combines switching and routing functionality in this example) and/or the inclusion of other network devices not shown in
Each bank 110 has a corresponding bank switch 115, which may be a conventional bank switch. Each bank switch is connected to SBG server 130 via main network device 125, which combines switching and routing functionality in this example. Although various floor communication protocols may be used, some preferred implementations use IGT's open, Ethernet-based SuperSAS® protocol, which IGT makes available for downloading without charge. However, other protocols such as Best of Breed (“BOB”) may be used to implement various aspects of SBG. IGT has also developed a gaming-industry-specific transport layer called CASH that rides on top of TCP/IP and offers additional functionality and security.
SBG server 130, License Manager 131, Arbiter 133 and main network device 125 are disposed within computer room 120 of gaming establishment 105. License Manager 131 may be implemented, at least in part, via a server or a similar device. The operation of License Manager 131 is described in detail in U.S. patent application Ser. No.______ (Attorney Docket No. IGT1P253), entitled “METHODS AND DEVICES FOR AUTHENTICATION AND LICENSING IN A GAMING NETWORK” by Kinsley et al., which has been incorporated herein by reference.
SBG server 130 can be configured to implement, at least in part, various aspects of the present invention. Some preferred embodiments of SBG server 130 include (or are at least in communication with) clustered CPUs, redundant storage devices, including backup storage devices, switches, etc. Such storage devices may include a redundant array of inexpensive disks (“RAID”), back-up hard drives and/or tape drives, etc. Preferably, a Radius and a DHCP server are also configured for communication with the gaming network. Some implementations of the invention provide one or more of these servers in the form of blade servers.
In some implementations of the invention, many of these devices (including but not limited to License Manager 131 and main network device 125) are mounted in a single rack with SBG server 130. Accordingly, many or all such devices will sometimes be referenced in the aggregate as an “SBG server.” However, in alternative implementations, one or more of these devices is in communication with SBG server 130 but located elsewhere. For example, some of the devices could be mounted in separate racks within computer room 120 or located elsewhere on the network. For example, it can be advantageous to store large volumes of data elsewhere via a storage area network (“SAN”).
In some embodiments, these components are SBG server 130 preferably has an uninterruptible power supply (“UPS”). The UPS may be, for example, a rack-mounted UPS module.
Computer room 120 may include one or more operator consoles or other host devices that are configured for communication with SBG server 130. Such host devices may be provided with software, hardware and/or firmware for implementing various aspects of the invention; many of these aspects involve controlling SBG server 130. However, such host devices need not be located within computer room 120. Wired host device 160 (which is a laptop computer in this example) and wireless host device (which is a PDA in this example) may be located elsewhere in gaming establishment 105 or at a remote location.
Arbiter 133 may be implemented, for example, via software that is running on a server or another networked device. Arbiter 133 serves as an intermediary between different devices on the network. Some implementations of Arbiter 133 are described in U.S. patent application Ser. No. 10/948,387, entitled “METHODS AND APPARATUS FOR NEGOTIATING COMMUNICATIONS WITHIN A GAMING NETWORK” and filed Sep. 23, 2004 (the “Arbiter Application”) which is incorporated herein by reference and for all purposes. In some preferred implementations, Arbiter 133 is a repository for the configuration information required for communication between devices on the gaming network (and, in some implementations, devices outside the gaming network). Although Arbiter 133 can be implemented in various ways, one exemplary implementation is discussed in the following paragraphs.
Wireless devices are particularly useful for implementing some aspects of the invention. Such wireless devices could include, but are not limited to, laptops, PDAs or even cellular telephones. Referring once again to
If a host device is located in a remote location, security methods and devices (such as firewalls, authentication and/or encryption) should be deployed in order to prevent the unauthorized access of the gaming network. Similarly, any other connection between gaming network 105 and the outside world should only be made with trusted devices via a secure link, e.g., via a virtual private network (“VPN”) tunnel. For example, the illustrated connection between SBG 130, gateway 150 and central system 163 (here, IGT.com) that may be used for game downloads, etc., is advantageously made via a VPN tunnel.
An Internet-based VPN uses the open, distributed infrastructure of the Internet to transmit data between sites. A VPN may emulate a private IP network over public or shared infrastructures. A VPN that supports only IP traffic is called an IP-VPN. VPNs provide advantages to both the service provider and its customers. For its customers, a VPN can extend the IP capabilities of a corporate site to remote offices and/or users with intranet, extranet, and dial-up services. This connectivity may be achieved at a lower cost to the gaming entity with savings in capital equipment, operations, and services. Details of VPN methods that may be used with the present invention are described in the reference, “Virtual Private Networks-Technologies and Solutions,” by R. Yueh and T. Strayer, Addison-Wesley, 2001, ISBN#0-201-70209-6, which is incorporated herein by reference and for all purposes.
There are many ways in which IP VPN services may be implemented, such as, for example, Virtual Leased Lines, Virtual Private Routed Networks, Virtual Private Dial Networks, Virtual Private LAN Segments, etc. Additionally VPNs may be implemented using a variety of protocols, such as, for example, IP Security (IPSec) Protocol, Layer 2 Tunneling Protocol, Multiprotocol Label Switching (MPLS) Protocol, etc. Details of these protocols, including RFC reports, may be found from the VPN Consortium, an industry trade group (http://www.vpnc.com, VPNC, Santa Cruz, Calif.).
For security purposes, any information transmitted to or from a gaming establishment over a public network may be encrypted. In one implementation, the information may be symmetrically encrypted using a symmetric encryption key, where the symmetric encryption key is asymmetrically encrypted using a private key. The public key may be obtained from a remote public key server. The encryption algorithm may reside in processor logic stored on the gaming machine. When a remote server receives a message containing the encrypted data, the symmetric encryption key is decrypted with a private key residing on the remote server and the symmetrically encrypted information sent from the gaming machine is decrypted using the symmetric encryption key. A different symmetric encryption key is used for each transaction where the key is randomly generated. Symmetric encryption and decryption is preferably applied to most information because symmetric encryption algorithms tend to be 100-10,000 faster than asymmetric encryption algorithms.
As mentioned elsewhere herein, U.S. patent application Ser. No.______ (Attorney Docket No. IGT1P253), entitled “METHODS AND DEVICES FOR AUTHENTICATION AND LICENSING IN A GAMING NETWORK” by Kinsley et al. and filed concurrently with this application, describes novel methods and devices for authentication, game downloading and game license management. This application, including these methods and devices, has been incorporated herein by reference.
Providing a secure connection between the local devices of the SBG system and IGT's central system allows for the deployment of many advantageous features. For example, a customer (e.g., an employee of a gaming establishment) can log onto an account of central system 163 (in this example, IGT.com) to obtain the account information such as the customer's current and prior account status.
Moreover, such a secure connection may be used by the central system 163 to collect information regarding a customer's system. Such information includes, but is not limited to, error logs for use in diagnostics and troubleshooting. Some implementations of the invention allow a central system to collect other types of information, e.g., information about the usage of certain types of gaming software, revenue information regarding certain types of games and/or gaming machines, etc. Such information includes, but is not limited to, information regarding the revenue attributable to particular games at specific times of day, days of the week, etc. Such information may be obtained, at least in part, by reference to an accounting system of the gaming network(s), as described elsewhere herein.
Automatic updates of a customer's SBG server may also be enabled. For example, central system 163 may notify a local SBG server regarding new products and/or product updates. For example, central system 163 may notify a local SBG server regarding updates of new gaming software, gaming software updates, peripheral updates, the status of current gaming software licenses, etc.
After the local SBG server receives this information, it can identify relevant products of interest. For example, the local SBG server may identify gaming software that is currently in use (or at least licensed) by the relevant gaming entity and send a notification to one or more host devices, e.g., via email. If an update or a new software product is desired, it can be downloaded from the central system. Some relevant downloading methods are described elsewhere herein and in applications that have been incorporated herein by reference, e.g., in U.S. patent application Ser. No. 11/078,966. Similarly, a customer may choose to renew a gaming software license via a secure connection with central system 163 in response to such a notification.
Secure communication links allow notifications to be sent securely from a local SBG server to host devices outside of a gaming establishment. For example, a local SBG server can be configured to transmit automatically generated email reports, text messages, etc., based on predetermined events that will sometimes be referred to herein as “triggers.” Such triggers can include, but are not limited to, the condition of a gaming machine door being open, cash box full, machine not responding, verification failure, etc.
In addition, providing secure connections between different gaming establishments can enable alternative implementations of the invention. For example, a number of gaming establishments, each with a relatively small number of gaming machines, may be owned and/or controlled by the same entity. hi such situations, having secure communications between gaming establishments makes it possible for a gaming entity to use a single SBG server as an interface between central system 163 and the gaming establishments.
Exemplary SBG Management Software
In this section, various exemplary types of software for implementing an SBG system will be described. Those of skill in the art will realize that the various software implementations described herein are merely examples and that the present invention encompasses many other such implementations and methods.
The next few figures and related description relate to an exemplary software package that will sometimes be referred to herein as the “Management Suite,” the “Master Control” or the “Director.” The Management Suite provides users with a convenient way to manage all gaming machines (sometimes referred to herein as “Player Terminals” (“PTs”)) connected to the SBG server using a user-friendly program interface.
One of the SBG server's functions is to communicate information to and from each PT once a connection has been established. In some preferred implementations, such a connection will be established through an Arbiter, e.g., as discussed above with reference to
Certain update messages and information may be sent between the SBG server and the SBG Management Suite, thereby allowing users to interact with and view current and planned activity between the server and all connected PTs. The SBG Management Suite allows users to configure PTs, view configurations for all PTs connected to the server, schedule and plan new PT events and tasks, and view transaction and error log activity related to the SBG system and PTs. In addition, the SBG Management Suite facilitates PT verification, enables downloads of game images to PTs, allows a user to generate various useful reports, identifies and activates all workstations connected to the server, and facilitates management of SBG server user profiles.
FIGS. 2 et seq. provide examples of GUIs that may be used to implement some aspects of the present invention. Such GUIs may be displayed, for example, on a management console of computer room 120 or on another host device (such as device 160 or device 170) that is located in gaming establishment 105 or in a remote location. These GUIs would be generated by software running on one of these host devices and would be used, e.g., to receive instructions from (and to provide information to) a user. Those of skill in the art will realize that these exemplary GUIs and the related functionality are merely examples and that the present invention encompasses many other such implementations and methods.
Here, GUI 205 is used to control some aspects of the machine management of an SBG system. GUI 205 is enabled by selecting menu option 210 and by selecting the “Show All Machines” option of tool bar 215. Here, only a small number of gaming machines are networked, so the “Show All Machines” option is convenient. As shown, this implementation of the invention also allows the user to “Filter By Bank” of gaming machines; this option is particularly convenient when a gaming entity controls a large number of networked gaming machines. In preferred implementations, tool bar 215 (or another aspect of GUI 205) allows a user to display attributes of gaming machines that are not associated with a bank.
Here, bank name window 220 has the bank designations expanded to indicate all gaming machines associated with each bank. A user may interact with bank name window 220 to obtain information and/or perform various tasks. In this example, a user may enable a pop-up menu by “right clicking” on bank name window 220 by use of a mouse or similar device. The menu allows a user to add or remove a bank, view/update bank properties, add or remove a gaming machine from a bank or schedule a task for a bank.
The Scheduler, which is described in more detail elsewhere herein, may be used (among other things) to schedule configuration changes for an entire bank of gaming machines in a single operation. In this example, one way of invoking the Scheduler is to select a “Schedule Task for Bank” option from the aforementioned pop-up window, which will in turn invoke an “Add Task” window (also shown and described herein as a “SchedulerConfigTaskForm”).
In some implementations, a gaming machine may be assigned to a bank by selecting the gaming machine from window 225 and dragging it to the assigned bank name of window 220. Similarly, a gaming machine may be removed from a bank in this example by selecting the gaming machine from window 220 (e.g., by “right clicking” on it) and selecting “Remove Machine from Bank.”
Window 225 displays attributes of the gaming machines in this particular network. Here, the asset number (sometimes referred to as a “house number”), serial number, vendor and theme are displayed in window 225. The house number may be assigned by the customer/gaming establishment. The serial number is assigned by the vendor and is the same as the serial number indicated on the exterior of the cabinet. The vendor is the name of the owner of the gaming software loaded on the gaming machine (here, IGT). The “theme” indicates a type of game for which the gaming machine is configured to play, some aspects of which will be displayed on a gaming machine. For example, at a particular time a gaming machine may be configured with a “Cleopatra®” theme, a “Lobstermania®” theme, a “Wheel of Fortune®” theme, etc.
However, any convenient gaming machine attributes may be displayed. In some implementations, for example, a gaming machine may be configured to play more than one game according to a player's selection and will display attributes of more than one game theme (e.g., in different parts of a display screen and/or by alternating the display to indicate familiar aspects of different games at different times).
Moreover, in alternative implementations, the gaming machines may be displayed in different ways, e.g. as icons. Some such implementations arrange such icons to illustrate the arrangement of a gaming floor, e.g., by aggregating gaming machine icons into banks.
Window 225 also allows a user to select a particular gaming machine (e.g., by “clicking” on it by use of a mouse or similar device) and to display details of its configuration in “Machine Details” window 230. Here, details of the game theme and gaming machine configuration may be displayed by interacting with buttons displayed in window 225. Many other details of gaming machine configuration can be displayed in addition to those illustrated in
In this exemplary implementation, if a user decides to alter the configuration of one or more gaming machines, the user may do so by clicking on the “Scheduler” button 235. In this example, a user also has the alternative of opening a menu by right clicking on any one of various parts of GUI 205, thereby revealing a pop-up menu that allows a user to perform various tasks, including but not limited to the scheduling of configuration tasks and customizing the display.
The Scheduler can be implemented in various ways. One exemplary GUI 305 is shown in
Window 320 indicates a bank, if any, to which the gaming machine is assigned. Here, window 320 is blank because gaming machine 11777 does not belong to a bank. In some implementations, window 310 would be blank if a task is scheduled for an entire bank of gaming machines indicated in window 320.
The Scheduler allows a task to be performed “immediately,” by checking box 350, or to be performed at a time and date indicated in windows 330 and 340. Here, the task is scheduled for Aug. 12, 2005 at 11:20 a.m. In some implementations, window 330 and/or window 340 is expandable for easy entry of a date and/or a time. For example, button 331 may be activated to display a calendar from which a date may be selected.
Preferably, the indicated time for performing a task (including “immediately”) is actually a time for attempting to perform a task, or at least for determining whether it is an appropriate time for performing the task. Whether or not the task is performed at the indicated time will preferably depend on whether one or more conditions are satisfied, e.g., whether a gaming machine is online at the indicated time, whether the game play credits of the gaming machine are zero, etc. The latter condition is important (at least in some instances) so that a player's game play is not interrupted by a scheduled configuration change.
Recurrence window 360 allows configuration changes to be scheduled on a recurring basis, if a user so desires. In this example, an occurrence interval can be specified in window 365 (e.g., daily, weekly, monthly, etc.); here, no such recurrence is desired, so no interval is indicated in window 365. In addition, the duration of an indicated occurrence can be specified in window 370. In this example, the duration is expressed in units of months, but any convenient duration can be used. In some preferred embodiments, an indicated configuration change reverts to a default configuration value at the end of an indicated duration.
Here, window 372 and its subparts allow a user to specify the scheduled configuration change. In this example, the user is scheduling a change in the paytable percentage at $0.01. In this example, the desired paytable percentage may be selected from a variety of paytable percentages indicated in window 375. After the selection is made, the user can click on button 380 to schedule the task.
Alternatively, scheduled tasks may be determined by activating button 450 and launching the Report Viewer, one implementation of which is illustrated in
Preferably, reports may be filtered according to various criteria specified in filtering window 517, including but not limited to date range. In some implementations, different filtering criteria are available, depending on the type of information to be filtered for the report. Referring now to
Referring now to
A user with a sufficiently high level of authority, e.g., a user having an “Administrative” role in this example, can perform various user management tasks by interacting with GUI 905. For example, an Administrative user could activate or de-activate another user or cause a logged on user to be logged off.
One example of assigning user roles according to the invention will now be described with reference to
These roles may be created (and authorities for these roles may be defined) by an Administrative user, e.g., as described now with reference to
In some implementations of the invention, an operator is prompted to enter a password after clicking on button Games 1007. If an operator logs in successfully, the operator may then select games for downloading to gaming machines by clicking on New button 1037. This action will cause GUI 1045 of
In this example, the operator is browsing game files that have already been downloaded to the local SBG server 130. In some implementations, the process for obtaining games from central system 163 follows a similar flow. For implementations of the invention that include methods discussed in the License Manager application, the game software downloaded to the local SBG server 130 would include information required to make a challenge to License Manager 131 and to evaluate the authenticity of a challenge response received from License Manager 131.
In some implementations, the application will fill in number field 1025, Executable field 1048 and Type field 1030 corresponding with a selected game and will permit (or require) the operator to fill in Name field 1032. (See
Clicking Apply button 1020 (see
After game files have been selected, these files may be downloaded to gaming machines using a GUI such as GUI 1050 of
Referring now to GUI 1050 of
The game download options of GUI 1060 are presented after an operator clicks on button 1052 of GUI 1050. An operator may scroll through the list of games available to download by using Up button 1062, Down button 1064, Page Up button 1068 or Page Down button 1070. To start the download process, an operator may select a game from the list and then select Download button 1072.
Selecting Download Log button 1012 of GUI 1005 (see
In this exemplary implementation, selecting Server Log button 1015 of GUI 1005 (see
Referring now to
To authenticate the game's validation, an operator can click Authenticate button 1220. If the game is a valid executable image, a GUI such as GUI 1225 of
Tournament Play
The following examples are merely exemplary and do not in any manner limit the possible types of tournaments enabled by Server Based Gaming.
“Standard” Tournaments
The SBG server can access the database of machines, games available on those machines, denominations at which the games may be played and, in some implementations, information regarding the players currently using the gaming machines. The last feature may be implemented, for example, via interaction between the SBG server and a player tracking server. All of these factors can be used to determine eligibility:
In some implementations, the tournament may be limited to specific machines, so that the tournament may be located in one area of the casino (to build excitement and competition). In some implementations, the tournament may be limited to specific games, to ensure that all players have equal chances of winning. The tournament may also be limited to a specific denomination, to ensure that all players'winnings are fairly compared.
In some implementations, the operator, working at the server or at a workstation with access to the server, can identify the games, denominations and machines that are available for tournament play. In some such implementations, the operator keys in (or otherwise specifies) a tournament start time and either end time or duration. The operator can also specify a tournament prize (or prizes for 1st, 2nd, 3rd, etc). The server can communicate tournament eligibility requirements and tournament start and end events to the gaming machines. These messages may be part of a standardized protocol (e.g. SuperSAS or Best of Breed).
One example will now be described with reference to the flow chart of
In step 1310, some of the gaming machines that received the notification (and possibly others operated by players who found out about the tournament in other ways) send a request to enroll in the tournament. The request may be sent, for example, in response to a player's activation of a button, etc., of the gaming machine in response to the message. The request may, for example, include: a header identifying the message as a response to a tournament advertisement; a tournament ID; a game ID; a gaming machine ID; denomination; and a Player ID and/or account information. The last information is necessary, for example, if money (e.g., for a tournament fee) is to be deducted from a player account. The request may also indicate credit meter information if the tournament fee is to be deducted from the gaming machine's credit meter.
In some implementations, the server and/or an administrator may apply predetermined criteria to evaluate whether a gaming machine and/or a player is eligible to enroll in the tournament. (Step 1315.) For example, if a player's credit meter indicates that the player has insufficient credits for enrolling in the tournament, the player will not be allowed to enroll.
If a player is allowed to enroll in the tournament, the server will send a tournament enrollment confirmation message in this implementation. (Step 1320.) The confirmation message may, for example, include the following information: a header; the tournament ID; the game ID; the gaming machine ID; denomination; amount to deduct from the credit meter (if applicable); and the tournament start time. In some implementations, the confirmation message will include time synchronization data. At this time, the server may deduct the tournament fee from a player account. If the player is not allowed to enroll in the tournament, the server will send a denial message (step 1325).
In step 1330, it is determined whether the SBG server has received another enrollment request from a gaming machine, e.g., within a predetermined time period. If so, the request is evaluated as before. Shortly before the tournament begins, the server sends a notification message that the tournament is about to start (step 1335) and configures the gaming machines for tournament play (step 1340). The notification message may, for example, have the following format: header; tournament ID; game ID; machine ID; denomination; Date/Time stamp; and tournament duration or end time.
The gaming machines report tournament outcome data (step 1345), such as: Header; Tournament ID; Game ID; Machine ID; Denomination; Wager; outcome data (e.g. 3 LGM scatters paid 200 credits); Pay amount; and Credit meter reading, after payout. In some implementations, step 1345 may have several sub-parts. For example, the server may request an overall tournament outcome from the gaming machines via a message with the following format: Header; Tournament ID; Game ID; and Machine ID (if sent to one specific machine and not broadcast to all machines). In some such implementations, the gaming machines respond with outcome data such as the following: Header; Tournament ID; Game ID; Machine ID; Denomination; Final Credit Meter (or difference between initial and final credit meter); and counts of specific outcomes required by the tournament (e.g., 12 royal flushes achieved during tournament).
In step 1350, the server broadcasts messages relating to the tournament winner(s), e.g.,: Header; Tournament ID; Game ID; Winner ID(s); and Amount(s) or Prize(s) Won. In step 1355, the prizes are awarded. The server may, for example, credit the winner's account or send an EFT message to the gaming machine to add the amount won to the machine's credit meter.
In some implementations, the tournament winner may be decided upon one or more of the following criteria: (1) Highest payout percentage achieved; (2) Highest final credit meter; (3) Most money won (regardless of games played or money wagered); and/or (4) Highest count of a specific win category (e.g. Royal Flush).
Time-Shifted Tournaments
Alternative implementations of the invention provide a tournament where not all players have to begin at the same time—they just play for the same duration. The tournament enrollment period may be, e.g., for 1 week. During that time, any player can enroll, play for one hour and have his performance recorded. In this tournament, a single player can enroll more than once. The server must track a database of players and performances to determine winners after the tournament is over.
Game Count Tournaments
Most tournaments are played for a specific duration, so the faster a player plays, the more he can win. Alternative implementations of the invention provide a tournament that consists of a specific number of games that do not need to be completed within a short time frame. In this way, some players may have a greater opportunity to enjoy the games, rather than, e.g., pounding frantically at a “spin” button.
Time-Scaled Tournaments
Some implementations of the invention provide a tournament wherein one player may play for a longer duration than another. For example, one player may play for 5 hours and another for one hour only. The server can take the best single hour of play out of the first player's performance, or can scale the player's results (e.g., by dividing winnings or outcomes by 5).
Accelerated Bonuses
During some tournaments of the present invention, the game may offer the player the option of accelerating the bonus game, such as by skipping intro videos or automatically making random picks for the player.
Wager-Relative Tournaments
In some implementations, a server makes a range of denominations available for tournament play. The winnings are scaled to the player's wager before being compared to other players. The server could also scale the outcomes to the wager. For example, a player playing 10-play poker for $0.10 each may play against a player playing single-play poker for $1.00, but since his chances of achieving a royal flush is 10×greater, his final royal flush count is divided by 10 before being compared to the other player's royal flush count.
Progressive Tournaments
Here, the server may instantiate and track a progressive pool for the lifetime of the tournament. The pool may be, for example, seeded with casino funds, then funded by a percentage of each tournament player's wager. The progressive can then be awarded to the winning player or divided among multiple winning players. As an alternative to dividing the pool, the server could manage multiple pools, one for each winner to be awarded later.
Performance-Based Tournaments
In these implementations, a tournament may award multiple prizes that are not based solely one 1st, 2nd, 3rd places. For example, a tournament may award one prize for the player with the most royal flushes, another prize to the player with the most straight flushes and another to the player with the most instances of “4 of a kind.” One player could potentially win more than one prize.
Gaming Machine
Turning next to
Many different types of games, including mechanical slot games, video slot games, video poker, video black jack, video pachinko and lottery, may be provided with gaming machines of this invention. In particular, the gaming machine 2 may be operable to provide a play of many different instances of games of chance. The instances may be differentiated according to themes, sounds, graphics, type of game (e.g., slot game vs. card game), denomination, number of paylines, maximum jackpot, progressive or non-progressive, bonus games, etc. The gaming machine 2 may be operable to allow a player to select a game of chance to play from a plurality of instances available on the gaming machine. For example, the gaming machine may provide a menu with a list of the instances of games that are available for play on the gaming machine and a player may be able to select from the list a first instance of a game of chance that they wish to play.
The various instances of games available for play on the gaming machine 2 may be stored as game software on a mass storage device in the gaming machine or may be generated on a remote gaming device but then displayed on the gaming machine. The gaming machine 2 may executed game software, such as but not limited to video streaming software that allows the game to be displayed on the gaming machine. When an instance is stored on the gaming machine 2, it may be loaded from the mass storage device into a RAM for execution. In some cases, after a selection of an instance, the game software that allows the selected instance to be generated may be downloaded from a remote gaming device, such as another gaming machine.
The gaming machine 2 includes a top box 6, which sits on top of the main cabinet 4. The top box 6 houses a number of devices, which may be used to add features to a game being played on the gaming machine 2, including speakers 10, 12, 14, a ticket printer 18 which prints bar-coded tickets 20, a key pad 22 for entering player tracking information, a florescent display 16 for displaying player tracking information, a card reader 24 for entering a magnetic striped card containing player tracking information, and a video display screen 42. The ticket printer 18 may be used to print tickets for a cashless ticketing system. Further, the top box 6 may house different or additional devices than shown in the
Understand that gaming machine 2 is but one example from a wide range of gaming machine designs on which the present invention may be implemented. For example, not all suitable gaming machines have top boxes or player tracking features. Further, some gaming machines have only a single game display—mechanical or video, while others are designed for bar tables and have displays that face upwards. As another example, a game may be generated in on a host computer and may be displayed on a remote terminal or a remote gaming device. The remote gaming device may be connected to the host computer via a network of some type such as a local area network, a wide area network, an intranet or the Internet. The remote gaming device may be a portable gaming device such as but not limited to a cell phone, a personal digital assistant, and a wireless game player. Images rendered from 3-D gaming environments may be displayed on portable gaming devices that are used to play a game of chance. Further a gaming machine or server may include gaming logic for commanding a remote gaming device to render an image from a virtual camera in a 3-D gaming environments stored on the remote gaming device and to display the rendered image on a display located on the remote gaming device. Thus, those of skill in the art will understand that the present invention, as described below, can be deployed on most any gaming machine now available or hereafter developed.
Some preferred gaming machines of the present assignee are implemented with special features and/or additional circuitry that differentiates them from general-purpose computers (e.g., desktop PC's and laptops). Gaming machines are highly regulated to ensure fairness and, in many cases, gaming machines are operable to dispense monetary awards of multiple millions of dollars. Therefore, to satisfy security and regulatory requirements in a gaming environment, hardware and software architectures may be implemented in gaming machines that differ significantly from those of general-purpose computers. A description of gaming machines relative to general-purpose computing machines and some examples of the additional (or different) components and features found in gaming machines are described below.
At first glance, one might think that adapting PC technologies to the gaming industry would be a simple proposition because both PCs and gaming machines employ microprocessors that control a variety of devices. However, because of such reasons as 1) the regulatory requirements that are placed upon gaming machines, 2) the harsh environment in which gaming machines operate, 3) security requirements and 4) fault tolerance requirements, adapting PC technologies to a gaming machine can be quite difficult. Further, techniques and methods for solving a problem in the PC industry, such as device compatibility and connectivity issues, might not be adequate in the gaming environment. For instance, a fault or a weakness tolerated in a PC, such as security holes in software or frequent crashes, may not be tolerated in a gaming machine because in a gaming machine these faults can lead to a direct loss of funds from the gaming machine, such as stolen cash or loss of revenue when the gaming machine is not operating properly.
For the purposes of illustration, a few differences between PC systems and gaming systems will be described. A first difference between gaming machines and common PC based computers systems is that gaming machines are designed to be state-based systems. In a state-based system, the system stores and maintains its current state in a non-volatile memory, such that, in the event of a power failure or other malfunction the gaming machine will return to its current state when the power is restored. For instance, if a player was shown an award for a game of chance and, before the award could be provided to the player the power failed, the gaming machine, upon the restoration of power, would return to the state where the award is indicated. As anyone who has used a PC, knows, PCs are not state machines and a majority of data is usually lost when a malfunction occurs. This requirement affects the software and hardware design on a gaming machine.
A second important difference between gaming machines and common PC based computer systems is that for regulation purposes, the software on the gaming machine used to generate the game of chance and operate the gaming machine has been designed to be static and monolithic to prevent cheating by the operator of gaming machine. For instance, one solution that has been employed in the gaming industry to prevent cheating and satisfy regulatory requirements has been to manufacture a gaming machine that can use a proprietary processor running instructions to generate the game of chance from an EPROM or other form of non-volatile memory. The coding instructions on the EPROM are static (non-changeable) and must be approved by a gaming regulators in a particular jurisdiction and installed in the presence of a person representing the gaming jurisdiction. Any changes to any part of the software required to generate the game of chance, such as adding a new device driver used by the master gaming controller to operate a device during generation of the game of chance can require a new EPROM to be burnt, approved by the gaming jurisdiction and reinstalled on the gaming machine in the presence of a gaming regulator. Regardless of whether the EPROM solution is used, to gain approval in most gaming jurisdictions, a gaming machine must demonstrate sufficient safeguards that prevent an operator or player of a gaming machine from manipulating hardware and software in a manner that gives them an unfair and some cases an illegal advantage. The gaming machine should have a means to determine if the code it will execute is valid. If the code is not valid, the gaming machine must have a means to prevent the code from being executed. The code validation requirements in the gaming industry affect both hardware and software designs on gaming machines.
A third important difference between gaming machines and common PC based computer systems is the number and kinds of peripheral devices used on a gaming machine are not as great as on PC based computer systems. Traditionally, in the gaming industry, gaming machines have been relatively simple in the sense that the number of peripheral devices and the number of functions the gaming machine has been limited. Further, in operation, the functionality of gaming machines were relatively constant once the gaming machine was deployed, i.e., new peripherals devices and new gaming software were infrequently added to the gaming machine. This differs from a PC where users will go out and buy different combinations of devices and software from different manufacturers and connect them to a PC to suit their needs depending on a desired application. Therefore, the types of devices connected to a PC may vary greatly from user to user depending in their individual requirements and may vary significantly over time.
Although the variety of devices available for a PC may be greater than on a gaming machine, gaming machines still have unique device requirements that differ from a PC, such as device security requirements not usually addressed by PCs. For instance, monetary devices, such as coin dispensers, bill validators and ticket printers and computing devices that are used to govern the input and output of cash to a gaming machine have security requirements that are not typically addressed in PCs. Therefore, many PC techniques and methods developed to facilitate device connectivity and device compatibility do not address the emphasis placed on security in the gaming industry.
To address some of the issues described above, a number of hardware/software components and architectures are utilized in gaming machines that are not typically found in general purpose computing devices, such as PCs. These hardware/software components and architectures, as described below in more detail, include but are not limited to watchdog timers, voltage monitoring systems, state-based software architecture and supporting hardware, specialized communication interfaces, security monitoring and trusted memory.
A watchdog timer is normally used in IGT gaming machines to provide a software failure detection mechanism. In a normally operating system, the operating software periodically accesses control registers in the watchdog timer subsystem to “re-trigger” the watchdog. Should the operating software fail to access the control registers within a preset timeframe, the watchdog timer will timeout and generate a system reset. Typical watchdog timer circuits contain a loadable timeout counter register to allow the operating software to set the timeout interval within a certain range of time. A differentiating feature of the some preferred circuits is that the operating software cannot completely disable the function of the watchdog timer. In other words, the watchdog timer always functions from the time power is applied to the board.
IGT gaming computer platforms preferably use several power supply voltages to operate portions of the computer circuitry. These can be generated in a central power supply or locally on the computer board. If any of these voltages falls out of the tolerance limits of the circuitry they power, unpredictable operation of the computer may result. Though most modem general-purpose computers include voltage monitoring circuitry, these types of circuits only report voltage status to the operating software. Out of tolerance voltages can cause software malfunction, creating a potential uncontrolled condition in the gaming computer. Gaming machines of the present assignee typically have power supplies with tighter voltage margins than that required by the operating circuitry. In addition, the voltage monitoring circuitry implemented in IGT gaming computers typically has two thresholds of control. The first threshold generates a software event that can be detected by the operating software and an error condition generated. This threshold is triggered when a power supply voltage falls out of the tolerance range of the power supply, but is still within the operating range of the circuitry. The second threshold is set when a power supply voltage falls out of the operating tolerance of the circuitry. In this case, the circuitry generates a reset, halting operation of the computer.
The standard method of operation for IGT slot machine game software is to use a state machine. Different functions of the game (bet, play, result, points in the graphical presentation, etc.) may be defined as a state. When a game moves from one state to another, critical data regarding the game software is stored in a custom non-volatile memory subsystem. This is critical to ensure the player's wager and credits are preserved and to minimize potential disputes in the event of a malfunction on the gaming machine.
In general, the gaming machine does not advance from a first state to a second state until critical information that allows the first state to be reconstructed is stored. This feature allows the game to recover operation to the current state of play in the event of a malfunction, loss of power, etc that occurred just prior to the malfunction. After the state of the gaming machine is restored during the play of a game of chance, game play may resume and the game may be completed in a manner that is no different than if the malfunction had not occurred. Typically, battery backed RAM devices are used to preserve this critical data although other types of non-volatile memory devices may be employed. These memory devices are not used in typical general-purpose computers.
As described in the preceding paragraph, when a malfunction occurs during a game of chance, the gaming machine may be restored to a state in the game of chance just prior to when the malfunction occurred. The restored state may include metering information and graphical information that was displayed on the gaming machine in the state prior to the malfunction. For example, when the malfunction occurs during the play of a card game after the cards have been dealt, the gaming machine may be restored with the cards that were previously displayed as part of the card game. As another example, a bonus game may be triggered during the play of a game of chance here a player is required to make a number of selections on a video display screen. When a malfunction has occurred after the player has made one or more selections, the gaming machine may be restored to a state that shows the graphical presentation at the just prior to the malfunction including an indication of selections that have already been made by the player. In general, the gaming machine may be restored to any state in a plurality of states that occur in the game of chance that occurs while the game of chance is played or to states that occur between the play of a game of chance.
Game history information regarding previous games played such as an amount wagered, the outcome of the game and so forth may also be stored in a non-volatile memory device. The information stored in the non-volatile memory may be detailed enough to reconstruct a portion of the graphical presentation that was previously presented on the gaming machine and the state of the gaming machine (e.g., credits) at the time the game of chance was played. The game history information may be utilized in the event of a dispute. For example, a player may decide that in a previous game of chance that they did not receive credit for an award that they believed they won. The game history information may be used to reconstruct the state of the gaming machine prior, during and/or after the disputed game to demonstrate whether the player was correct or not in their assertion.
Another feature of gaming machines, such as IGT gaming computers, is that they often contain unique interfaces, including serial interfaces, to connect to specific subsystems internal and external to the slot machine. The serial devices may have electrical interface requirements that differ from the “standard” EIA 232 serial interfaces provided by general-purpose computers. These interfaces may include EIA 485, EIA 422, Fiber Optic Serial, optically coupled serial interfaces, current loop style serial interfaces, etc. In addition, to conserve serial interfaces internally in the slot machine, serial devices may be connected in a shared, daisy-chain fashion where multiple peripheral devices are connected to a single serial channel.
The serial interfaces may be used to transmit information using communication protocols that are unique to the gaming industry. For example, IGT's Netplex is a proprietary communication protocol used for serial communication between gaming devices. As another example, SAS is a communication protocol used to transmit information, such as metering information, from a gaming machine to a remote device. Often SAS is used in conjunction with a player tracking system.
IGT gaming machines may alternatively be treated as peripheral devices to a casino communication controller and connected in a shared daisy chain fashion to a single serial interface. In both cases, the peripheral devices are preferably assigned device addresses. If so, the serial controller circuitry must implement a method to generate or detect unique device addresses. General-purpose computer serial ports are not able to do this.
Security monitoring circuits detect intrusion into an IGT gaming machine by monitoring security switches attached to access doors in the slot machine cabinet. Preferably, access violations result in suspension of game play and can trigger additional security operations to preserve the current state of game play. These circuits also function when power is off by use of a battery backup. In power-off operation, these circuits continue to monitor the access doors of the slot machine. When power is restored, the gaming machine can determine whether any security violations occurred while power was off, e.g., via software for reading status registers. This can trigger event log entries and further data authentication operations by the slot machine software.
Trusted memory devices are preferably included in an IGT gaming machine computer to ensure the authenticity of the software that may be stored on less secure memory subsystems, such as mass storage devices. Trusted memory devices and controlling circuitry are typically designed to not allow modification of the code and data stored in the memory device while the memory device is installed in the slot machine. The code and data stored in these devices may include authentication algorithms, random number generators, authentication keys, operating system kernels, etc. The purpose of these trusted memory devices is to provide gaming regulatory authorities a root trusted authority within the computing environment of the slot machine that can be tracked and verified as original. This may be accomplished via removal of the trusted memory device from the slot machine computer and verification of the secure memory device contents is a separate third party verification device. Once the trusted memory device is verified as authentic, and based on the approval of the verification algorithms contained in the trusted device, the gaming machine is allowed to verify the authenticity of additional code and data that may be located in the gaming computer assembly, such as code and data stored on hard disk drives. A few details related to trusted memory devices that may be used in the present invention are described in U.S. Pat. No. 6,685,567 from U.S. patent application Ser. No. 09/925,098, filed Aug. 8, 2001 and titled “Process Verification,” which is incorporated herein in its entirety and for all purposes.
Mass storage devices used in a general purpose computer typically allow code and data to be read from and written to the mass storage device. In a gaming machine environment, modification of the gaming code stored on a mass storage device is strictly controlled and would only be allowed under specific maintenance type events with electronic and physical enablers required. Though this level of security could be provided by software, IGT gaming computers that include mass storage devices preferably include hardware level mass storage data protection circuitry that operates at the circuit level to monitor attempts to modify data on the mass storage device and will generate both software and hardware error triggers should a data modification be attempted without the proper electronic and physical enablers being present.
Returning to the example of
During the course of a game, a player may be required to make a number of decisions, which affect the outcome of the game. For example, a player may vary his or her wager on a particular game, select a prize for a particular game selected from a prize server, or make game decisions which affect the outcome of a particular game. The player may make these choices using the player-input switches 32, the video display screen 34 or using some other device which enables a player to input information into the gaming machine. In some embodiments, the player may be able to access various game services such as concierge services and entertainment content services using the video display screen 34 and one more input devices.
During certain game events, the gaming machine 2 may display visual and auditory effects that can be perceived by the player. These effects add to the excitement of a game, which makes a player more likely to continue playing.
Auditory effects include various sounds that are projected by the speakers 10, 12, 14.
Visual effects include flashing lights, strobing lights or other patterns displayed from lights on the gaming machine 2 or from lights behind the belly glass 40. After the player has completed a game, the player may receive game tokens from the coin tray 38 or the ticket 20 from the printer 18, which may be used for further games or to redeem a prize. Further, the player may receive a ticket 20 for food, merchandise, or games from the printer 18.
A gaming network that may be used to implement additional methods performed in accordance with embodiments of the invention is depicted in
Gaming establishment 1501 could be any sort of gaming establishment, such as a casino, a card room, an airport, a store, etc. In this example, gaming network 1577 includes more than one gaming establishment, all of which are networked to game server 1522.
Here, gaming machine 1502, and the other gaming machines 1530, 1532, 1534, and 1536, include a main cabinet 1506 and a top box 1504. The main cabinet 1506 houses the main gaming elements and can also house peripheral systems, such as those that utilize dedicated gaming networks. The top box 1504 may also be used to house these peripheral systems.
The master gaming controller 1508 controls the game play on the gaming machine 1502 according to instructions and/or game data from game server 1522 or stored within gaming machine 1502 and receives or sends data to various input/output devices 1511 on the gaming machine 1502. In one embodiment, master gaming controller 1508 includes processor(s) and other apparatus of the gaming machines described above in
A particular gaming entity may desire to provide network gaming services that provide some operational advantage. Thus, dedicated networks may connect gaming machines to host servers that track the performance of gaming machines under the control of the entity, such as for accounting management, electronic find transfers (EFTs), cashless ticketing, such as EZPay™, marketing management, and data tracking, such as player tracking. Therefore, master gaming controller 1508 may also communicate with EFT system 1512, EZPay™ system 1516 (a proprietary cashless ticketing system of the present assignee), and player tracking system 1520. The systems of the gaming machine 1502 communicate the data onto the network 1522 via a communication board 1518.
It will be appreciated by those of skill in the art that embodiments of the present invention could be implemented on a network with more or fewer elements than are depicted in
Moreover, DCU 1524 and translator 1525 are not required for all gaming establishments 1501. However, due to the sensitive nature of much of the information on a gaming network (e.g., electronic fund transfers and player tracking data) the manufacturer of a host system usually employs a particular networking language having proprietary protocols. For instance, 10-20 different companies produce player tracking host systems where each host system may use different protocols. These proprietary protocols are usually considered highly confidential and not released publicly.
Further, in the gaming industry, gaming machines are made by many different manufacturers. The communication protocols on the gaming machine are typically hard-wired into the gaming machine and each gaming machine manufacturer may utilize a different proprietary communication protocol. A gaming machine manufacturer may also produce host systems, in which case their gaming machine are compatible with their own host systems. However, in a heterogeneous gaming environment, gaming machines from different manufacturers, each with its own communication protocol, may be connected to host systems from other manufacturers, each with another communication protocol. Therefore, communication compatibility issues regarding the protocols used by the gaming machines in the system and protocols used by the host systems must be considered.
A network device that links a gaming establishment with another gaming establishment and/or a central system will sometimes be referred to herein as a “site controller.” Here, site controller 1542 provides this function for gaming establishment 1501. Site controller 1542 is connected to a central system and/or other gaming establishments via one or more networks, which may be public or private networks. Among other things, site controller 1542 communicates with game server 1522 to obtain game data, such as ball drop data, bingo card data, etc.
In the present illustration, gaming machines 1502, 1530, 1532, 1534 and 1536 are connected to a dedicated gaming network 1522. In general, the DCU 1524 functions as an intermediary between the different gaming machines on the network 1522 and the site controller 1542. In general, the DCU 1524 receives data transmitted from the gaming machines and sends the data to the site controller 1542 over a transmission path 1526. In some instances, when the hardware interface used by the gaming machine is not compatible with site controller 1542, a translator 1525 may be used to convert serial data from the DCU 1524 to a format accepted by site controller 1542. The translator may provide this conversion service to a plurality of DCUs.
Further, in some dedicated gaming networks, the DCU 1524 can receive data transmitted from site controller 1542 for communication to the gaming machines on the gaming network. The received data may be, for example, communicated synchronously to the gaming machines on the gaming network.
Here, CVT 1552 provides cashless and cashout gaming services to the gaming machines in gaming establishment 1501. Broadly speaking, CVT 1552 authorizes and validates cashless gaming machine instruments (also referred to herein as “tickets” or “vouchers”), including but not limited to tickets for causing a gaming machine to display a game result and cash-out tickets. Moreover, CVT 1552 authorizes the exchange of a cashout ticket for cash. These processes will be described in detail below. In one example, when a player attempts to redeem a cash-out ticket for cash at cashout kiosk 1544, cash out kiosk 1544 reads validation data from the cashout ticket and transmits the validation data to CVT 1552 for validation. The tickets may be printed by gaming machines, by cashout kiosk 1544, by a stand-alone printer, by CVT 1552, etc. Some gaming establishments will not have a cashout kiosk 1544. Instead, a cashout ticket could be redeemed for cash by a cashier (e.g. of a convenience store), by a gaming machine or by a specially configured CVT.
Some methods of the invention combine information that can be obtained from game network accounting systems with features described above. By combining, for example, information regarding scheduled gaming machine configurations and information regarding the amount of money that a gaming machine brings in while a gaming machine has a particular configuration, gaming machine configurations may be optimized to maximize revenue. Some such methods involve determining a first rate of revenue obtained by a gaming machine in the gaming network during a first time when the gaming machine has a first configuration. The gaming machine is later automatically configured according to second configuration information supplied by the SBG server, e.g., as scheduled by the Scheduler. A second rate of revenue, obtained by the gaming machine during a second time when the gaming machine has the second configuration, is determined, and so on.
After scheduling various configurations at various times, optimum configurations for the gaming machine may be determined for various times of day. The SBG system can them provide scheduled optimal configurations for the gaming machine at the corresponding times of day. Some implementations provide for groups (e.g., banks) of gaming machines to be automatically configured according to a predetermined schedule of optimal configurations for various times of day, days of the week, times of the year, etc.
In some such implementations, an average revenue may be computed, based on revenue from many gaming machines having the same configuration at the same time of day. These average revenues could be used to determine an overall optimal value for relevant time periods.
The interfaces 1668 are typically provided as interface cards (sometimes referred to as “linecards”). Generally, interfaces 1668 control the sending and receiving of data packets over the network and sometimes support other peripherals used with the network device 1660. Among the interfaces that may be provided are FC interfaces, Ethernet interfaces, frame relay interfaces, cable interfaces, DSL interfaces, token ring interfaces, and the like. In addition, various very high-speed interfaces may be provided, such as fast Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces, FDDI interfaces, ASI interfaces, DHEI interfaces and the like.
When acting under the control of appropriate software or firmware, in some implementations of the invention CPU 1662 may be responsible for implementing specific functions associated with the functions of a desired network device. According to some embodiments, CPU 1662 accomplishes all these functions under the control of software including an operating system and any appropriate applications software.
CPU 1662 may include one or more processors 1663 such as a processor from the Motorola family of microprocessors or the MIPS family of microprocessors. In an alternative embodiment, processor 1663 is specially designed hardware for controlling the operations of network device 1660. In a specific embodiment, a memory 1661 (such as non-volatile RAM and/or ROM) also forms part of CPU 1662. However, there are many different ways in which memory could be coupled to the system. Memory block 1661 may be used for a variety of purposes such as, for example, caching and/or storing data, programming instructions, etc.
Regardless of network device's configuration, it may employ one or more memories or memory modules (such as, for example, memory block 1665) configured to store data, program instructions for the general-purpose network operations and/or other information relating to the functionality of the techniques described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example.
Because such information and program instructions may be employed to implement the systems/methods described herein, the present invention relates to machine-readable media that include program instructions, state information, etc. for performing various operations described herein. Examples of machine-readable media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). The invention may also be embodied in a carrier wave traveling over an appropriate medium such as airwaves, optical lines, electric lines, etc. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher-level code that may be executed by the computer using an interpreter.
Although the system shown in
While this invention is described in terms of preferred embodiments, there are alterations, permutations, and equivalents that fall within the scope of the invention. It should also be noted that there are many alternative ways of implementing the present invention. It is therefore intended that the invention not be limited to the preferred embodiments described herein, but instead that the invention should be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.
This application claims priority to U.S. Provisional Patent Application No. 60/704,634 entitled “SERVER BASED GAMING” and filed Aug. 1, 2005 by Wolf et al., which is incorporated herein by reference in its entirety and for all purposes. This application is related to U.S. patent application No. ______ (Attorney Docket No. IGT1P253), entitled “METHODS AND DEVICES FOR AUTHENTICATION AND LICENSING IN A GAMING NETWORK” (the “License Manager Application”) by Kinsley et al. and filed concurrently with this application, which is also incorporated herein by reference in its entirety and for all purposes.
Number | Date | Country | |
---|---|---|---|
60704634 | Aug 2005 | US |