The present disclosure relates to gaming machines and networks and, more particularly, to games of chance involving player input and selection, such as a Wheel of Fortune® game.
Gaming in the United States is divided into Class I, Class II and Class III games. Class I gaming includes social games played for minimal prizes, or traditional ceremonial games. Class II gaming includes bingo games, pull tab games if played in the same location as bingo games, lotto, punch boards, tip jars, instant bingo, and other games similar to bingo. Class II games can be implemented in a Central Determination configuration, in which a central computer or system determines game outcomes regardless of any player input or decisions. Class III gaming includes any game that is not a Class I or Class II game, such as a game of chance typically offered in non-Indian, state-regulated casinos. Many games of chance that are played on gaming machines fall into the Class II and Class III categories of games.
One trend in the design of Class III games is the reliance upon player input for determining the outcome of a game, when several outcomes are possible. Games that involve player choice are generally more interesting for game players because of the increased enjoyment of participation in the game. For example, in a Wheel of Fortune® game, as shown in
In
In generating outcomes for a game of chance, a pay table is often used. The pay table contains the award amounts, or “payouts” associated with each stop. In addition, the pay table includes a set of fixed probabilities associated with each stop and associated award amount. In this way, the outcome on any given spin or play is randomly determined according to the fixed probabilities defined in the pay table. For example, in Table 1 below, the stops and associated payouts or award amounts of
In some implementations, the weights, as shown in Table 1, define a range of Random Number Generator (RNG) values that will determine the stop. For example, in Table 2, the weight associated with stop 0 is 9, so this weight is assigned a range of nine numbers, 0-8. Similarly, the weight associated with stop 1 is 14, so this stop is assigned the next thirteen numbers, 9-22. The range of numbers associated with each of the remaining stops is similarly calculated, as shown in Table 2.
When the gaming machine randomly determines one of the stops, using the pay table shown in Table 2, the gaming machine will generate a number from 0 to 104. Then, the stop having the range in which the generated number falls is the stop determined for the outcome of the game, or spin in the Wheel of Fortune® example. For instance, using Table 2, when the random number 38 is generated, stop 3 is selected.
Payout weights and an average payout for the pay table can be calculated. This average payout is the average award a player can expect to receive for a game play session, e.g., spin. Table 3 below incorporates the same “stop,” “payout,” and “weight” entries of Tables 1 and 2. In addition, a fourth column in Table 3 below shows the payout weight associated with each stop in the pay table. This payout weight is calculated by multiplying the payout of the particular stop with the weight associated with that stop. Thus, the payout weight for stop 0 is 9·30=270. Similarly, the payout weight for stop 2 is 8·65=520.
In Table 3, when all of the payout weights are calculated for the stops in the pay table, the total payout weight can be divided by the sum of all of the weights to determine the average payout, i.e. 5145/105=49. Thus, in a game applying the pay structure of Table 3, the player can expect an average payout of $49.
As mentioned above, a trend in modern gaming is to allow a player to make a selection to influence the outcome of a game. In one implementation of this trend, Wheel of Fortune® games have been designed to allow a player to select one of a plurality of pointers when spinning the wheel. Thus, the award amount will depend on which pointer the player selected. For example,
While
Thus, in the example of
Table 4 shows the payouts associated with the respective pointers of
In the table above, one can see that when the gaming machine generates a stop of 0, then the red pointer would award the player $30, but the blue pointer would award the player $65. The probability of the $30 payout landing on position 0 is the same as the probability of the $65 payout landing on the blue pointer. However, the probability of the $30 payout landing on the red pointer is not the same as the probability of the $30 payout landing on the blue pointer. Thus, it should be clear from Table 4 that the probability of a certain outcome or payout amount at the red pointer is not the same as the probability that the same amount will be output at the blue pointer or yellow pointer. Each pointer has a different set of probabilities or weights assigned to its outcomes or payout amounts.
In Table 4 above, average payouts can be calculated for the respective pointers, applying the same computations described above with respect to Table 3. Thus, when the player selects the red pointer, he can expect an average payout of $49, the same as Table 3. If, however, the player selects the blue pointer, he can expect to receive an average payout of $85.2381. If the player selects the yellow pointer, he can expect an average payout of $52.2381.
As shown in Table 4 above, the blue pointer has a higher average payout than the other pointers. When the player learns the pointer with the highest average yield, either from discovering the pay table or gathering general knowledge from experience, the player will always choose the pointer having the highest average yield. Thus, in Table 4 above, if the player were aware of the average payouts of the respective pointers, the player would always pick the blue pointer. Such discovery is inevitable in the gaming world. When this discovery is made, the entertainment associated with the fundamental game play feature of pointer selection is removed. The entertainment value of the entire game is significantly reduced, and the game can become unexciting.
It is therefore desirable to implement a game of chance involving player choice in a Central Determination, Class II/Bingo gaming system, and a Class III configuration to provide the enjoyment associated with increased participation in the game, but compensate for the player choice to produce the same average payout regardless of the player selection.
Disclosed are methods and apparatus, including computer program products, implementing and using techniques for compensating for a player choice in a game of chance. In one aspect, a plurality of outcomes is defined. A sequence of positions corresponding to the plurality of outcomes is provided. The sequence of positions includes a reference position. A plurality of pointers are situated at positions in the sequence. Each pointer has an offset value with respect to the reference position along the sequence of positions. Responsive to selection of one of the pointers, the reference position is moved according to the offset value associated with the selected one pointer, so that the selected one pointer points at the reference position. A number is received. The received number determines one of the plurality of outcomes according to a predefined probability associated with the reference position. The determined one outcome is output at the reference position.
In another aspect of the present invention, a plurality of pay tables are provided. Each pay table is associated with a respective one of the plurality of pointers. Each pay table also stores a set of predefined probabilities for the set of outcomes. Responsive to selection of one of the pointers, one of the pay tables is selected. The received number determines one of the plurality of outcomes in the selected pay table according to the predefined probability for the determined one outcome in the selected pay table.
All of the foregoing methods, along with other methods of aspects of the present invention, may be implemented in software, firmware, hardware and combinations thereof. For example, the methods of aspects of the present invention may be implemented by computer programs embodied in non-transitory machine-readable media and other products.
Aspects of the invention may be implemented by networked gaming machines, game servers and other such devices. These and other features and benefits of aspects of the invention will be described in more detail below with reference to the associated drawings.
Reference will now be made in detail to some specific embodiments of the invention including the best modes contemplated by the inventors for carrying out the invention. Examples of these specific embodiments are illustrated in the accompanying drawings. While the invention is described in conjunction with these specific embodiments, it will be understood that it is not intended to limit the invention to the described embodiments. On the contrary, it is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims. Moreover, numerous specific details are set forth below in order to provide a thorough understanding of the present invention. The present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to obscure the present invention.
In
A pay table with weights assigned to the various stops in
A method for compensating for player choice in a game of chance, performed in accordance with one embodiment of the present invention, is described below. The method provides for moving the reference position or position 0 in accordance with the player selection of a pointer, so that the selected pointer is always at the reference position. In one embodiment, this movement is accomplished by adding the offset value of the selected pointer to the position number of the selected pointer, modulo the number of stops. In another embodiment, rather than adding an offset to the position of the selected pointer, a separate pay table is maintained for each pointer, and the pay table associated with the selected pointer is applied responsive to the selection. The structure of the pay table, that is, assignment of weights and payouts to the various stops, is such that the expected outcomes and payouts are the same, regardless of which pointer is chosen. For example, the numbers in the various pay tables associated with the respective pointers can be set so that the effect is the same as adding offset values associated with the pointers to move the selected pointer to the reference position before the pay table is applied. Returning to Table 4, the effect is the same as shifting the payout entries in the blue pointer payout and the yellow pointer payout columns by the respective offset values of the blue and yellow pointers so that the payout entries are the same as the red pointer payout entries for each possible stop. In this way, the average payout computation is the same, regardless of the pointer selected.
Table 5 shows the effect of moving the reference position according to the offset values associated with the respective blue and yellow pointers.
In Table 5 above, those skilled in the art should appreciate that stops 0-11 are explicitly defined in the “Stop” column, but they do not need to be. In one example, the stop is not explicitly stored, but is implied by the row or entry number. For instance, if the first row is determined as the output, stop 0 is selected, if the second row is chosen, stop 1 is selected, and so forth. In an alternative implementation to that defined by Table 5, the stops may all be equally probable. Generally, however, the stops have assigned weights, as shown in Table 5.
In step 610 of
In step 620 of
Applying the technique described above, the game outcome will be the same, regardless of the pointer selected. This is because the generated outcome is output for the reference position, which will always be aligned with the selected pointer after the reference position is moved according to the offset value associated with the selected pointer. In
In another embodiment, rather than shifting the reference position according to the pointer selected, a separate pay table can be established for each pointer so that the average payouts are the same regardless of the pointer selected. In some implementations, these pay tables will be constructed so that the payouts and weights in one pay table are shifted with respect to the other pay tables according to the offset values of the pointers associated with those pay tables. In this way, the net effect of selection and application of a particular pay table is the same as applying the offset value of the pointer associated with that pay table, as described above in
In
In
In one embodiment of the present invention, a Bingo game is played on gaming machine 815a in central determination system 800, as shown in
Accordingly, a reel offset pay table is constructed to compensate for player choice. In one example, as shown below in Table 6, one column specifies an offset value in the form of a reel offset, to use for each position selected by a player. In this embodiment, the position chosen by the player, or “player chosen position,” is one type of “pointer” as used herein, functioning in essentially the same manner as the pointer described above in the Wheel of Fortunes® embodiment. Preferably, the reel offset pay table further includes the weight and payout of each reel stop (not shown), similar to Table 5 above.
In this Bingo embodiment, to select a reel, the gaming machine 815a follows the steps described above for generating a random number and using the weights defined in the pay table to determine a reel stop as an outcome. Once the stop has been determined, the reel offset pay table of Table 6 is indexed to identify the offset value associated with the position chosen by the player. For example, player chosen position 2 has an associated reel offset of 10. This offset value of 10 is added to the determined stop, modulo the stop count, that is, total number of reel stops, and the result is then provided as the outcome for the Bingo game.
In one Bingo game example, the player chooses position 2, and the gaming machine randomly determines that the selected stop is 7. The gaming machine then indexes Table 6 with the player chosen position of 2 and finds that the reel offset for position 2 is 10. This offset value of 10 is added to stop 7, producing 17. There are 12 stops on the reel (i.e., the stop count is 12), so the final result will be 17 mod 12, which is 5. This stop 5 will then be the reference position, or location for the game output when the pay table is applied. The originally determined stop, 7, appears at the player's selected position 2.
Again, as with the Wheel of Fortune® embodiment described above, some gaming machines and systems are already configured to read and interpret pay tables. In this context, it may be beneficial to express the reel offset in the form of a separate pay table for each possible player chosen position. The following Table 7 shows one example of this implementation:
Those skilled in the art will appreciate that Table 7 is an expression of three separate pay tables, one for each player chosen position of 0, 2, or 6, in the form of one table. In an alternative embodiment, the pay table of Table 7 is implemented as 3 separate tables, one for each player choice. Such an alternative embodiment provides the benefit of allowing the game to operate in the same manner as it would operate in a Class III, with the exception that instead of reading the stop from one pay table column, the stop is read from one of three columns (using the implementation of Table 7) or from one of 3 possible pay tables (using the alternative embodiment).
In
During play of the Death Star™ Bonus game, the gaming machine randomly generates a single stop or associated award amount and spins the sphere 905 so that the generated stop is provided as an outcome at the reference position, in this example, position 0 with pointers 920a and 925a. The player is awarded the sum of the award amounts pointed to by the upper and lower pointers 920a and 925a.
Table 8 shows one example of a pay table constructed for the Death Star™ Bonus game:
In the example of Table 8, because the weights are all 1, the second column may be omitted when the pay table is constructed. With equal weights of 1, the stops are equally probable. Thus, in one implementation, outcome determination can be simplified to generating a single random number in the range 0 to 18, with the generated number representing the determined stop.
Applying the method 600 of
In Table 8, because all of the stops have equal weight, the stops have the same probability of occurring at any position. This means that the average values for the lower pointers 925a-c are the same, regardless of the particular lower pointer chosen by the player. The same is true for the upper pointer. The average game outcomes should also be the same. The volatility, however, will be different, since award amounts summed to make the total award for the player will depend on the selection of both an upper pointer and lower pointer. Table 9 shows award amounts for determined stops, for all combinations of upper and lower pointers as selected by the player. In Table 9, the average award amounts for each combination of player choices are the same, but minimums and maximums differ. Lower minimums and higher maximums produce higher volatility.
Embodiments of the present invention provide for establishing the same volatility for all of the combinations of player selected upper and lower positions, such as those shown in Table 9. In addition, the pay table can be constructed to produce a predetermined outcome regardless of the player choice. In one implementation, the award amounts are arranged such that, regardless of the player choice, the same 20 payouts are possible. This arrangement can be achieved experimentally, by trying values until a solution is found, either by hand or by use of a computer program. Tables 10a and 10b provide one example of such an arranged pay table. In Table 10a, when stored in a computer memory or other suitable storage medium, the Table could include only columns 3 and 4. Column 1 could be implied by the row or table entry number, and column 2 could be omitted since all of the stops are equally probable. In Table 10b, columns 3-11 demonstrate that the same payouts are possible regardless of player choice.
In the pay table defined by Tables 10a and 10b, regardless of the player selection, the same 20 stops or award amounts are possible. In a Class III system, the player's pointer selection may still affect the outcome, but the volatility and average payout will remain the same.
In an alternative embodiment to the pay table arrangement of Tables 10a and 10b, the award amounts are arranged as shown in Tables 10c and 10d.
The arrangement of award amounts in Tables 10c and 10d accomplishes the same goal as the arrangement of Tables 10a and 10b. One benefit of the arrangement in Tables 10c and 10d is that the outcomes appear more random to the player.
For Class II or Central Determination systems such as system 800 of
To utilize the pay table of Table 11 for a Class II or Central Determination system, the machine would generate a random number as an index into the pay table according to the player's selections, similar to Table 7, to determine the stop. In one example, the machine determines entry or row 0 (upper section payout=25, lower section payout=15), as the outcome. In this example, the player selected upper pointer 920a at upper position 0 and lower pointer 925a at lower position 0. For this pointer combination, Table 11 indicates that the determined stop is 0 (first row, and the 0/0 column). Stop 0 at the 0/0 column is then accessed in Table 10b, identifying an award amount of 40. In another example, the machine determined entry or row is again 0, and the player selects upper pointer 920b at position 1 and lower pointer 925c at position 2. Accessing Table 11 at row 0 in the ½ column, the table indicates that the determined stop is 18. By again using the determined stop, 18, to access previous Table 10b, at the ½ column, Table 10b indicates an award amount of 40. Thus, the arrangement of numerical values in the tables ensures that the outcome determined by the gaming machine is used to access the correct stop to pay the same amount, regardless of the player's choice.
In an alternative embodiment to that described above with respect to Tables 10a, 10b and 11, the stops are weighted, and player choice does not affect the average payout or the volatility, or in the case of Class II and Central Determination, the actual outcome.
In yet another embodiment, a Wheel of Fortune® game is implemented in which the player is allowed to choose one pointer for one game play session, and then is able to choose additional pointers on the same wheel or reel for successive game play sessions. When the player chooses a subset of the total number of pointers, there are various combinations of pointers which can be selected. The pay tables are constructed, using the same techniques described above, so that the average payout is the same regardless of the subset of pointers selected.
Some games of the present invention can be implemented, in part, in a gaming device according to game data received from a game server. The gaming device may receive such game data through a dedicated gaming network and/or through a public data network such as the Internet.
One example of a gaming machine network that may be used to implement methods of the invention is depicted in
Here, gaming machine 1002, and the other gaming machines 1030, 1032, 1034, and 1036, include a main cabinet 1006 and a top box 1004. The main cabinet 1006 houses the main gaming elements and can also house peripheral systems, such as those that utilize dedicated gaming networks. The top box 1004 may also be used to house these peripheral systems.
The master gaming controller 1008 controls the game play on the gaming machine 1002 according to instructions and/or game data from game server 1022 and receives or sends data to various input/output devices 1011 on the gaming machine 1002. Details of exemplary systems for using a game server to control a network of gaming machines to implement bingo games are described in U.S. Patent Application No. 60/503,161 (client docket number P-888), filed Sep. 15, 2003 and entitled “Gaming Network with Multi-Player Bingo Game.” This application has been incorporated by reference herein for all purposes. The master gaming controller 1008 may also communicate with a display 1010.
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 fund transfers (EFTs), cashless ticketing, such as EZPay™, marketing management, and data tracking, such as player tracking. Therefore, master gaming controller 1008 may also communicate with EFT system 1012, EZPay™ system 1016 (a proprietary cashless ticketing system of the present assignee), and player tracking system 1020. The systems of the gaming machine 1002 communicate the data onto the network 1022 via a communication board 1018.
It will be appreciated by those of skill in the art that the present invention could be implemented on a network with more or fewer elements than are depicted in
Moreover, DCU 1024 and translator 1025 are not required for all gaming establishments 1001. 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 1042 provides this function for gaming establishment 1001. Site controller 1042 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 1042 communicates with game server 1022 to obtain game data, such as ball drop data, bingo card data, etc.
In the present illustration, gaming machines 1002, 1030, 1032, 1034 and 1036 are connected to a dedicated gaming network 1022. In general, the DCU 1024 functions as an intermediary between the different gaming machines on the network 1022 and the site controller 1042. In general, the DCU 1024 receives data transmitted from the gaming machines and sends the data to the site controller 1042 over a transmission path 1026. In some instances, when the hardware interface used by the gaming machine is not compatible with site controller 1042, a translator 1025 may be used to convert serial data from the DCU 1024 to a format accepted by site controller 1042. The translator may provide this conversion service to a plurality of DCUs.
Further, in some dedicated gaming networks, the DCU 1024 can receive data transmitted from site controller 1042 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 1052 provides cashless and cashout gaming services to the gaming machines in gaming establishment 1001. Broadly speaking, CVT 1052 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 cashout tickets. Moreover, CVT 1052 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 cashout ticket for cash at cashout kiosk 1044, cash out kiosk 1044 reads validation data from the cashout ticket and transmits the validation data to CVT 1052 for validation. The tickets may be printed by gaming machines, by cashout kiosk 1044, by a stand-alone printer, by CVT 1052, etc. Some gaming establishments will not have a cashout kiosk 1044. 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.
Turning to
The gaming machine 1002 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 1002, including speakers 10, 12, 14, a ticket printer 18 which may print bar-coded tickets 20 used as cashless instruments. The player tracking unit mounted within the top box 6 includes 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, a microphone 43 for inputting voice data, a speaker 42 for projecting sounds and a light panel 44 for display various light patterns used to convey gaming information. In other embodiments, the player tracking unit and associated player tracking interface devices, such as 16, 22, 24, 42, 43 and 44, may be mounted within the main cabinet 4 of the gaming machine, on top of the gaming machine, or on the side of the main cabinet of the gaming machine.
Understand that gaming machine 1002 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. Some gaming machines are designed for bar tables and have displays that face upwards. Still further, some machines may be designed entirely for cashless systems. Such machines may not include such features as bill validators, coin acceptors and coin trays. Instead, they may have only ticket readers, card readers and ticket dispensers. Those of skill in the art will understand that the present can be deployed on most gaming machines now available or hereafter developed. Moreover, some aspects of the invention may be implemented on devices which lack some of the features of the gaming machines described herein, e.g., workstation, desktop computer, a portable computing device such as a personal digital assistant or similar handheld device, a cellular telephone, etc. U.S. patent application Ser. No. 09/967,326, filed Sep. 28, 2001 and entitled “Wireless Game Player,” is hereby incorporated by reference for all purposes.
Returning to the example of
During the course of a game, a player may be required to make a number of decisions. For example, a player may vary his or her wager on a particular game, select a prize for a particular game, or make game decisions regarding gaming criteria that affect the outcome of a particular game (e.g., which cards to hold). The player may make these choices using the player-input switches 32, the video display screen 34 or using some other hardware and/or software that enables a player to input information into the gaming machine (e.g. a GUI displayed on display 16).
During certain game functions and events, the gaming machine 1002 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 1002, from lights behind the belly glass 40 or the light panel on the player tracking unit 44.
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. The type of ticket 20 may be related to past game playing recorded by the player tracking software within the gaming machine 1002. In some embodiments, these tickets may be used by a game player to obtain game services.
IGT gaming machines are implemented with special features and/or additional circuitry that differentiate 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 of a gaming machine from manipulating hardware and software in a manner that gives them an unfair and some cases an illegal advantage. 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 components, 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 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. As noted above, some preferred embodiments of the present invention include parallel, digital interfaces for high-speed data transfer. However, even 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 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.
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 trusted memory device contents in 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.
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.
Gaming machines used for Class III games generally include software and/or hardware for generating random numbers. However, gaming machines used for Class II games may or may not have RNG capabilities. In some machines used for Class II games, RNG capability may be disabled.
The interfaces 1268 are typically provided as interface cards (sometimes referred to as “linecards”). Generally, interfaces 1268 control the sending and receiving of data packets over the network and sometimes support other peripherals used with the network device 1260. 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 1262 may be responsible for implementing specific functions associated with the functions of a desired network device. According to some embodiments, CPU 1262 accomplishes all these functions under the control of software including an operating system and any appropriate applications software.
CPU 1262 may include one or more processors 1263 such as a processor from the Motorola family of microprocessors or the MIPS family of microprocessors. In an alternative embodiment, processor 1263 is specially designed hardware for controlling the operations of network device 1260. In a specific embodiment, a memory 1261 (such as non-volatile RAM and/or ROM) also forms part of CPU 1262. However, there are many different ways in which memory could be coupled to the system. Memory block 1261 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 1265) 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 non-transitory machine-readable media that include program instructions, state information, etc. for performing various operations described herein. Examples of non-transitory 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). 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
The above-described devices and materials will be familiar to those of skill in the computer hardware and software arts. Although many of the components and processes are described above in the singular for convenience, it will be appreciated by one of skill in the art that multiple components and repeated processes can also be used to practice the techniques of the present invention.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4448419 | Telnaes | May 1984 | A |
4711451 | Pajak et al. | Dec 1987 | A |
4858932 | Keane | Aug 1989 | A |
5058893 | Dickinson et al. | Oct 1991 | A |
5370399 | Liverance | Dec 1994 | A |
5380008 | Mathis et al. | Jan 1995 | A |
5524888 | Heidel | Jun 1996 | A |
5584763 | Kelly et al. | Dec 1996 | A |
5725428 | Achmuller | Mar 1998 | A |
5823874 | Adams | Oct 1998 | A |
5833538 | Weiss | Nov 1998 | A |
5848932 | Adams | Dec 1998 | A |
5910048 | Feinberg | Jun 1999 | A |
6053813 | Mathis | Apr 2000 | A |
6117009 | Yoseloff | Sep 2000 | A |
6334614 | Breeding | Jan 2002 | B1 |
6347795 | De Leljer | Feb 2002 | B1 |
6398220 | Inoue | Jun 2002 | B1 |
6409172 | Vancura | Jun 2002 | B1 |
6533273 | Cole et al. | Mar 2003 | B2 |
6533664 | Crumby | Mar 2003 | B1 |
6569015 | Baerlocher et al. | May 2003 | B1 |
6676510 | Bittman et al. | Jan 2004 | B1 |
6705944 | Luciano | Mar 2004 | B2 |
6793577 | Wilkins et al. | Sep 2004 | B1 |
6802507 | Inoue | Oct 2004 | B2 |
6902479 | D'Avanzo | Jun 2005 | B1 |
6905407 | Nordman | Jun 2005 | B2 |
6918830 | Baerlocher | Jul 2005 | B2 |
7083168 | Seelig et al. | Aug 2006 | B2 |
7112134 | Erlichman | Sep 2006 | B1 |
7235011 | Randall et al. | Jun 2007 | B2 |
7278638 | Nordman | Oct 2007 | B2 |
7278916 | Boyd et al. | Oct 2007 | B2 |
7278919 | Souza et al. | Oct 2007 | B2 |
7309285 | Nordman et al. | Dec 2007 | B2 |
D558835 | Zielinski et al. | Jan 2008 | S |
7329182 | Adams et al. | Feb 2008 | B2 |
7331863 | Baerlocher | Feb 2008 | B2 |
D569919 | Zielinski | May 2008 | S |
7442123 | Brill et al. | Oct 2008 | B2 |
7448948 | Hughs-Baird et al. | Nov 2008 | B2 |
7488253 | Nordman et al. | Feb 2009 | B2 |
7491121 | Seelig et al. | Feb 2009 | B2 |
7559840 | D'Avanzo | Jul 2009 | B1 |
7614951 | Flemming et al. | Nov 2009 | B2 |
7625278 | Paulsen et al. | Dec 2009 | B2 |
7690978 | Webb et al. | Apr 2010 | B2 |
7731582 | Randall et al. | Jun 2010 | B2 |
7749074 | Cole et al. | Jul 2010 | B2 |
20010034260 | Luciano et al. | Oct 2001 | A1 |
20020065126 | Miller et al. | May 2002 | A1 |
20020086728 | Bennett et al. | Jul 2002 | A1 |
20020193158 | Weiss et al. | Dec 2002 | A1 |
20030040355 | Baerlocher | Feb 2003 | A1 |
20030104856 | Wolf | Jun 2003 | A1 |
20040023713 | Wolf et al. | Feb 2004 | A1 |
20040053665 | Baerlocher | Mar 2004 | A1 |
20040147306 | Randall et al. | Jul 2004 | A1 |
20040180717 | Vancura | Sep 2004 | A1 |
20040242316 | Oles et al. | Dec 2004 | A1 |
20050143156 | Herrmann et al. | Jun 2005 | A1 |
20050181874 | Bond | Aug 2005 | A1 |
20060172791 | Wolf | Aug 2006 | A1 |
20080004098 | Bennett | Jan 2008 | A1 |
20080227530 | LeMay et al. | Sep 2008 | A1 |
20090011826 | Acres | Jan 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20060135241 A1 | Jun 2006 | US |