Patent application title: VERIFYING AND AUDITING GAME CONTENT IN A GAMING SYSTEM
Dale R. Buchholz (Palatine, IL, US)
Mark B. Gagner (West Chicago, IL, US)
Craig J. Sylla (Round Lake, IL, US)
Jason A. Smith (Vernon Hills, IL, US)
Rory L. Block (Carson City, NV, US)
Rory L. Block (Carson City, NV, US)
IPC8 Class: AA63F924FI
Class name: Amusement devices: games including means for processing electronic data (e.g., computer/video game, etc.) access or authorization (e.g., game selection, security, etc.)
Publication date: 2009-01-29
Patent application number: 20090029767
Systems and methods provide a way to verify that software downloaded to a
gaming system is approved within a gaming jurisdiction. One aspect of the
systems and methods includes a process for receiving approval for gaming
software that is then made available for download onto gaming systems. A
further aspect of the systems and methods includes the ability to audit
and verify that software components that have been downloaded onto a
gaming system are approved for use in a jurisdiction. The gaming
configuration elements may include banner content, advertising content,
denomination data, pay table, language data, video content, audio
content, episodic game data, wagering game software, operating system
software, device driver software and device firmware.
1. A method for delivering software content to a gaming machine, the
method comprising:submitting through one or more networks a software
component to a verification system, the verification system operable to
verify the software component is approved for use in a
jurisdiction;receiving through the one or more networks an approval
indication from the verification system that the software component is
approved; anddownloading the software component to a gaming machine.
2. The method of claim 1, further comprising:notifying the gaming machine of an available software component; andsending a request from the gaming machine to download the software component.
3. The method of claim 1, further comprising downloading the software component to a host system and wherein downloading the software to the gaming machine includes downloading the software component from the host system.
4. The method of claim 1, further comprising:issuing a verification request to the verification system; andreceiving a verification response from the verification system.
5. The method of claim 1, wherein the approval indication includes a certificate identifying the software component.
6. The method of claim 1, wherein downloading the software to the gaming machine includes utilizing a peer to peer download protocol.
7. The method of claim 1, wherein downloading the software to the gaming machine includes utilizing a trickle down protocol.
8. The method of claim 7, further comprising sending an activation code to the gaming machine.
9. The method of claim 1, wherein downloading the software to the gaming machine includes utilizing a broadcast protocol.
10. The method of claim 1, wherein downloading the software to the gaming machine includes utilizing a multicast protocol.
11. A method for auditing a gaming machine, the method comprising:communicably coupling a verification system to a gaming machine, the verification system operable to verify the software component is approved for use in a jurisdiction;requesting a list of software components present on the gaming machine;selecting at least one software component from the list of components; andverifying that the at least one software component is an approved software component.
12. The method of claim 11, wherein communicably coupling includes coupling through a network.
13. The method of claim 11, wherein communicably coupling includes coupling through a USB (Universal Serial Bus) port.
14. The method of claim 11, wherein communicably coupling includes coupling through a serial port.
15. The method of claim 11, wherein verifying the at least one software component includes querying an approved products database.
16. The method of claim 15, further comprising communicably coupling the approved product database to the verification system.
17. The method of claim 11, wherein verifying includes requesting a signature associated with the software component and comparing the signature to data in the approved products database.
18. The method of 11, further comprising receiving a log file from the gaming machine.
19. The method of claim 18, wherein the log file includes data regarding a download of the software product.
20. A gaming system comprising:a gaming machine having one or more gaming software components;a verification system communicably coupled to the gaming system and operable to verify the one or more gaming software components are approved for use in a jurisdiction.
21. The gaming system of claim 20, wherein the gaming machine comprises a gaming device operable to execute the one or more gaming software components.
22. The gaming system of claim 20, wherein the gaming machine comprises a host system operable to store the one or more gaming software components.
23. The gaming system of claim 20, wherein the verification system is communicably coupled to the gaming machine through a network.
24. The gaming system of claim 20, wherein the verification system is communicably coupled to the gaming machine through a serial port.
25. The gaming system of claim 20, wherein the verification system is communicably coupled to the gaming machine through a USB port.
26. The gaming system of claim 20, wherein the verification system includes an approved product database.
27. The gaming system of claim 26, wherein the approved product database is communicably coupled to the verification system
28. A computer-readable medium having computer executable instructions for performing a method for delivering software content to a gaming machine, the method comprising:submitting through one or more networks a software component to a verification system, the verification system operable to verify the software component is approved for use in a jurisdiction;receiving through the one or more networks an approval indication from the verification system that the software component is approved; anddownloading the software component to a gaming machine.
38. A computer-readable medium having computer executable instructions for performing a method for auditing a gaming machine, the method comprising:communicably coupling a verification system to a gaming machine, the verification system operable to verify the software component is approved for use in a jurisdiction;requesting a list of software components present on the gaming machine;selecting at least one software component from the list of components; andverifying that the at least one software component is an approved software component.
This application claims the priority benefit of U.S. Provisional Application Ser. No. 60/684,921 filed May 26, 2005, the contents of which are incorporated herein by reference.
LIMITED COPYRIGHT WAIVER
A portion of the disclosure of this patent document contains material to which the claim of copyright protection is made. The copyright owner has no objection to the facsimile reproduction by any person of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office file or records, but reserves all other rights whatsoever. Copyright 2006, WMS Gaming, Inc.
Gaming machines may be operated 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 central server computer that provides one or more gaming services. As an example, gaming services that may be provided by the 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. In addition, gaming machines are evolving into gaming platforms where the gaming services and game play options provided on the gaming machines may be dynamically configured. Thus, the number and type of game services and game play options offered on a particular gaming machine may vary with time.
A gaming entity may operate hundreds, thousands or ten of thousands of gaming machines. Since gaming is allowed in many locations throughout the world, casinos may have games distributed over a wide geographic area. Within casinos, the gaming machines may be connected via one or more dedicated networks. Servers are usually located in a backroom of the casino away from the casino floor.
Current techniques for initially loading, modifying or replacing game software in gaming machines are generally inconvenient, time-consuming, and expensive. In one technique, the entire gaming machine is disconnected from the central server and replaced with a new machine. This involves the shipment of machines to and from a gaming establishment and requires the services of an appreciable number of skilled and semi-skilled service personnel. The service personnel must identify the machines to be replaced, locate the machines on the gaming establishment floor, and then replace the existing machines with the new machines. In another technique, the media containing the software is replaced with new media containing the new software. Again, the service personnel must identify the machines to receive the new software media, locate the machines on the gaming establishment floor, and then replace the existing media with the new media. In this case, media may be a hard disk, flash, various non-volatile media such as EEPROM, EPROM, etc.
In yet another technique, the new software can be downloaded to the gaming machine from the central server linked to the gaming machine. This downloading technique facilitates modifications to the game software in that it does not require removal of the gaming machine and does not require service personnel to visit the gaming machine site or the gaming machine itself. However, downloading software to gaming machines can be problematic because of the potential to bypass jurisdictional regulations. For example, software may be made available for download that has not yet been approved by the relevant jurisdictional authorities. Additionally, software that has been approved in one jurisdiction may be intentionally or inadvertently made available for download in other jurisdictions where the software is not approved.
The above-mentioned shortcomings, disadvantages and problems are addressed by various embodiments of the present invention, which will be understood by reading and studying the following specification.
Systems and methods verify that software that may be downloaded to a gaming system is approved within a gaming jurisdiction. One aspect of the systems and methods includes a process for receiving approval for gaming software that is then made available for download onto gaming systems.
A further aspect of the systems and methods includes the ability to audit and verify that software components that have been downloaded onto a gaming system are approved for use in a jurisdiction.
The gaming machine software components may include banner content, advertising content, denomination data, pay table, language data, video content, audio content, episodic game data, wagering game software, operating system software, device driver software and device firmware.
The specification describes systems, methods, and computer-readable media of varying scope. In addition to the aspects and advantages of the embodiments of the invention described in this summary, further aspects and advantages of the inventive subject matter will become apparent by reference to the drawings and by reading the detailed description that follows.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a perspective view of a gaming machine according to an example embodiment.
FIG. 2 is a block diagram of processing components of a gaming machine according to an example embodiment.
FIG. 3 is a block diagram of major software components of a gaming machine according to an example embodiment.
FIGS. 4A-4D are block diagrams of networks of gaming machines and regulatory systems according to various embodiments of the invention.
FIG. 5 is a flowchart illustrating methods of providing downloadable gaming components to one or more machines in the network environments of FIGS. 4A-4D.
FIG. 6 is a flowchart illustrating methods of auditing and verifying downloadable gaming components on one or more machines in the network environments of FIGS. 4A-4D.
In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the inventive subject matter may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the inventive subject matter, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the scope of the inventive subject matter.
Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
In the Figures, the same reference number is used throughout to refer to an identical component which appears in multiple Figures. Signals and connections may be referred to by the same reference number or label, and the actual meaning will be clear from its use in the context of the description.
The description of the various embodiments is to be construed as exemplary only and does not describe every possible instance of the inventive subject matter. Numerous alternatives could be implemented, using combinations of current or future technologies, which would still fall within the scope of the claims. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the inventive subject matter is defined only by the appended claims.
FIG. 1 illustrates an example gaming machine 100 in which may be included various embodiments of the invention. In some embodiments, gaming machine 100 is operable to conduct a wagering game. These wagering games may include reel based wagering games such as mechanical or video slots, card based games such as video poker, or other types of wagering games such as video keno, video bingo or a video dice game. If based in video, the gaming machine 100 includes a video display 112 such as a cathode ray tube (CRT), liquid crystal display (LCD), plasma, or other type of video display known in the art. In the illustrated embodiment, the gaming machine 100 is an "upright" version in which the display 112 is oriented vertically relative to a player. Alternatively, the gaming machine may be a "slant-top" version in which the display 112 is slanted at about a thirty-degree angle toward the player. Further, the gaming machine may be a "bar-top" version in which the display is mounted horizontally in a bar top or table top. Still further, the gaming machine may be housed in a wall mounted or other vertically mounted cabinet.
The gaming machine 100 includes a plurality of possible credit receiving mechanisms 114 for receiving credits to be used for placing wagers in the game. The credit receiving mechanisms 114 may, for example, include a coin acceptor, a bill acceptor, a ticket reader, and a card reader. The bill acceptor and the ticket reader may be combined into a single unit. The card reader may, for example, accept magnetic cards and smart (chip) cards coded with money or designating an account containing money.
In some embodiments, the gaming machine 100 includes a user interface comprising a plurality of push-buttons 116, and other possible devices. The plurality of push-buttons 116 may, for example, include one or more "bet" buttons for wagering, a "play" button for commencing play, a "collect" button for cashing out, a help" button for viewing a help screen, a "pay table" button for viewing the pay table(s), and a "call attendant" button for calling an attendant. Additional game specific buttons may be provided to facilitate play of the specific game executed on the machine. A touch screen overlaying video display 112 may define touch keys for implementing many of the same functions as the push-buttons. Additionally, in the case of video poker, the touch screen may implement a card identification function to indicate which cards a player desires to keep for the next round. Other possible user interface devices include a keyboard and a pointing device such as a mouse or trackball.
In some embodiments, gaming machine 100 includes a top box 140. Top box 140 may contain a video display, a mechanical display, or a diorama display that supplements display 112. For example, the display in top box 140 may be a wheel such as a rotating wheel, mechanical dice, a board for a board game, or other such display.
A processor controls operation of the gaming machine 100. In response to receiving a wager and a command to initiate play, the processor randomly selects a game outcome from a plurality of possible outcomes and causes the display 112 to depict indicia representative of the selected game outcome. In the case of slots for example mechanical or simulated slot reels are rotated and stopped to place symbols on the reels in visual association with one or more pay lines. If the selected outcome is one of the winning outcomes defined by a pay table, the CPU awards the player with a number of credits associated with the winning outcome.
In some embodiments, gaming machine 100 may include signage 120. Signage 120 may be a display device capable of displaying advertising, gaming information (e.g. type of game, denomination of game etc.) or other information to a player or potential player.
FIG. 2 is a block diagram of a control system 200 suitable for operating the gaming machine 100. Money/credit detector 222 signals a processor 220 when a player has inserted money, tickets, tokens, cards or other mechanism for obtaining credits for plays on the gaming machine through credit mechanisms 114. Using a button panel 116 and/or a touch screen 218, the player may select any variables associated with the wagering game and place his/her wager to purchase a play of the game. In a play of the game, the processor 220 generates at least one random event using a random number generator (RNG) and provides an award to the player for a winning outcome of the random event. Alternatively, the random event may be generated by a remote computer using an RNG or pooling schema and then transmitted to the gaming machine. The processor 220 operates the display 112 to represent the random event(s) and outcome(s) in a visual form that can be understood by the player. In addition to the processor 20, the control system may include one or more additional slave control units for operating the display 112 and any secondary displays.
System memory 224 stores control software, operational instructions and data associated with the gaming machine. In some embodiments, the system memory 224 comprises a separate read-only memory (ROM) and battery-backed random-access memory (RAM). However, it will be appreciated that the system memory 224 may be implemented on any of several alternative types of memory structures or may be implemented on a single memory structure. For example, memory 224 may comprise multiple banks of memory, including RAM, compact flash, hard drives, CD-ROM drives, DVD-ROM drives and combinations thereof.
A payoff mechanism 226 is operable in response to instructions from the processor 220 to award a payoff to the player. The payoff may, for example, be in the form of a number of credits. The number of credits is determined by one or more math tables stored in the system memory 224. As noted above with respect to FIG. 1, the payoff mechanism may be a coin hopper, a ticket printer, a magnetic card writer, or a database update mechanism that updates a database maintaining account information.
Network interface 228 operates to communicably couple system 200 in gaming machine 100 to a network. The network may be any type of wired or wireless network and the network interface 228 may vary based on the type of network. In some embodiments, the network comprises a gaming establishment network such as a LAN (local area network). In alternative embodiments, the network may be an intranet linking multiple networks, for example, the networks of a gaming enterprise that operates multiple gaming establishments. In further alternative embodiments, the network may comprise the Internet.
FIG. 3 illustrates various software executable and data components that may operate or be stored on a gaming machine 100. These components may comprise configuration elements for the gaming machine. In some embodiments, these components include wagering game application 302, game content and data 304-320, operating system 340, device driver 342 and device firmware 350.
Operating system 340 controls the execution of tasks, processes and applications (e.g. wagering game application 302) running on a gaming machine, and provides interfaces between applications and the hardware present on a gaming machine. The operating system may be proprietary to the gaming machine manufacturer or owner, or the operating system may be provided by a third party. Examples of operating systems that may run within the gaming machine environment include the Microsoft Windows family of operating systems, variants of the UNIX operating system, Linux, and real-time operating systems such as VRTX and QNX. The embodiments are not limited to any particular operating system.
Device driver 342 provides a software interface to hardware that may be present on a gaming machine and software that desires to utilize such hardware, such as a wagering game application 302. Typically a device driver is a software component that is added to the operating system software, and must be designed to provide interfaces expected by the operating system. A different device driver 342 typically exists for each type of hardware present on a gaming machine. For example, a ticket printer may have a device driver, a credit acceptor may have a different device driver etc.
Device firmware 350 comprises software that may be downloaded onto a persistent memory resident on a device that may be a component of gaming machine 100. For example, a ticket printer may include an embedded processor that executes software or reads data from firmware on a flash memory resident on the ticket printer. Other devices that are part of gaming machine 100 may also have firmware to control the operation and interface to the device.
Wagering game application 302 comprises software that controls the execution of a wagering game on gaming machine 100. For example, the wagering game application may provide a slot machine application (video or mechanical), keno, card based wagering games (e.g. poker), dice based wagering games or other types of wagering games. The embodiments are not limited to a particular wagering game application.
Wagering game 302 may include one or more data or executable components. These components include denomination data 310, pay table 312, language data 314, video content 316, audio content 318, episode data 320, and configuration data 322. Denomination data 310 includes data that determines the denomination or denominations that the gaming machine uses to determine the amount of a wager. For example, a gaming machine may accept payment for credits in units of $0.25, $0.50, $1.00, $5.00 or other amounts. In addition, denomination data 310 also determines the currency for the wagered amount. For example, the currency may be United States dollars, French francs, Euros or other currency.
Pay table 312 may be used to determine which outcomes are winning outcomes and the amount to be credited or paid out for the various winning outcomes. Pay table 312 may be a single table in some embodiments. In alternative embodiments, multiple pay tables may be present on a gaming machine and vary depending on which game or game version is currently in use.
Language data 314 comprises one or more data sets or files that contain text to be displayed on the gaming machine. The use of language data 314 allows a wagering game application to display text in the language common the location where the gaming machine is used without requiring customization of the wagering game application.
Video content 316 comprises video data that may be displayed by wagering game application during the course of wagering game play or in an attract mode of the gaming machine. For example, video content may comprise video clips that are displayed to the user during game play, during a bonus round, or while the gaming machine is in attract mode.
Audio content 318 comprises audio data that may be played by the wagering game application during the course of wagering game play, bonus round play, or in an attract mode of the gaming machine. In some embodiments, the audio content may be part of an audio program played on multiple gaming machines to produce a surround-sound effect.
In some embodiments, a portion of video content 316 or audio content 318 may be provided by a gaming establishment and played during game play or in attract mode. This allows the gaming establishment to tailor a gaming machine for their environment. For example, the gaming establishment may desire to provide video or audio content having a theme that is consistent with a theme within the gaming establishment as a whole.
Episode data 320 provides configuration data regarding episodes for a game. In some embodiments, the wagering game may be presented to the user in episodes. For example, bonus rounds may vary depending on the episode, or symbols and characters displayed during game play or game play rules may vary with each episode. Additionally, in some embodiments, some or all of video content 316 and audio content 318 may vary depending on the current episode. Episode data 320 may be used to determine which episode is currently presented to the user.
Configuration data 322 represents other types of configuration data related to the operation of a gaming machine or a group of gaming machines. Examples of such data include the uses for buttons present on the gaming machine.
In addition to wagering game application related configuration elements, a gaming machine may have other types of configuration components. In some embodiments, these components include security data 304, banner content 306 and advertising content 308. Security data 304 may be any type of security data related to the operation of a gaming machine or group of gaming machines. In some embodiments, the security data comprises user identification and/or password data. In alternative embodiments, the security data may comprise public key/private key encryption data. In further alternative embodiments, the security data may comprise key ring data for a group of keys. In still further embodiments, the security data may comprise biometric data. Additionally, the security data may comprise authentication and/or authorization data.
Banner content 306 comprises content intended to be displayed on a secondary display or overhead sign for a gaming machine. The banner content may be displayed on a single gaming machine, or it may be content designed to be displayed as part of the content for multiple gaming machines. For example, the content may be displayed in a manner such that the content appears to travel from one machine to the next. Alternatively, the content may be one portion of a message that is displayed across multiple gaming machines.
Advertising content 308 comprises advertising video, audio, or text data that may be played or displayed on a gaming machine.
Various combinations of the above-described configuration elements may be downloaded onto a gaming machine. It should be noted that no embodiment requires that all the above-described configuration elements be downloadable, rather varying embodiments will provide for the download of varying combinations of one or more of the above-described configuration elements.
Further, the above described configuration elements may be downloaded at different times. For example, it may be desirable to download wagering game applications components, operating system components, device driver components and the like when the machine is idle (i.e. not in use). However, other configuration elements such as episode data, banner content and advertising content may be downloaded at any time, including during wagering game play.
Additionally, some or all of the above-described configuration elements may have different versions. For example, the operating system 340, device driver 342, device firmware 350, or wagering game application 302 may exist in differing versions, with each version having differing combinations of features and/or updates to fix problems with previous versions. Typically a version will have a version identifier associated with it to indicate the software version for the configuration element.
FIG. 4A is a block diagram illustrating various components of a system 400 including networks of gaming machines and regulatory systems according to embodiments of the invention. In some embodiments, system 400 includes one or more gaming machines 100 communicably coupled to an operator host system 424 via a network 422. Network 422 may be a wired or wireless network, or a combination of wired and wireless networks. In some embodiments, network 422 is a gaming establishment local area network. In alternative embodiments, network 422 may be a network that links multiple gaming establishments or facilities. In further alternative embodiments, network 422 may include the Internet. The gaming machines 100 and operator host system 424 communicably coupled via network 422 are included in a network domain 420. In general, domain 420 includes any machine communicably coupled to other machines in a casino-wide or corporate-wide network 422 that are controlled and administered by a gaming establishment or corporation.
Operator host system 424 may be used to store downloadable gaming components for downloading onto one or more gaming machines 100.
System 400 further includes a verification system 402 coupled to an approved product database 404. Verification system 402 operates to verify gaming products. In other words, verification system 402 operates to verify that gaming products are products that have been previously approved for operating in a jurisdiction. Verification system may be a system controlled by a regulatory agency for the jurisdiction, or it may be a system controlled by a test house or other testing body appointed or approved by a regulatory agency to provide verification and/or audit services.
Database 404 comprises a database of approved products for one or more jurisdictions. Database 404 may be any type of database, including relational database, hierarchical database, flat file database, XML database or object oriented database. The data in database 404 may comprise the actual approved downloadable components, or it may contain other identifying data such as checksums, certificates, serial numbers, hash values or other values that may be used to identify and verify an approved gaming product.
In the embodiments represented by FIG. 4A, verification system 402 is outside of domain 420, and may be communicably coupled via a network 412 to a gateway within domain 420. The gateway may be operator host system 422 or other machine within domain 420. In some embodiments, network 412 comprises a private network between the verification system 402 and domain 420. In alternative embodiments, network 412 may be the Internet. In these embodiments, it is desirable for a Virtual Private Network (VPN) or other security mechanism to be established on network 412 in order to provide for secure communications between verification system 402 and machines within domain 420.
In operation, verification system 402 may be used to provide verification services and/or auditing services for machines hosting gaming products within domain 420. For example, an operator host system 424 may desire to verify that a gaming product is approved within a jurisdiction prior to downloading the gaming product to a gaming machine 100. In addition, a regulatory agency may wish to periodically audit gaming products that have been downloaded onto one or more gaming machines in order to insure that only approved gaming products are being used within the jurisdiction.
FIG. 4B is a block diagram illustrating various components of a system 430 including networks of gaming machines and regulatory systems according to alternative embodiments of the invention. The components of system 430 are similar to those described above for system 400 in FIG. 4A. In these embodiments, the verification system 402 may be communicably coupled to network 422 via network connection 432. Network connection 432 may be a wired connection or a wireless connection. Thus verification system 402 is communicably coupled within domain 420.
In the embodiments represented by FIG. 4B, it is desirable that verification system 402 be a portable computer such as a laptop, handheld, tablet or other portable computing device. Further, in these embodiments, database 404 will typically reside on verification system 402.
FIG. 4C is a block diagram illustrating various components of a system 440 including networks of gaming machines and regulatory systems according to further alternative embodiments of the invention. The components of system 430 are similar to those described above with reference to FIGS. 4A and 4B, and the verification system 432 may be communicably coupled to network 422 via network connection 432 as described above. In the embodiments having features shown by FIG. 4C, the approved product database 404 is communicably coupled to the verification system 402 via a network connection 442 that is outside of the gaming establishment operator network domain 420. For example, the approved product database 404 may be located on system operated by a regulatory agency or testing house. This may be desirable in cases where the approved product database may be too large to fit within the memory provided on verification system 402, or where the approved product database changes frequently making remote update of verification system 402 inconvenient.
In the embodiments having features shown in FIG. 4C, network connection 442 may be a wired or wireless connection. In addition, it is desirable, though not necessary, that network connection 442 be a secure network connection. For example, verification system 402 may be communicably coupled to approved product database 404 through a VPN.
FIG. 4D is a block diagram illustrating various components of a system 450 including networks of gaming machines and regulatory systems according to further alternative embodiments of the invention. The components of system 450 are similar to those described above with respect to FIGS. 4A-4C. In the embodiments represented by FIG. 4D, the verification system 402 may be communicably coupled to a gaming machine 100. In some embodiments, the verification system 402 may be coupled through a network connection such as a wired or wireless Ethernet connection. In alternative embodiments, verification system 402 may be communicably coupled to gaming system 100 through a USB (Universal Serial Bus) connection. In further alternative embodiments, verification system 402 may be communicably coupled to gaming system 100 through a serial communications port. In still further alternative embodiments, verification system 402 may be communicably coupled to gaming system 100 through a parallel communications port. The embodiments of the invention are not limited to any particular mechanism for communicably coupling verification system 402 to a gaming machine 100.
FIG. 5 is a flowchart illustrating a method, including messages used in the method, of providing downloadable gaming components to one or more machines in the network environments of FIGS. 4A-4D. The methods to be performed by the operating environment constitute computer programs made up of computer-executable instructions. Describing the methods by reference to a flowchart enables one skilled in the art to develop such programs including such instructions to carry out the method on suitable processors for gaming machines (the processor or processors of the computer executing the instructions from computer-readable media). The methods illustrated in FIG. 5 are inclusive of acts that may be taken by an operating environment executing an exemplary embodiment of the invention.
In some embodiments, the method begins with a software creator 502 requests approval for a gaming related software component or subcomponent by submitting software to a verification system 402 (action 504). As noted above, verification system 402 may be operated by a regulatory agency or test house.
Next, the verification system sends a response to the approval request. The response may vary depending on whether the software was approved or not. In those cases where the response was rejected, verification system 402 sends a reject message to the software creator system (action 506). The rejection message may contain a code, text or other indication as to the reason for the rejection. The software creator 502 may choose to resubmit the request, presumably after changes are made to address the rejection reason (action 508).
If the software is approved, verification system 402 may send an approval message to software creator 502 (action 510). In some embodiments, the approval message may contain a certificate that identifies the verifying system and/or indicates the product is approved. Further, the certificate may include keys that may be later used to encrypt/decrypt messages that unlock the software or features in the software.
In some embodiments, the software creator 502 then notifies a host system 552 that the software is approved and/or available (action 512). The notification message may include one or more product identifiers and a location or locations where the product may be obtained. For example, the location may be a network address for a system storing the software or software component. Host system 552 may be a system operated by a gaming establishment or enterprise such as operator host system 422. Additionally, a host system may be a lottery server operated by a state lottery commission, a system that serves or supplies downloadable games to gaming machines in a particular jurisdiction, or a system operated by a third party distributor of gaming software and/or software components. For example, the third party distributor may be a test house that distributes gaming software after it has been approved.
Host system 552 may then request the software (action 514). In some embodiments, the host system sends a message to the software source (e.g. software creator 502). The message may contain one or more product identifiers indicating which software components are desired. In response, the software components may be sent to host system 552 in one or more messages (action 516). In addition to the software, one or more of the messages may include a certificate for the software.
In some embodiments, host system 552 may then send a verification message to verification system 402 (action 518). The message may include a gaming software product identifier and the certificate received as part of action 516. Verification system 402 may the use the product identifier and certificate to verify whether the software component (or components) received by host system 552 is authentic and approved for use in the jurisdiction. Verification system 402 may send a response to host system 552 indicating whether or not the software component was properly verified (action 520). In some embodiments, a message sent to host system 552 may include a code, text or other indication as to the reason the software was or was not properly verified.
Next, in some embodiments host system 552 notifies one or more gaming machines 100 that the software component or components are available (action 522). The notification message may include one or more of a product identifier, a location where the software component may be available, and a time or time range when the software will be available. A gaming machine 100 that is to receive the software may then send a message notifying host system 552 of the software product or products it requests for download (action 524).
After receiving a request, host system 552 may cause the software to be delivered to the requesting gaming machine 100 (action 526). A variety of delivery mechanisms may be employed in varying embodiments. For example, in some embodiments, a client/server style delivery mechanism may be employed where gaming machine 100 acts as a client to server host system 552, which downloads the software to gaming machine 100.
In alternative embodiments, a peer to peer delivery mechanism may be used. In these embodiments, a gaming machine 100 receives all or a portion of the desired software components from one or more other peer systems that have previously downloaded all or a portion of the software component. For example, the other peer systems may be other gaming machines within domain 420. Various peer to peer delivery methods are possible. Examples of such peer to peer delivery methods include the gnutella protocol, the BitTorrent protocol, morpheus software, or grokster software. In these methods, host system 552 identifies one or more machines that may be able to provide the software. The receiving gaming machine may then receive the software component from a single peer gaming machine. Alternatively, the receiving gaming machine may receive pieces of the software component simultaneously (or nearly simultaneously) from multiple peer machines, thereby distributing the download activity across multiple machines and reducing the processor and/or memory load attributed to downloading for any particular peer machine, and potentially reducing the amount of time it takes to receive a downloaded gaming software component. Once all of the pieces have been received, they may be assembled by the receiving machine into a complete software component.
In further alternative embodiments, a "trickle down" download mechanism may be used. In these embodiments, portions of a software component are downloaded over a period of time which is typically longer than that in the peer to peer mechanism just described. Downloading pieces over a longer period of time further reduces load on peer gaming machines in the network, both those sending and those receiving downloadable gaming software components. Again, once all of the pieces have been received, they may be assembled by the receiving machine into a complete software component. In some embodiments, an activation key must be provided to the downloading machines in order to activate the downloaded component after it has been reassembled.
In still further embodiments, network broadcast or multicast mechanisms may be utilized to notify gaming machines of the availability of software components, and/or to download software components to one or more gaming machines. In these embodiments, messages containing notifications and messages containing software components may be either broadcast or multicast over a network. In broadcast embodiments, the broadcast messages may be received by any machine participating in a network. In multicast embodiments, a select group of machines receives the message. Thus a single source message may be delivered to more than one recipient, thereby providing the potential to make downloading software components more efficient.
In some of the above-described embodiments, peer gaming machines that are currently in use may be excluded from acting as a download source in order to prevent degrading the quality of the game play on the gaming machine.
In some embodiments, a response in action 526 may include a hash value. The hash value may be used to verify the integrity of the software component that has been downloaded. In these embodiments, a hash value is generated for the software component prior to download. The receiving machine, after receiving a complete software component, generates a hash value for the software component. The hash value generated prior to download may be compared to the hash value generated from the downloaded software component to determine whether or not the software component has been received intact and without alteration.
In some embodiments, after receiving a software component, a gaming machine may send a message indicating receipt of the software component (action 528). The message may contain a logfile entry identifying the product received. The logfile may include other entries, such as machine identifiers that supplied some or all of the software component (e.g. in peer to peer environments), timestamps indicating when the software was downloaded, and other such information.
Additionally, in some embodiments the gaming machine may send a message to a verification system seeking to verify the authenticity of the downloaded software component (action 530). The message may contain a certificate that is passed down from host system 552, a hash value, or other key designed to determine the authenticity of the downloaded software.
It should be noted that in varying embodiments, one or more of the messages illustrated in FIG. 5 may be transmitted electronically using messaging software, email software or the like. Further, one or more of the messages may be submitted as part of a tape or a disk such as a CD-ROM or DVD-ROM. Additionally, one or more of the messages may be sent via a physical mail delivery system such as a postal service, and the message may include a code phrase or key that must be provided to software that may then interpret the key as a message request or response.
FIG. 6 is a flowchart illustrating methods of auditing and verifying downloadable gaming components on one or more machines in the operating environments of FIGS. 4A-4D. The method begins when a verification system requests an audit from an audit target 602 (action 604). Audit target 602 may be a gaming machine, a server that provides gaming applications for download to gaming machines, or other gaming related system.
Audit target 602 responds with a manifest of software components that reside on the audit target (action 606). The manifest may identify components by component name or a component identifier such as a serial number, part number, asset number or other identifying label. The manifest may include only those software components subject to regulatory approval or it may be a complete list of software components on the audit target.
In some embodiments, verification system 502 then requests a signature for one or more products (e.g. software components) on the audit target (action 608). The signature may include a certificate, a hash value, a checksum, a license key, or other type of data set that may be used to identify and verify the requested component. Audit target 602 then responds to the verification system by sending the requested signature information (action 610).
Verification system 402 then compares the signature information provided by audit target 602 to data in an approved products database to determine if the requested product is authorized for use in the jurisdiction by the gaming establishment (action 612). If the results of the comparison indicate that the product is not authorized, various follow-up actions may be initiated. For example, the verification system may log the event and/or alert regulatory agency personnel of the fact that an unauthorized product is being used. Alerting and logging may comprise electronic notification, for example by sending an electronic mail message to regulatory agency personnel, or it may involve printing and sending a report.
In some embodiments, a verification system may request a log of activities from an audit target (action 614). The log may include one or more of a variety of items, including software components downloaded onto the audit target, the source or sources for the software component, timestamps of when download activity took place etc. The audit target may then respond with a message containing one or more log entries which may be organized as a log file (action 616).
It should be noted that inventive concepts may exist in subsets of the actions illustrated within FIGS. 5 and 6 and that no embodiment of the invention need include each and every action illustrated in FIGS. 5 and 6.
Further, it should be noted that the various embodiments can include hardware, firmware, and/or software for performing the operations described herein. The embodiments may also include machine-readable media. Machine-readable media includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a gaming machine, computer, etc.). For example, tangible machine-readable media includes read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory machines, etc. Machine-readable media may also include any media suitable for transmitting software over a wired or wireless network
Systems and methods for verifying and auditing software components that may be downloaded to gaming machines have been described. Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. For example, the auditing and verification methods may be applied to any gaming related system in a gaming network. This application is intended to cover any adaptations or variations of the inventive subject matter.
The terminology used in this application is meant to include all of these environments. It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. Therefore, it is manifestly intended that the inventive subject matter be limited only by the following claims and equivalents thereof.
The Abstract is provided to comply with 37° C.F.R. § 1.72(b) to allow the reader to quickly ascertain the nature and gist of the technical disclosure. The Abstract is submitted with the understanding that it will not be used to interpret or limit the scope of the claims.
Patent applications by Craig J. Sylla, Round Lake, IL US
Patent applications by Dale R. Buchholz, Palatine, IL US
Patent applications by Jason A. Smith, Vernon Hills, IL US
Patent applications by Mark B. Gagner, West Chicago, IL US
Patent applications by Rory L. Block, Carson City, NV US
Patent applications in class Access or authorization (e.g., game selection, security, etc.)
Patent applications in all subclasses Access or authorization (e.g., game selection, security, etc.)