Traditional gaming-machines (e.g., mechanical slot machines) primarily use mechanical components. More modern gaming-machines can additionally include various electronics components (e.g., processor, memory) that are typically provided for a computing system or a computer (e.g., Personal Computer). In addition, modern gaming machine can be connected to a wide variety of devices are available that can be connected to a modern gaming-machine (e.g., lights, ticket printers, card readers, speakers, bill validators, ticket readers, coin acceptors, display panels, key pads, coin hoppers, button pads). These devices can be built into the gaming-machine or its components (e.g., a top box which usually sits on top of the gaming-machine).
Typically, utilizing a master gaming controller, a gaming-machine can control 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 remote computer that provides one or more gaming services. As an example, gaming services that may be provided by a remote 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.
A progressive game network offering progressive game services is one example where a group of gaming-machines are linked together using a dedicated network to provide a network gaming service. 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.
Within the gaming industry, a particular gaming entity may desire to provide network gaming services and track the performance of all the gaming-machines under the control of the entity. 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.
Within the casinos, the gaming-machines may be connected to one or more database servers via one or more dedicated networks. The database servers are usually located in the backroom of the casino. For instance, in casino 110, gaming-machines 102, 104 and 106 are connected to a database server 100 via a dedicated network 108. The dedicated network 108 may be used to send accounting information and player tracking information from the gaming-machines to the database server 110. In casino 122, the gaming-machines 114, 116, 118 may send accounting information and player tracking information to a database server using the dedicated network 120. Other dedicated networks (not shown) in casinos, 110 and 112, may provide such network gaming services as bonus game play, progressive game play and cashless ticketing.
In casinos 110 and 122, the database servers 100 and 112 may store and process accounting data from the gaming-machines in communication with the database servers. For instance, an accounting report detailing the performance of individual and groups of gaming-machines may be generated from the data stored on the database servers 100 and 112. In addition, accounting data or reports may be sent to the database server 124 in the central office 142 from each casino. These reports may contain game performance data collected from a number of gaming-machines as well as hotel operations data. The data from the casinos may be sent to the central office using an expensive dedicated leased line 132 using a frame relay network.
The database server 124 may be used to generate reports summarizing the performance of all the gaming-machines within the gaming entity (e.g. casino 110, casino 122 and store 140). The reports may be accessed locally using the local access points 126 and 128 via the local network. In addition, reports may be remotely accessed using a dial in number for a limited number of users. For instance, an executive traveling on the road might view gaming-machine performance data from the remote access point 134 where the remote access point 134 may be a hotel room.
Although the network allows an operator to gather information from the gaming machines, it does not provide for configuration control of the gaming machines. Traditionally, due to security requirements, regulatory requirements and network limitations, the flow of information has been from the gaming machines to the operator but the flow of information from the operator to the gaming machines has been very limited. Furthermore, gaming operators have not remotely managed large numbers of gaming machines with wagering capabilities, such as thousands of gaming machines found in a large casino. As such, it is desired by operators to have increased control over gaming machine including remote configuration capabilities. Accordingly, methods and apparatus that allow for remote configuration control of gaming machines in a secure manner are described as follows.
Broadly speaking, the invention pertains to techniques for monitoring and controlling gaming-environments. Typically, a gaming environment can be configured for playing a number of games on a plurality of gaming-machines. In accordance with one aspect of the invention, techniques for facilitating installation of one or more games on a plurality of gaming-machines are disclosed. It will be appreciated that a gaming monitor/controller can determine whether each one of the plurality of gaming-machines in a gaming-environment are suitable for or capable of executing one or more games in accordance with one embodiment of the invention. In addition, data can be generated to determine whether a gaming-machine is suitable or capable of executing a game. This data can be displayed, for example, to assist a human operator in determining which new games or updates are more appropriate for a particular gaming-machine or group of gaming-machines in accordance with one embodiment of the invention. It will also be appreciated that diagnostic information can also be provided to, for example, assist the human operator in determining whether corrective actions can be taken in order to play a game on a particular machine or combination of machines (e.g., two gaming-machines can be combined together to run a game, or a component can be taken from another gaming-machine in order to run the game).
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.
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:
As suggested above, gaming environments have evolved to encompass a wide variety of games that can be played on various gaming-machines. In a complex gaming-environment, each gaming-machine can include numerous hardware and software components. In addition, rigorous gaming-regulations need to be met. As a result, it has become increasing more difficult and time consuming to manually monitor and control the gaming-environments. In particular, common operations, such as, manual installation of new games (or updating old games) has become increasing more difficult and time consuming as, among other things, specific knowledge of various gamine-requirements (e.g., technical, legal) and gaming-machines is required to successfully monitor and maintain a modern gaming environment.
Partly because of the complexity and sheer number of games and gaming-machines which are available today, installation and updating games can be a frustrating experience where, for example, a particular game may be installed on a gaming-machine only to later realize that the game was not suitable for the gaming machine. As such, improved techniques for monitoring and controlling gaming-environments would be useful. In particular, methods and apparatus that allow for and simplify the configuration of a large number of gaming machines in a gaming network including the downloading of new gaming software to groups of gaming machines are desirable.
Accordingly, the invention pertains to techniques for monitoring and controlling gaming-environments. Typically, a gaming environment can be configured for playing a number of games on a plurality of gaming-machines. In accordance with one aspect of the invention, techniques for facilitating installation of one or more games on a plurality of gaming-machines are disclosed. It will be appreciated that a gaming monitor/controller can determine whether gaming-machine(s) in a gaming-environment are suitable or capable of executing one or more games. In addition, data can be generated to determine whether a gaming-machine is suitable or capable of executing a game. This data can be displayed, for example, to assist a human operator in determining which new games or updates are more appropriate for a particular gaming-machine or group of gaming-machines in accordance with one embodiment of the invention. It will also be appreciated that data can be filtered and diagnostic information can be provided. Filtering and/or diagnostic information, among other things, can assist the human operator in determining whether corrective action can be taken in order to allow a particular machine or combination of machines to play a particular game (e.g., two gaming-machines can be combined together to run a game, or a component can be taken from another gaming-machine in order to run the game).
Embodiments of these aspects of the invention are discussed below with reference to
The gaming analyzer 170 may allow an operator to specify a game for particular game or a layout of games for group of networked gaming machines. It should be noted that every gaming machine may not be capable or suitable for operable to execute every type of game that is available to the operator. By way of example, a particular game may require a technical feature, for example, a minimum amount of random access memory (RAM), or a particular component (e.g., a high-resolution display), a particular operating system or available licenses for a particular game. Thus if the capabilities of a gaming-machine is not known to an operator and the gaming machines are enabled with remote configuration capability, the operator can select a game for execution on a gaming-machine that is incompatible with the gaming-machine.
It will be appreciated that the automated gaming analyzer 170 can determine whether each one of the gaming-machines (e.g., M1, M2) are suitable or capable of executing one or more games (e.g., G1, G2). Furthermore, based on this determination, the automated gaming analyzer 170 can generate data 177 that indicates whether a gaming-machine (e.g., M1, M2) is suitable or capable of playing a particular game(s) (e.g. G1, G2). Moreover, data 177 can be displayed by the automated gaming analyzer as data 178. It will be appreciated that this data (178) can assist a human operator in making informed decisions regarding, for example, installation of games (e.g., new games, updates to games). In general, data 177 can be generated and displayed to provide information regarding the capability or suitability of various gaming-machines with respect to execution of different games (e.g., new games, updates to older games, new version of a game). In addition, the automated gaming analyzer 170 can be configured to initiate the installation of games (e.g., G1, G2) on the gaming-machines (e.g., M1, M2) when it determines that a gaming-machine is capable or suitable of running a game.
In particular embodiments, the interface provided by the gaming analyzer 170 may allow an operator to perform an analysis on individual gaming machines or groups of groups of gaming machines. For instance, the analyzer may display a list of games and a layout of the gaming machines on a casino floor. After selecting a game from the list of games, the gaming analyzer 170 may display all the machines on the casino floor that are operable to execute the selected game. To select the game, the operator may click on it or simply drag a cursor over the desired game. Conversely, the operator can select a particular gaming machine and the analyzer 170 can, in response to the selection, display a number of which games that can be executed by the gaming-machine.
In addition, a human can learn additional information about each gaming machine, (e.g., type of gaming machine and its capability). The gaming analyzer 170 can be configured to allow a human to display or high-light groups of gaming machines that, for example, are of a certain type or share a common capability, (e.g., the ability to execute a particular type of game). Those skilled in the art will appreciate that gaming-analyzer 170 can provide numerous other capabilities. A such, the present invention is not limited to filtering capabilities, which are described below for illustrative purposes only.
As another example, a human operator can view all or a portion of the gaming machines of interest. For example, by drawing a box around a group of gaming-machines, the operator can focus on the gaming machines in that box. Subsequently, the gaming the analyzer 170 can be enabled to perform various operations on the selected gaming machines. For instance, when the human operator selects a game, the gaming analyzer 177 can display only the gaming-machines capable of executing that game in the selected group. The analyzer, if desired by the operator, may be operable to zoom in on these gaming machines.
To further elaborate,
Typically, the data can be generated (186) for all of the gaming-machines (e.g., upon request) and can be displayed (e.g., for a human operator). As such, a determination (188) is made as to whether to display data regarding the capability or suitability of one or more gaming-machines. Accordingly, this data can be displayed (190) to indicate that at least one gaming-machine is capable or suitable for executing the one or more games. As suggested above, this data can be used to assist, for example, a human operator or an application program with installation or downloading various games on different machines. As such, a human operator and/or application program can provide input regarding whether to initiate downloading and/or installation of the one or more games on a particular gaming-machine.
Alternatively, installation and/or downloading of one or more games on one or more gaming-machines can be initiated automatically without requiring external input (e.g., from a human operator or application program). In other words, based on the determination (184) of whether a gaming-machine is suitable for or capable of executing a particular game, downloading and/or installation of the game can be initiated without requiring external input. In any case, if it is determined (192) to initiate downloading and/or installation of at least one game, downloading and/or installation of the game(s) is initiated (194) and the installation method 180 ends. However, it is determined (192) not to install a game, the installation method 180 ends without initiating the downloading or installation of any games. The installation method 180 also ends after installation of one or more games have been initiated (194).
In other embodiments, after a gaming machine or group of gaming machines have been identified that are not suitable to execute a game or other software component. The gaming analyzer 170 may be configured to provide suggestions in regards to remedial actions. For instance, the gaming analyzer 170 may indicate that a target gaming machine may be able to operate with a subset of capabilities afforded by a particular game if it is configured in a certain manner. The gaming analyzer 170 may display the subset of capabilities that are available and the configuration changes necessary to achieve the subset of capabilities.
In one embodiment, the gaming analyzer 170 is operable to display a simulation of a gaming machine and/or game with a full set of capabilities as compared to the subset of capabilities. For instance, if to execute a game, certain features have to be disabled to allow it to operate on a particular gaming device, such as high-resolution graphics, then the gaming analyzer 170 may be operable to display to the operator an example of the game with the high resolution graphics and a game without the high resolution graphics. In another example, if a gaming machine does not include a particular peripheral device associated with a selected game, such as a spinning wheel or spinning globe but can be configured to operate the peripheral device, the gaming analyzer 170 can display a simulation or an actual video clip of a gaming machine operating with peripheral device and a gaming machine operating without the peripheral device to allow the operator to assess a loss in functionality. These comparisons may be made side by side on the display screen coupled to the gaming analyzer 170.
In another embodiment, when a gaming machine is not suitable for a particular game, the gaming analyzer 170 is operable to suggest a different game that is suitable for the gaming machine that shares some features, such as a common theme or game play aspects, with the unsuitable game. The gaming analyzer 170 can, for example, display the unsuitable game and one or more recommended games in a side by side manner on display screen with the features in common highlighted.
In general, the gaming analyzer 170 is operable to allow a user to compare two or more games on a display screen selected by the user. Additionally, the gaming analyzer 170 may include a search capability that allows an operator to search for games with features in common. The search results may be displayed using text, graphics, simulations or combinations thereof.
For instance, the operator may be able to search for games that 1) share a common theme, 2) are suitable for a particular type of gaming machine, 3) use a particular color theme, 4) use a particular denomination, etc. For each search, the gaming analyzer 170 may display simulations of all the games meeting the searched for criteria.
In yet another embodiment, when a game or other piece of software is not suitable for a particular gaming device, the analyzer may suggest upgrades to the gaming device that would make it suitable. The upgrades may include but are not limited to software upgrades, license upgrades, hardware upgrades and combination thereof. The gaming analyzer 170 may include cost/benefit models that allow it to estimate a cost for an upgrade and predict the benefits of an upgrade. As an example, if an upgrade to make a gaming device suitable to play a particular game required a new display, the gaming analyzer 170 may be operable to predict how long it would take to order the display, how much it would cost, suggest that the display could be taken from another gaming device (cannibalize a first gaming device to make a second gaming device operable), predict the installation time, order the display, schedule an installation time or generate an installation request for a maintenance department.
In still another embodiment, the gaming analyzer 170 is operable to receive a layout for a group of gaming machine and indicate any changes necessary to achieve the desired layout. For instance, after the operator has input a desired game layout including games to be played on each gaming machine, the gaming analyzer 170 can suggest upgrading a portion of the machines in some manner and/or moving a portion of the gaming machines from one location to another location to achieve the desired layout. The gaming analyzer 170 may be operable to display various layout scenarios that approximate a desired layout to some degree but involve fewer upgrades or movements of gaming machines. Again, the gaming analyzer 170 may include cost/benefit models that allow a user to estimate the costs and benefits associated with changing the layout of a group of gaming machines.
The present invention is not limited to remote configuration of games on the gaming machine. It may be applied to any device coupled to a gaming machine or any gaming device coupled to the network associated with the gaming analyzer 170. For instance, the gaming analyzer 170 may be used for remote configuration of firmware/software on a peripheral device coupled to a gaming machine, such as a player tracking unit, bill validator, coin hopper, printer, display. As another example, the gaming analyzer 170 may be operable to configure software for devices such as casino kiosks, cashier terminals, pit terminals and hand-held devices carried by a casino employee. In yet another embodiment, the gaming analyzer can be used to configure gaming devices at table games or stand-alone signs.
After data has been collected in the storage 206, the analyzer 202 can start analyzing the data in order to determine whether a gaming-machine is capable or suitable for playing a particular game. Generally, this determination requires determining whether a particular gaming-machine (e.g., M2) meets or exceeds the gaming-requirements of a particular game (G1). Based on the analysis performed by the analyzer 202, the report generator 204 can generate data that indicates whether a particular gaming-machine is capable of or suitable for playing a game. Moreover, this data may be presented to a human via the GUI Layer 208. In other words, this data can be displayed on the display 212. A human may also interact via the input/output device(s) 210 to request specific information about a particular gaming-machine(s) or game(s). Data may be filtered and more detailed information regarding, for example, why a game cannot be executed on a particular gaming-machine, what actions can be taken to allow a game to be executed on a particular gaming-machine, and so on.
To further elaborate,
It will be appreciated that the polling (304) can be initiated, for example, at a determined time interval, or when a request is received (e.g., from a human operator or application program). In any case, after the polling has been initiated (304), it is determined (306) whether data has been received from the gaming-machine(s). If it is determined (306) that data has been received, it is determined (308) whether to store the data. Typically, data is stored (310) in a database after verification and processing to ensure the integrity of data. Subsequently, it is determined (312) whether more data is needed (e.g., whether data has been received from all of a selected group of gaming-machines). If it is determined (312) that more data is needed, additional data can be received (306) and stored (310) in the database. The polling method 300 ends if it is determined (312) that no more data is needed.
Referring now to
Accordingly, information that indicates whether one or more gaming-machines are capable of or suitable for executing one or more games can be displayed (356). Alternatively or additionally, information that indicates whether one or more games are suitable for or capable of being executed on one or more gaming-machines is displayed (358). In other words, information can be indexed based on gaming-machine(s) and/or game(s). In any case, after information is displayed (356 and/or 358), it is determined (360) whether to provide diagnostic information regarding the game(s) and/or gaming-machine(s). Subsequently, it is determined (362) whether it is possible to combine two or more gaming-machines to execute a game. Accordingly, information that indicates that two or more gaming-machines can be combined to execute one or more games can be displayed (364). It is also determined (368) whether one or more components (e.g., reels, input devices, displays) which are available in the gaming-environment can be acquired and configured for one or more gaming-machines in order to run a particular game. Accordingly, information can be displayed (370) to indicate which components of gaming-machines may be acquired to allow a gaming-machine(s) to execute a particular game. These components can, for example, be from other gaming-machines in the gaming-environment. Thereafter, it is determined (380) whether to end assessing the gaming-environment. If it is determined (380) not to end assessing process, more information can be displayed (356, 358) based on game(s) and/or gaming-machine(s). The assessing method 350 ends if it is determined (380) to end assessing the gaming-environment (e.g., when input from a human operator is received).
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 two or more game displays—mechanical and/or video. And, some gaming-machines 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. 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.
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, strobe 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.
IGT gaming-machines are implemented with special features and additional circuitry that differentiate them from general-purpose computers (e.g., desktop PC's and laptops). Some of these components and features are included in the network devices of the present invention, as appropriate. Some examples of these additional components and features are described below.
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 modern 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. Each function of the game (bet, play, result, etc.) is 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. In addition, game history information regarding previous games played, amounts wagered, and so forth also should be stored in a non-volatile memory device. This feature allows the game to recover operation to the current state of play in the event of a malfunction, loss of power, etc. This is critical to ensure the player's wager and credits are preserved. Typically, battery backed RAM devices are used to preserve this critical data. These memory devices are not used in typical general-purpose computers.
IGT gaming computers normally contain additional 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 RS232 serial interfaces provided by general-purpose computers. These interfaces may, for example, include EIA RS485, EIA RS422, 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. Those skilled in the art will know various networking hardware and software components that can be used.
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.
The gaming system 900 may receive inputs from different groups/entities and output various services and or information to these groups/entities. For example, game players 925 primarily input cash or indicia of credit into the system, make game selections that trigger software downloads, and receive entertainment in exchange for their inputs. Game software content providers provide game software for the system and may receive compensation for the content they provide based on licensing agreements with the gaming machine operators. Gaming machine operators select game software for distribution, distribute the game software on the gaming devices in the gaming system 900, receive revenue for the use of their software and compensate the gaming machine operators. The gaming regulators 930 may provide rules and regulations that must be applied to the gaming system and may receive reports and other information confirming that rules are being obeyed.
In the following paragraphs, details of each component and some of the interactions between the components are described with respect to
In another embodiment, a game usage-tracking host 915 may track the usage of game software on a plurality of devices in communication with the host. The game usage-tracking host 915 may be in communication with a plurality of game play hosts and gaming machines. From the game play hosts and gaming machines, the game usage tracking host 915 may receive updates of an amount that each game available for play on the devices has been played and on amount that has been wagered per game. This information may be stored in a database and used for billing according to methods described in a utility based licensing agreement.
The game software host 902 may provide game software downloads, such as downloads of game software or game firmware, to various devices in the gaming system 900. For example, when the software to generate the game is not available on the game play interface 911, the game software host 902 may download software to generate a selected game of chance played on the game play interface. Further, the game software host 902 may download new game content to a plurality of gaming machines via a request from a gaming machine operator.
In one embodiment, the game software host 902 may also be a game software configuration-tracking host 913. The function of the game software configuration-tracking host is to keep records of software configurations and/or hardware configurations for a plurality of devices in communication with the host (e.g., denominations, number of paylines, paytables, max/min bets). Details of a game software host and a game software configuration host that may be used with the present invention are described in co-pending U.S. Pat. No. 6,645,077, by Rowe, entitled, “Gaming Terminal Data Repository and Information System,” filed Dec. 21, 2000, which is incorporated herein in its entirety and for all purposes.
A game play host device 903 may be a host server connected to a plurality of remote clients that generates games of chance that are displayed on a plurality of remote game play interfaces 911. For example, the game play host device 903 may be a server that provides central determination for a bingo game play played on a plurality of connected game play interfaces 911. As another example, the game play host device 903 may generate games of chance, such as slot games or video card games, for display on a remote client. A game player using the remote client may be able to select from a number of games that are provided on the client by the host device 903. The game play host device 903 may receive game software management services, such as receiving downloads of new game software, from the game software host 902 and may receive game software licensing services, such as the granting or renewing of software licenses for software executed on the device 903, from the game license host 901.
In particular embodiments, the game play interfaces or other gaming devices in the gaming system 900 may be portable devices, such as electronic tokens, cell phones, smart cards, tablet PC's and PDA's. The portable devices may support wireless communications and thus, may be referred to as wireless mobile devices. The network hardware architecture 916 may be enabled to support communications between wireless mobile devices and other gaming devices in gaming system. In one embodiment, the wireless mobile devices may be used to play games of chance.
The gaming system 900 may use a number of trusted information sources. Trusted information sources 904 may be devices, such as servers, that provide information used to authenticate/activate other pieces of information. CRC values used to authenticate software, license tokens used to allow the use of software or product activation codes used to activate to software are examples of trusted information that might be provided from a trusted information source 904. Trusted information sources may be a memory device, such as an EPROM, that includes trusted information used to authenticate other information. For example, a game play interface 911 may store a private encryption key in a trusted memory device that is used in a private key-public key encryption scheme to authenticate information from another gaming device.
When a trusted information source 904 is in communication with a remote device via a network, the remote device will employ a verification scheme to verify the identity of the trusted information source. For example, the trusted information source and the remote device may exchange information using public and private encryption keys to verify each other's identities. In another embodiment of the present invention, the remote device and the trusted information source may engage in methods using zero knowledge proofs to authenticate each of their respective identities. Details of zero knowledge proofs that may be used with the present invention are described in US publication no. 2003/0203756, by Jackson, filed on Apr. 25, 2002 and entitled, “Authentication in a Secure Computerized Gaming System, which is incorporated herein in its entirety and for all purposes.
Gaming devices storing trusted information might utilize apparatus or methods to detect and prevent tampering. For instance, trusted information stored in a trusted memory device may be encrypted to prevent its misuse. In addition, the trusted memory device may be secured behind a locked door. Further, one or more sensors may be coupled to the memory device to detect tampering with the memory device and provide some record of the tampering. In yet another example, the memory device storing trusted information might be designed to detect tampering attempts and clear or erase itself when an attempt at tampering has been detected.
The gaming system 900 of the present invention may include devices 906 that provide authorization to download software from a first device to a second device and devices 907 that provide activation codes or information that allow downloaded software to be activated. The devices, 906 and 907, may be remote servers and may also be trusted information sources. One example of a method of providing product activation codes that may be used with the present invention is describes in previously incorporated U.S. Pat. No. 6,264,561.
A device 906 that monitors a plurality of gaming devices to determine adherence of the devices to gaming jurisdictional rules 908 may be included in the gaming system 900. In one embodiment, a gaming jurisdictional rule server may scan software and the configurations of the software on a number of gaming devices in communication with the gaming rule server to determine whether the software on the gaming devices is valid for use in the gaming jurisdiction where the gaming device is located. For example, the gaming rule server may request a digital signature, such as CRC's, of particular software components and compare them with an approved digital signature value stored on the gaming jurisdictional rule server.
Further, the gaming jurisdictional rule server may scan the remote gaming device to determine whether the software is configured in a manner that is acceptable to the gaming jurisdiction where the gaming device is located. For example, a maximum bet limit may vary from jurisdiction to jurisdiction and the rule enforcement server may scan a gaming device to determine its current software configuration and its location and then compare the configuration on the gaming device with approved parameters for its location.
A gaming jurisdiction may include rules that describe how game software may be downloaded and licensed. The gaming jurisdictional rule server may scan download transaction records and licensing records on a gaming device to determine whether the download and licensing was carried out in a manner that is acceptable to the gaming jurisdiction in which the gaming device is located. In general, the game jurisdictional rule server may be utilized to confirm compliance to any gaming rules passed by a gaming jurisdiction when the information needed to determine rule compliance is remotely accessible to the server.
Game software, firmware or hardware residing a particular gaming device may also be used to check for compliance with local gaming jurisdictional rules. In one embodiment, when a gaming device is installed in a particular gaming jurisdiction, a software program including jurisdiction rule information may be downloaded to a secure memory location on a gaming machine or the jurisdiction rule information may be downloaded as data and utilized by a program on the gaming machine. The software program and/or jurisdiction rule information may used to check the gaming device software and software configurations for compliance with local gaming jurisdictional rules. In another embodiment, the software program for ensuring compliance and jurisdictional information may be installed in the gaming machine prior to its shipping, such as at the factory where the gaming machine is manufactured.
The gaming devices in gaming system 900 may utilize trusted software and/or trusted firmware. Trusted firmware/software is trusted in the sense that is used with the assumption that it has not been tampered with. For instance, trusted software/firmware may be used to authenticate other game software or processes executing on a gaming device. As an example, trusted encryption programs and authentication programs may be stored on an EPROM on the gaming machine or encoded into a specialized encryption chip. As another example, trusted game software, i.e., game software approved for use on gaming devices by a local gaming jurisdiction may be required on gaming devices on the gaming machine.
In the present invention, the devices may be connected by a network 916 with different types of hardware using different hardware architectures. Game software can be quite large and frequent downloads can place a significant burden on a network, which may slow information transfer speeds on the network. For game-on-demand services that require frequent downloads of game software in a network, efficient downloading is essential for the service to viable. Thus, in the present inventions, network efficient devices 910 may be used to actively monitor and maintain network efficiency. For instance, software locators may be used to locate nearby locations of game software for peer-to-peer transfers of game software. In another example, network traffic may be monitored and downloads may be actively rerouted to maintain network efficiency.
One or more devices in the present invention may provide game software and game licensing related auditing, billing and reconciliation reports to server 912. For example, a software licensing billing server may generate a bill for a gaming device operator based upon a usage of games over a time period on the gaming devices owned by the operator. In another example, a software auditing server may provide reports on game software downloads to various gaming devices in the gaming system 900 and current configurations of the game software on these gaming devices.
At particular time intervals, the software auditing server 912 may also request software configurations from a number of gaming devices in the gaming system. The server may then reconcile the software configuration on each gaming device. In one embodiment, the software auditing server 912 may store a record of software configurations on each gaming device at particular times and a record of software download transactions that have occurred on the device. By applying each of the recorded game software download transactions since a selected time to the software configuration recorded at the selected time, a software configuration is obtained. The software auditing server may compare the software configuration derived from applying these transactions on a gaming device with a current software configuration obtained from the gaming device. After the comparison, the software-auditing server may generate a reconciliation report that confirms that the download transaction records are consistent with the current software configuration on the device. The report may also identify any inconsistencies. In another embodiment, both the gaming device and the software auditing server may store a record of the download transactions that have occurred on the gaming device and the software auditing server may reconcile these records.
There are many possible interactions between the components described with respect to
The many features and advantages of the present invention are apparent from the written description, and thus, it is intended by the appended claims to cover all such features and advantages of the invention. Further, since numerous modifications and changes will readily occur to those skilled.