U.S. patent application number 11/915483 was filed with the patent office on 2009-01-29 for verifying and auditing game content in a gaming system.
Invention is credited to Rory L. Block, Dale R. Buchholz, Mark B. Gagner, Jason A. Smith, Craig J. Sylla.
Application Number | 20090029767 11/915483 |
Document ID | / |
Family ID | 37452906 |
Filed Date | 2009-01-29 |
United States Patent
Application |
20090029767 |
Kind Code |
A1 |
Buchholz; Dale R. ; et
al. |
January 29, 2009 |
VERIFYING AND AUDITING GAME CONTENT IN A GAMING SYSTEM
Abstract
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.
Inventors: |
Buchholz; Dale R.;
(Palatine, IL) ; Gagner; Mark B.; (West Chicago,
IL) ; Sylla; Craig J.; (Round Lake, IL) ;
Smith; Jason A.; (Vernon Hills, IL) ; Block; Rory
L.; (Carson City, NV) |
Correspondence
Address: |
SCHWEGMAN, LUNDBERG & WOESSNER/WMS GAMING
P.O. BOX 2938
MINNEAPOLIS
MN
55402
US
|
Family ID: |
37452906 |
Appl. No.: |
11/915483 |
Filed: |
May 25, 2006 |
PCT Filed: |
May 25, 2006 |
PCT NO: |
PCT/US06/20498 |
371 Date: |
July 11, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60684921 |
May 26, 2005 |
|
|
|
Current U.S.
Class: |
463/29 |
Current CPC
Class: |
G07F 17/3241 20130101;
G07F 17/323 20130101; G07F 17/32 20130101 |
Class at
Publication: |
463/29 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
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; and downloading the software
component to a gaming machine.
2. The method of claim 1, further comprising: notifying the gaming
machine of an available software component; and sending 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; and receiving 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; and
verifying 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; and
downloading the software component to a gaming machine.
29.-37. (canceled)
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; and verifying that the at least one software component
is an approved software component.
39.-46. (canceled)
Description
RELATED APPLICATION
[0001] 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
[0002] 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.
BACKGROUND
[0003] 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.
[0004] 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.
[0005] 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.
[0006] 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.
SUMMARY
[0007] 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.
[0008] 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.
[0009] 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.
[0010] 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.
[0011] 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
[0012] FIG. 1 is a perspective view of a gaming machine according
to an example embodiment.
[0013] FIG. 2 is a block diagram of processing components of a
gaming machine according to an example embodiment.
[0014] FIG. 3 is a block diagram of major software components of a
gaming machine according to an example embodiment.
[0015] FIGS. 4A-4D are block diagrams of networks of gaming
machines and regulatory systems according to various embodiments of
the invention.
[0016] 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.
[0017] 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.
DETAILED DESCRIPTION
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] Advertising content 308 comprises advertising video, audio,
or text data that may be played or displayed on a gaming
machine.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] Operator host system 424 may be used to store downloadable
gaming components for downloading onto one or more gaming machines
100.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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).
[0065] 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.
[0066] 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.
[0067] 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.
[0068] 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.
[0069] 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).
[0070] 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.
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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.
[0075] 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.
[0076] 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.
[0077] 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.
[0078] 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.
[0079] 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.
[0080] 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.
[0081] 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).
[0082] 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.
[0083] 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).
[0084] 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.
[0085] 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
CONCLUSION
[0086] 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.
[0087] 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.
[0088] The Abstract is provided to comply with 37.degree. C.F.R.
.sctn. 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.
* * * * *