U.S. patent application number 11/726596 was filed with the patent office on 2008-09-25 for wager game license management in a game table.
This patent application is currently assigned to IGT. Invention is credited to Binh T. Nguyen.
Application Number | 20080234047 11/726596 |
Document ID | / |
Family ID | 39589688 |
Filed Date | 2008-09-25 |
United States Patent
Application |
20080234047 |
Kind Code |
A1 |
Nguyen; Binh T. |
September 25, 2008 |
Wager game license management in a game table
Abstract
Novel wager gaming systems and methods for game license
management utilizing a game table connected in a network at a
gaming establishment are described. A game table having multiple
player stations, equipped with gaming devices, performs as a local
licensing server for the player stations at the game table. It may
also function as a licensing server for player stations at other
game tables and for gaming machines in the network. The wager game
table may be connected to a central licensing server with operates
in conjunction with the wager game table. A player station may also
have certain license management components that may complement the
operations of a game table license management module. The game
table may perform certain local licensing and auditing functions
for each player station with regard to wager game code and other
game-related content and operational software. The management
module may also monitor the usage of various types of wager game
code, related content, and game-related software. These usage data
are maintained by the game table and may be used for auditing
purposes.
Inventors: |
Nguyen; Binh T.; (Reno,
NV) |
Correspondence
Address: |
Weaver Austin Villeneuve & Sampson LLP - IGT;Attn: IGT
P.O. Box 70250
Oakland
CA
94612-0250
US
|
Assignee: |
IGT
|
Family ID: |
39589688 |
Appl. No.: |
11/726596 |
Filed: |
March 21, 2007 |
Current U.S.
Class: |
463/42 |
Current CPC
Class: |
G07F 17/3234 20130101;
G07F 17/32 20130101; G07F 17/3232 20130101 |
Class at
Publication: |
463/42 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A wager game table in a gaming network comprising: a processor
operable to execute license management functions; a game table
interface operable to provide communication with components in the
gaming network; a license management module including an auditing
component and a game usage monitoring component; and a memory
storing auditing data and game usage data, wherein the license
management module monitors game usage for wager games executing at
the game table; and wherein the auditing component is operable to
perform wager game authorization functions and to create auditing
reports relating to the execution of wager game code at the
plurality of player stations.
2. The wager game table of claim 1 wherein the license management
module further comprises: a content usage monitoring component
operable to monitor usage of content related to wager game
execution performed through the plurality of player stations.
3. The wager game table of claim 1 wherein the license management
module further comprises: a software application usage monitoring
component operable to monitor usage of software applications
related to wager game execution performed through the plurality of
player stations.
3. The wager game table of claim 1 further comprising a floating
license management module operable to manage the distribution and
retrieval of license tokens among the plurality of player stations
in a floating license gaming environment.
4. The wager game table of claim 1 wherein a player station from
the plurality of player stations further comprises a player station
license management component.
5. The wager game table of claim 4 wherein the player station
license management component includes a wager game usage component,
a content usage component, and a software application usage
component.
6. The wager game table of claim 1 further comprising a gaming
device verification module operable to authenticate a gaming device
attempting to access a player station from the plurality of player
stations.
7. The wager game table of claim 1 further comprising a user
verification module operable to authenticate an identity of a user
attempting to use the wager game table.
8. The wager game table of claim 1 wherein the memory further
stores content usage data.
9. The wager game table of claim 1 wherein the memory further
stores software application usage data.
10. The wager game table of claim 1 wherein the processor and the
memory are implemented in a game table host controller.
11. The wager game table of claim 10 wherein the license management
module is implemented in the game table host controller.
12. The wager game table of claim 1 wherein the license management
module further comprises: a license fee component operable to
perform licensing fee calculations for wager game usage by the
plurality of player stations.
13. The wager game table of claim 1 wherein the plurality of player
stations includes player stations from a plurality of game tables
in the gaming network.
14. The wager game table of claim 1 wherein the memory further
stores operational capability data related to a plurality of
registered gaming devices.
15. The wager game table of claim 1 wherein the memory further
stores an authorized wager game list for utilization by the
auditing component to ensure that unauthorized games are not
executed at the plurality of player stations.
16. The wager game table of claim 1 further comprising a plurality
of gaming devices, a gaming device operable with the wager game
table through a player station.
17. The wager game table of claim 1 wherein the auditing component
is operable to obtain software configurations from a player
stations and to create a reconciliation report.
18. A wager gaming network comprising: a first game table having a
first plurality of player stations, a license management module,
and a first network interface; a second game table having a second
plurality of player stations and a second network interface; and a
central licensing server having a network connection with the first
game table; wherein the first game table is operable to perform as
a local licensing server for the first plurality of player stations
and for the second plurality of player stations; wherein the first
game table functions as an intermediary licensing component between
the central licensing server and the second game table; wherein the
second network interface of the second game table has a data
connection with the first network interface of the first game
table, over the wager gaming network; and wherein the first game
table monitors game usage of the first plurality of player stations
and of the second plurality of player stations.
19. The wager gaming network of claim 18 further comprising: a
gaming machine wherein the first game table is operable to perform
as a local licensing server for the gaming machine.
20. The wager gaming network of claim 18 wherein the central
licensing server performs licensing functions in conjunction with
the first game table.
21. The wager gaming network of claim 18 wherein the license
management module of the first game table includes a gaming device
verification module and a user verification module.
22. The wager gaming network of claim 18 wherein the license
management module of the first game table includes a wager game
usage component operable to monitor wager game usage for the first
plurality of player stations and the second plurality of player
stations, and to maintain wager game usage data in a first game
table memory.
23. The wager gaming network of claim 18 wherein the license
management module of the first game table includes a content usage
component operable to monitor content usage related to wager game
execution for the first plurality of player stations and the second
player of player station and to maintain content usage data in a
first game table memory.
24. The wager gaming network of claim 18 wherein the license
management module of the first game table includes a software
application usage component operable to monitor software usage
related to wager game execution and to maintain application usage
data in a first game table memory for the first plurality of player
stations and the second player of player station.
25. The wager gaming network of claim 18 wherein the first game
table and the second game table have a direct network connection
and wherein data transmissions between the first game table and the
second game table bypass transmission via other wager gaming
network components.
26. The wager gaming network of claim 18 further comprising a
plurality of gaming devices associated with the first game table
and the second game table.
27. The wager gaming network of claim 26 wherein a gaming device
from the plurality of gaming devices is one of a game table gaming
device, a hand-held, portable gaming device, or a gaming device
external to the gaming network.
28. The wager game network of claim 18 wherein the license
management module of the first game table includes a license token
distribution rules module.
29. The wager game network of claim 18 wherein the license
management module of the first game table includes a floating
license management component.
30. The wager game network of claim 18 wherein the license
management module of the first game table includes an auditing
module.
31. The wager gaming network of claim 18 wherein the network is a
peer network.
32. A local licensing server operable to service a plurality of
player stations contained in one or more wager game tables in a
gaming network, the server comprising: a processor; a network
interface operable to provide data communication with other network
devices in a gaming network; a license management module in
communication with the plurality of player stations, the license
management module including: a wager game usage monitoring
component operable to monitor wager game execution associated with
the plurality of player stations; a content usage monitoring
component operable to monitor usage of content related to the wager
game execution; and a software usage monitoring component operable
to monitor usage of software applications associated with the
plurality of player stations; and a server storage area for storing
game usage data, content usage data, and software application usage
data.
33. The local licensing server of claim 32 wherein the license
management module further comprises a floating license management
module operable to manage the retrieval and distribution of license
tokens in a gaming establishment having a limited number of license
tokens.
34. The local licensing server of claim 32 further comprises an
auditing module for performing auditing-related functions
associated with the plurality of player stations.
35. The local licensing server of claim 34 wherein the auditing
module is operable to perform wager game authorization functions
and to create auditing reports related to wager game execution at
the plurality of player stations.
36. The local licensing server of claim 32 further comprising a
gaming device verification module to authenticate a gaming device
when the device is establishing a connection with a player station
from the plurality of player stations.
37. The local licensing server of claim 32 further comprising a
user verification module to authenticate a user of a gaming device
establishing a connection with a player station from the plurality
of player stations.
38. The local licensing server of claim 32 operable to service a
plurality of gaming machines.
39. The local licensing server of claim 32 wherein the processor
and the storage area are contained in a host controller.
40. The local licensing server of claim 32 wherein the plurality of
player stations has an associated plurality of gaming devices.
41. The local licensing server of claim 40 wherein the server
storage area further stores gaming device operational capabilities
data.
42. The local licensing server of claim 32 wherein the server
storage area further stores gaming network topology data.
43. The local licensing server of claim 32 wherein the license
management module is a software component executing on the local
licensing server.
44. The local licensing server of claim 32 wherein the license
management module is a software agent.
45. The local licensing server of claim 32 wherein the license
management module is a host server in a gaming network.
46. A method of managing wager game licensing for a game table
operating in a gaming network, comprising: receiving a license
token request for a wager game from a player station at the game
table, the player station having an associated gaming device;
verifying that the associated gaming device is registered with the
gaming network; determining that the wager game is authorized for
execution at a requesting location where the game table is located;
selecting a license token for a wager game code suitable for
execution on the associated gaming device; distributing the license
token to the player station, such that the wager game code is
executable on the associated gaming device; and updating game usage
data related to execution of the wager game code on the associated
gaming device, wherein the game usage data are used to perform
auditing-related functions related to the game table.
47. The method of claim 46 wherein receiving a license token
request further comprises receiving a license token request for a
wager game component.
48. The method of claim 46 further comprises verifying that a user
of the associated gaming device is allowed to use the associated
game device to engage in wager gaming at the game table.
49. The method of claim 46 wherein determining whether the wager
game is authorized further comprising examining an authorized game
list.
50. The method of claim 46 wherein selecting a license token
further comprises examining gaming device operational capability
data.
51. The method of claim 46 wherein distributing the license token
further comprises implementing floating license distribution
rules.
52. The method of claim 46 further comprising determining if there
is game-related content which will be utilized during wager game
code execution.
53. The method of claim 52 further comprising updating content
usage data related to the use of game-related content during game
table operation.
54. The method of claim 46 further comprising updating content
usage data related to the use of non-game related content during
game table operation.
55. The method of claim 46 further comprising determining if there
is software application usage during execution of wager on the
associated gaming device.
56. The method of claim 55 further comprising updating application
software usage data related to execution of wager game code on the
associated gaming device.
57. The method of claim 46 further comprising creating a
reconciliation report related to a player station software
configuration.
58. The method of claim 56 further comprises utilizing player
station game usage data stored on the player station.
59. The method of claim 46 wherein wager game licensing is
performed by one game table for a plurality of player stations
contained at a plurality of game tables in the gaming network.
60. The method of claim 46 further comprising retrieving the
license token from the player station when the license token is no
longer needed.
61. The method of claim 46 further comprising determining whether
the associated gaming device is a game table device, a non-game
table, hand-held gaming device, or an external gaming device
operating outside of the gaming network.
62. The method of claim 61 further comprising determining the
operational capabilities of the associated gaming device.
63. The method of claim 46 further comprising determining whether a
license token is available for distribution to the player
station.
64. The method of claim 46 further comprising auditing execution of
the wager game on the associated gaming device and maintaining
auditing data.
Description
BACKGROUND OF THE INVENTION
[0001] This invention relates to game playing services for gaming
machines such as slot machines and video poker machines. More
particularly, the present invention relates to providing methods of
communication for game services such as licensing and accounting on
gaming machines.
[0002] There are a wide variety of associated devices that can be
connected to a gaming machine such as a slot machine or video poker
machine. Some examples of these devices are lights, ticket
printers, card readers, speakers, bill validators, ticket readers,
coin acceptors, display panels, key pads, coin hoppers and button
pads. Many of these devices are built into the gaming machine or
components associated with the gaming machine such as a top box
which usually sits on top of the gaming machine.
[0003] Typically, utilizing a master gaming controller, the gaming
machine controls various combinations of devices that allow a
player to play a game on the gaming machine and also encourage game
play on the gaming machine. For example, a game played on a gaming
machine usually requires a player to input money or indicia of
credit into the gaming machine, indicate a wager amount, and
initiate a game play. These steps require the gaming machine to
control input devices, such as bill validators and coin acceptors,
to accept money into the gaming machine and recognize user inputs
from devices, including key pads and button pads, to determine the
wager amount and initiate game play. After game play has been
initiated, the gaming machine determines a game outcome, presents
the game outcome to the player and may dispense an award of some
type depending on the outcome of the game.
[0004] The operations described above may be carried out on the
gaming machine when the gaming machine is operating as a "stand
alone" unit or linked in a network of some type to a group of
gaming machines. As technology in the gaming industry progresses,
more and more gaming services are being provided to gaming machines
via communication networks that link groups of gaming machines to a
remote computer that provides one or more gaming services. As an
example, gaming services that may be provided by a remote computer
to a gaming machine via a communication network of some type
include player tracking, accounting, cashless award ticketing,
lottery, progressive games and bonus games.
[0005] Typically, network gaming services enhance the game playing
capabilities of the gaming machine or provide some operational
advantage in regards to maintaining the gaming machine. Thus,
network gaming services provided to groups of gaming machines
linked over a dedicated communication network of some type have
become very popular in the gaming industry. In general, the
dedicated communication network is not accessible to the public. To
justify the costs associated with the infrastructure needed to
provide network gaming services on a dedicated communication
network, a certain critical number of gaming machines linked in a
network of some type must utilize the service. Thus, many of the
network gaming services are only provided at larger gaming
establishments where a large number of gaming machines are
deployed.
[0006] A progressive game network offering progressive game
services is one example where a group of gaming machines are linked
together using a dedicated network to provide a network gaming
service. The progressive game services enabled by the progressive
game network increase the game playing capabilities of a particular
gaming machine by enabling a larger jackpot than would be possible
if the gaming machine was operating in a "stand alone" mode. The
potential size of the jackpot increases as the number gaming
machines connected in the progressive network is increased. The
size of the jackpot tends to increase game play on gaming machines
offering a progressive jackpot which justifies the costs associated
with installing and maintaining the dedicated progressive game
network.
[0007] Within the gaming industry, a particular gaming entity may
desire to provide network gaming services and track the performance
of all the gaming machines under the control of the entity. The
gaming machines under the control of a particular entity may be
globally distributed in many different types of establishments.
Casinos, convenience stores, supermarkets, bars and boats are a few
examples of establishments where gaming machines may be placed.
[0008] FIG. 1 is a block diagram depicting gaming machines
distributed in different establishments partially connected by a
dedicated communication network for a typical gaming entity
currently operating in the gaming industry. In FIG. 1, the gaming
entity utilizes a central office 142. The gaming machines, 102,
104, 106, 114, 116, 136 and 138 for the gaming entity are located
in two casinos, 110 and 122, and a store 140. A gaming entity may
operate hundreds, thousands or ten of thousands of gaming machines.
Since gaming is allowed in many locations throughout the world, the
two casinos, 110 and 122, the central office 142 and the store may
be distributed over a wide geographic area. For instance, the
casino 110 may be located in Atlantic City, N.J., the casino 122
may be located in Australia, the central office may be located in
Las Vegas, Nev. and the store may be located in Reno, Nev.
[0009] Within the casinos, the gaming machines may be connected to
one or more database servers via one or more dedicated networks.
The database servers are usually located in the backroom of the
casino. For instance, in casino 110, gaming machines 102, 104 and
106 are connected to a database server 100 via a dedicated network
108. The dedicated network 108 may be used to send accounting
information and player tracking information from the gaming
machines to the database server 110. In casino 122, the gaming
machines 114, 116, 118 may send accounting information and player
tracking information to a database server using the dedicated
network 120. Other dedicated networks (not shown) in casinos, 110
and 112, may provide such network gaming services as bonus game
play, progressive game play and cashless ticketing.
[0010] In casinos 110 and 122, the database servers 100 and 112 may
store and process accounting data from the gaming machines in
communication with the database servers. For instance, an
accounting report detailing the performance of individual and
groups of gaming machines may be generated from the data stored on
the database servers 100 and 112. In addition, accounting data or
reports may be sent to the database server 124 in the central
office 142 from each casino. These reports may contain game
performance data collected from a number of gaming machines as well
as hotel operations data. The data from the casinos may be sent to
the central office using an expensive dedicated leased line 132
using a frame relay network.
[0011] The database server 124 may be used to generate reports
summarizing the performance of all the gaming machines within the
gaming entity (e.g. casino 110, casino 122 and store 140). The
reports may be accessed locally using the local access points 126
and 128 via the local network. In addition, reports may be remotely
accessed using a dial in number for a limited number of users. For
instance, an executive travelling on the road might view gaming
machine performance data from the remote access point 134 where the
remote access point 134 may be a hotel room.
[0012] For the store 140, the gaming machines, 136 and 138 may be
leased by the store operator. However, the cost of a dedicated
communication network for a small number of gaming machines is
usually not justified. Thus, the gaming machines operate in a
"stand alone" mode. While operating in "stand alone" mode, network
gaming services are not available to these gaming machines. To
obtain performance data for the gaming machines, 136 and 138, a
route operator may regularly extract performance data from the
machines and manually transmit the information to the central
office 142. A route may consist of a number gaming machines located
in various locations such as bars, convenience stores and
supermarkets. Usually, the route operator manually extracts
performance data for all of the gaming machines located on their
route. For a large route, this process may be both time consuming
and costly.
[0013] Within the gaming industry, there is some desire to provide
centralized network gaming services, centralized data access and
centralized data acquisition to all of the gaming machines or a
larger proportion of gaming machines within a gaming entity. For
the casinos, 110 and 122, the gaming machines are connected via
local dedicated networks that do not generally allow, for security
reasons, the gaming machines to communicate with devices located
outside of the casino. For instance, in FIG. 1, the database server
124 may not directly communicate with gaming machine 102 or gaming
machine 114. Further, as described above, a dedicated network is
usually not cost effective for smaller gaming establishments. Thus,
with the communication infrastructure described in FIG. 1 which is
representative of the communication infrastructure currently
available in the gaming industry, the implementation of centralized
network gaming services, such as centralized data acquisition may
be difficult.
[0014] As wager game tables become increasingly versatile,
sophisticated, and self-sufficient, the level of complexity in
their software and hardware configurations has grown
proportionately. Game tables offer players several options for game
play, not only in the realm of wager gaming, but beyond into
non-wager gaming offerings, such as music, television, and movies.
With respect to non-wager game content and intellectual property,
it may be necessary in some cases to keep track of detailed usage
of such content at the game table. Game tables may also allow
players to use remote devices to play at a table. For example,
players wanting to have a seat at a game table and use one of the
player stations but are unable to be physically present in a casino
or at the game table, for example, may access game play
functionality at the table via a network, such as the Internet,
casino network, or other suitable network connection, using a home
PC or a casino-issued, portable gaming device. Requirements of
wager gaming and non-gaming related licensing, auditing,
reconciliation, and related functionality may grow increasingly
sophisticated for the modern wager game table.
SUMMARY OF THE INVENTION
[0015] Novel wager gaming systems and methods for game and
game-related license management utilizing a wager game table in a
network at a gaming establishment are described. A game table
having multiple player stations equipped with preferably removable
gaming devices functions as a local licensing server for the player
stations at the game table. The game table has license management
capabilities that are implemented, for example, using a license
management module that preferably operates in conjunction with a
game table host controller or is a component within the host
controller.
[0016] Preferably, a player station at the game table has certain
license management components which may complement the operations
of the game table license management module. A player station at a
game table may be utilized in various modes: operating a gaming
device while physically present at the table; removing a gaming
device from the table and using it elsewhere in the casino; using a
casino-issued, portable gaming device that can operate with a
player station; and logging on to a player station at a table using
the Internet (via the casino network). Regardless of which of these
or other modes are used, the game table performs certain local
licensing and auditing functions for each player station with
regard to wager game code execution and usage of other game-related
content and operational software. For example, the license
management module may distribute or allocate license tokens to
player stations at one or more game tables based on the type of
device being used with a station, which may dictate the type of
game modules, enhancements, operational software, and the like that
may be needed for the station.
[0017] The management module may also monitor the usage of various
types of game code, content, such as music, images, logos, game
themes, and other intellectual property, and game-related software.
These usage data are maintained by the game table and may be used
for auditing purposes, such as generating reconciliation reports or
as proof that certain restricted wager games have not been executed
on any gaming devices utilizing player stations at a game
table.
[0018] In some aspects of the present invention a wager game table
functions as a local licensing server for multiple player stations.
The game table contains a processor and a network interface
operable to provide communication with components in a gaming
network. The processor is operable to execute licensing functions
implemented in a license management module, including a game table
auditing module and one or more usage monitoring components which
perform licensing and auditing functions for the player stations at
the game table. In one embodiment, the license management module in
the game table performs license and auditing functions for player
stations at other game tables and gaming machines in the gaming
network. The usage monitoring components may include a module for
monitoring wager game application usage, which may include various
types of metrics, such as monitoring the number of times a game
presentation component suitable for a hand-held device is used to
monitoring wager amounts associated with a game.
[0019] In one embodiment, the auditing component may perform
various checks of player station software configurations, ensure
that restricted games are not executed on gaming devices operating
with the player stations, and other auditing functions. The game
table has a memory that stores various usage data, for example,
relating to wager game usage, content usage, and software
application usage. Other licensing server functions that may be
performed by the game table include calculating licensing fees,
royalty payments for game-related content, such as for the use of
music or images, and the like. In one embodiment, the license
management module may be part of a game table host controller,
which may also include the processor and the memory for storing the
various types of licensing, usage, and auditing data.
[0020] Another aspect of the invention is a wager gaming network in
which a game table functions as a local licensing server for player
stations and associated gaming devices and for player stations at
other game tables and for gaming machines in a casino network. A
casino or gaming network has multiple game tables, each having
several player stations where a player may use a gaming device to
participate in game play at the table, the gaming device being used
either at the table or from a remote location. The network may also
have a central licensing server that performs licensing functions
for the gaming network. At least one of the game tables in the
network performs licensing and auditing operations for player
stations at the table and at other tables. In some embodiments, the
game table performs these functions for gaming machines in the
network. In one embodiment, the game table performing as a local
licensing component serves as an intermediary between the central
licensing server and the numerous game table player stations and
gaming machines in the network. In one embodiment; the licensing
server game table may have license management components that
enable it to perform certain functions for game table player
stations and gaming machines, for example, distributing appropriate
game license tokens to the gaming devices, monitoring usage of game
code and other licensed content and software, calculating licensing
fees, and performing certain auditing functions.
[0021] In another aspect of the invention, a local licensing server
performs licensing and auditing functions for player stations at
one or more game tables in a gaming network. The local licensing
server has a processor operable to perform licensing and auditing
functions and a network interface for enabling communication with
other gaming network components. A license management module in the
licensing server has a network connection via a gaming network with
a plurality of game table player stations and includes various
usage and monitoring components. For example, a wager game usage
component monitors the execution of various types of game code by
the player stations. Another component may monitor the use of
content related to games used by the player stations, by a game
table, or by gaming machines. This function may involve keeping
track of the use of licensed images, themes, music, clips from
movies and TV, logos, and the like. Another example of usage
monitoring is keeping track of the use of game-related and
operational software applications which are under a license to
third parties. This may include software related to game
enhancements, such as progressive game play, bonus game play, and
for operational purposes, such as wireless communication, firmware
for peripheral devices, and so on. In one embodiment, the license
management module collects and arranges the various usage data for
auditing purposes, license fee calculations, and the like. In one
embodiment, the local licensing server is in the form of a game
table which is operable to perform licensing and auditing functions
for player stations at the table in addition to stations at other
tables and for gaming machines in a casino network.
[0022] In other aspects of the present invention, methods of
managing wager game licensing for a game table having multiple
player stations, a player station being operable using various
gaming devices in a gaming network are described. A license
management module operating in a game table receives a request for
one or more license tokens from a player station for a specific
wager game so that the wager game code can execute on a gaming
device associated with the player station. Data describing the
gaming device are examined to verify whether the gaming device is
registered with the gaming network and can be trusted. The license
management module determines which license tokens for the wager
game code corresponding to the wager game which is appropriate or
suited for execution on the particular gaming device. For example,
a gaming device may be from the game table and have a full set of
operational capabilities or it may be a portable, hand-held gaming
device with limited hardware and software capabilities. The license
tokens are distributed to the gaming device via the player station
so that suitable and efficient wager game code may execute on the
device.
[0023] The license management module may update wager game usage
data related to execution of the wager game on the device. These
data may be used to perform auditing functions, license fee
calculations, and the like. In another embodiment, the license
module may also monitor usage of content related to wager game
play, for example various forms of licensed creative content and
intellectual property and arrange these data game table memory. In
another embodiment, the license module may monitor usage of
game-related and operational software applications that are under
license. In another embodiment, the game table may receive from
player stations unused or unneeded license tokens so that they
maybe used by other player stations and that unnecessary licensing
fees are not incurred.
[0024] Another aspect of the invention pertains to tangible,
computer program products including a machine-readable medium on
which are stored program instructions for implementing any of the
methods described above. Any of the methods of this invention may
be represented as program instructions and/or data structures,
databases, etc. that can be provided on such tangible, computer
readable media. These and other features of the present invention
will be presented in more detail in the following detailed
description of the invention and the associated figures.
BRIEF DESCRIPTION OF THE DRAWINGS
[0025] FIG. 1 is a block diagram depicting gaming machines
distributed in different establishments partially connected by a
dedicated communication network for a typical gaming entity
currently operating in the gaming industry.
[0026] FIG. 2 is a perspective drawing of a gaming machine having a
top box and other devices.
[0027] FIG. 3 is a block diagram depicting gaming machines
distributed in different establishments connected using a secure
virtual network.
[0028] FIG. 4 is an interaction diagram showing communications
between a gaming machine, local server, local ISP and remote server
over a public network.
[0029] FIG. 5A is a flow chart depicting a method of sending
transaction data between a gaming machine and one or more remote
servers.
[0030] FIG. 5B is a flow chart depicting a method of receiving
transaction data between a gaming machine and one or more remote
servers.
[0031] FIG. 6 is a flow chart depicting a method of obtaining a
game license on a gaming machine.
[0032] FIG. 7 is a flow chart depicting a method of providing a
game license to one or more gaming machines using a remote
server.
[0033] FIG. 8 is a block diagram of gaming software distribution
network that uses a secure virtual network.
[0034] FIG. 9 is a block diagram depicting software transactions in
a gaming software distribution network controlled by a software
authorization agent.
[0035] FIG. 10 is an interaction diagram between a gaming software
distributor, gaming software provider and a software authorization
agent depicting an initialization of a gaming software
transaction.
[0036] FIG. 11 is an interaction diagram between a gaming software
distributor, a gaming software provider and a software
authorization agent depicting a gaming software transaction.
[0037] FIG. 12 is an interaction diagram between a gaming software
distributor, a gaming machine and a software authorization agent
depicting a gaming software transaction.
[0038] FIG. 13 is flow chart depicting a method in a software
authorization agent initializing a gaming software transaction.
[0039] FIG. 14 is flow chart depicting a method in a software
authorization agent of authorizing a gaming software
transaction.
[0040] FIG. 15 is a block diagram of an interface used to provide
information about gaming software transactions generated by a
software authorization agent.
[0041] FIG. 16 is a block diagram of a gaming system of the present
invention.
[0042] FIGS. 17A-D are block diagrams showing interactions between
different gaming devices in a gaming system of the present
invention for a number of different licensing and downloading
scenarios.
[0043] FIG. 18 is block diagram of a gaming system of the present
invention with redundant network mediation and peer-to-peer game
downloads.
[0044] FIG. 19 is block diagram of software on a gaming machine of
the present invention.
[0045] FIG. 20 is a flow chart illustrating a method of providing
game downloading and game licensing on a gaming machine of the
present invention.
[0046] FIGS. 21A-B are gaming network diagrams showing a local
licensing server and peer gaming networks in accordance with one
embodiment of the present invention.
[0047] FIG. 22 is a block diagram of a peer network gaming
directory in accordance with one embodiment of the present
invention.
[0048] FIG. 23 is a block diagram of data and logic modules
resident on a gaming machine in a peer gaming network.
[0049] FIG. 24 is a configuration diagram of a licensing
authorization or deputizing certificate of the present
invention.
[0050] FIG. 25 is a flow chart depicting a method of deputizing a
network component as a local licensing server in accordance with
one embodiment of the present invention.
[0051] FIG. 26 is a flow chart depicting a method of operation of a
local licensing server in a peer gaming network in accordance with
one embodiment of the present invention.
[0052] FIG. 27 is an illustration of a game table and some of the
various modes or manners in which a player can participate in game
table activity in accordance with one embodiment of the present
invention.
[0053] FIG. 28 is a block diagram of software and hardware
components of a game table in accordance with one embodiment of the
present invention.
[0054] FIG. 29 is a block diagram of a license management module
having various wager game licensing, auditing, and related
components and software.
[0055] FIG. 30 is a block diagram of license management components
and data stored in a game table memory in accordance with one
embodiment of the present invention.
[0056] FIG. 31 is a block diagram of a license management component
at a player station of a game table in accordance with one
embodiment of the present invention.
[0057] FIG. 32 is a flow diagram of a process of managing licenses
at a game table having multiple player stations in accordance with
one embodiment of the present invention.
DETAILED DESCRIPTION
Gaming Machine
[0058] Turning first to FIG. 2, a video gaming machine 2 of the
present invention is shown. Machine 2 includes a main cabinet 4,
which generally surrounds the machine interior (not shown) and is
viewable by users. The main cabinet includes a main door 8 on the
front of the machine, which opens to provide access to the interior
of the machine. Attached to the main door are player-input switches
or buttons 32, a coin acceptor 28, and a bill validator 30, a coin
tray 38, and a belly glass 40. Viewable through the main door is a
video display monitor 34 and an information panel 36. The display
monitor 34 will typically be a cathode ray tube, high resolution
flat-panel LCD, or other conventional electronically controlled
video monitor. The information panel 36 may be a back-lit, silk
screened glass panel with lettering to indicate general game
information including, for example, a game denomination (e.g. $0.25
or $1). The bill validator 30, player-input switches 32, video
display monitor 34, and information panel are devices used to play
a game on the game machine 2. The devices are controlled by
circuitry (e.g. the master gaming controller) housed inside the
main cabinet 4 of the machine 2.
[0059] Many different types of games, including mechanical slot
games, video slot games, video poker, video blackjack, video
pachinko and lottery, may be provided with gaming machines of this
invention. In particular, the gaming machine 2 may be operable to
provide a play of many different instances of games of chance. The
instances may be differentiated according to themes, sounds,
graphics, type of game (e.g., slot game vs. card game),
denomination, number of paylines, maximum jackpot, progressive or
non-progressive, bonus games, etc. The gaming machine 2 may be
operable to allow a player to select a game of chance to play from
a plurality of instances available on the gaming machine. For
example, the gaming machine may provide a menu with a list of the
instances of games that are available for play on the gaming
machine and a player may be able to select from the list a first
instance of a game of chance that they wish to play.
[0060] The various instances of games available for play on the
gaming machine 2 may be stored as game software on a mass storage
device in the gaming machine or may be generated on a remote gaming
device but then displayed on the gaming machine. The gaming machine
2 may executed game software, such as but not limited to video
streaming software that allows the game to be displayed on the
gaming machine. When an instance is stored on the gaming machine 2,
it may be loaded from the mass storage device into a RAM for
execution. In some cases, after a selection of an instance, the
game software that allows the selected instance to be generated may
be downloaded from a remote gaming device, such as another gaming
machine.
[0061] The gaming machine 2 includes a top box 6, which sits on top
of the main cabinet 4. The top box 6 houses a number of devices,
which may be used to add features to a game being played on the
gaming machine 2, including speakers 10, 12, 14, a ticket printer
18 which prints bar-coded tickets 20, a key pad 22 for entering
player tracking information, a florescent display 16 for displaying
player tracking information, a card reader 24 for entering a
magnetic striped card containing player tracking information, and a
video display screen 42. The ticket printer 18 may be used to print
tickets for a cashless ticketing system. Further, the top box 6 may
house different or additional devices than shown in the FIG. 1. For
example, the top box may contain a bonus wheel or a back-lit silk
screened panel which may be used to add bonus features to the game
being played on the gaming machine. As another example, the top box
may contain a display for a progressive jackpot offered on the
gaming machine. During a game, these devices are controlled and
powered, in part, by circuitry (e.g. a master gaming controller)
housed within the main cabinet 4 of the machine 2.
[0062] Understand that gaming machine 2 is but one example from a
wide range of gaming machine designs on which the present invention
may be implemented. For example, not all suitable gaming machines
have top boxes or player tracking features. Further, some gaming
machines have only a single game display--mechanical or video,
while others are designed for bar tables and have displays that
face upwards. As another example, a game may be generated in on a
host computer and may be displayed on a remote terminal or a remote
gaming device. The remote gaming device may be connected to the
host computer via a network of some type such as a local area
network, a wide area network, an intranet or the Internet. The
remote gaming device may be a portable gaming device such as but
not limited to a cell phone, a personal digital assistant, and a
wireless game player. Images rendered from 3-D gaming environments
may be displayed on portable gaming devices that are used to play a
game of chance. Further a gaming machine or server may include
gaming logic for commanding a remote gaming device to render an
image from a virtual camera in a 3-D gaming environments stored on
the remote gaming device and to display the rendered image on a
display located on the remote gaming device. Thus, those of skill
in the art will understand that the present invention, as described
below, can be deployed on most any gaming machine now available or
hereafter developed.
[0063] Some preferred gaming machines of the present assignee are
implemented with special features and/or additional circuitry that
differentiates them from general-purpose computers (e.g., desktop
PC's and laptops). Gaming machines are highly regulated to ensure
fairness and, in many cases, gaming machines are operable to
dispense monetary awards of multiple millions of dollars.
Therefore, to satisfy security and regulatory requirements in a
gaming environment, hardware and software architectures may be
implemented in gaming machines that differ significantly from those
of general-purpose computers. A description of gaming machines
relative to general-purpose computing machines and some examples of
the additional (or different) components and features found in
gaming machines are described below.
[0064] At first glance, one might think that adapting PC
technologies to the gaming industry would be a simple proposition
because both PCs and gaming machines employ microprocessors that
control a variety of devices. However, because of such reasons as
1) the regulatory requirements that are placed upon gaming
machines, 2) the harsh environment in which gaming machines
operate, 3) security requirements and 4) fault tolerance
requirements, adapting PC technologies to a gaming machine can be
quite difficult. Further, techniques and methods for solving a
problem in the PC industry, such as device compatibility and
connectivity issues, might not be adequate in the gaming
environment. For instance, a fault or a weakness tolerated in a PC,
such as security holes in software or frequent crashes, may not be
tolerated in a gaming machine because in a gaming machine these
faults can lead to a direct loss of funds from the gaming machine,
such as stolen cash or loss of revenue when the gaming machine is
not operating properly.
[0065] For the purposes of illustration, a few differences between
PC systems and gaming systems will be described. A first difference
between gaming machines and common PC based computers systems is
that gaming machines are designed to be state-based systems. In a
state-based system, the system stores and maintains its current
state in a non-volatile memory, such that, in the event of a power
failure or other malfunction the gaming machine will return to its
current state when the power is restored. For instance, if a player
was shown an award for a game of chance and, before the award could
be provided to the player the power failed, the gaming machine,
upon the restoration of power, would return to the state where the
award is indicated. As anyone who has used a PC, knows, PCs are not
state machines and a majority of data is usually lost when a
malfunction occurs. This requirement affects the software and
hardware design on a gaming machine.
[0066] A second important difference between gaming machines and
common PC based computer systems is that for regulation purposes,
the software on the gaming machine used to generate the game of
chance and operate the gaming machine has been designed to be
static and monolithic to prevent cheating by the operator of gaming
machine. For instance, one solution that has been employed in the
gaming industry to prevent cheating and satisfy regulatory
requirements has been to manufacture a gaming machine that can use
a proprietary processor running instructions to generate the game
of chance from an EPROM or other form of non-volatile memory. The
coding instructions on the EPROM are static (non-changeable) and
must be approved by a gaming regulators in a particular
jurisdiction and installed in the presence of a person representing
the gaming jurisdiction. Any changes to any part of the software
required to generate the game of chance, such as adding a new
device driver used by the master gaming controller to operate a
device during generation of the game of chance can require a new
EPROM to be burnt, approved by the gaming jurisdiction and
reinstalled on the gaming machine in the presence of a gaming
regulator. Regardless of whether the EPROM solution is used, to
gain approval in most gaming jurisdictions, a gaming machine must
demonstrate sufficient safeguards that prevent an operator or
player of a gaming machine from manipulating hardware and software
in a manner that gives them an unfair and some cases an illegal
advantage. The gaming machine should have a means to determine if
the code it will execute is valid. If the code is not valid, the
gaming machine must have a means to prevent the code from being
executed. The code validation requirements in the gaming industry
affect both hardware and software designs on gaming machines.
[0067] A third important difference between gaming machines and
common PC based computer systems is the number and kinds of
peripheral devices used on a gaming machine are not as great as on
PC based computer systems. Traditionally, in the gaming industry,
gaming machines have been relatively simple in the sense that the
number of peripheral devices and the number of functions the gaming
machine has been limited. Further, in operation, the functionality
of gaming machines were relatively constant once the gaming machine
was deployed, i.e., new peripherals devices and new gaming software
were infrequently added to the gaming machine. This differs from a
PC where users will go out and buy different combinations of
devices and software from different manufacturers and connect them
to a PC to suit their needs depending on a desired application.
Therefore, the types of devices connected to a PC may vary greatly
from user to user depending in their individual requirements and
may vary significantly over time.
[0068] Although the variety of devices available for a PC may be
greater than on a gaming machine, gaming machines still have unique
device requirements that differ from a PC, such as device security
requirements not usually addressed by PCs. For instance, monetary
devices, such as coin dispensers, bill validators and ticket
printers and computing devices that are used to govern the input
and output of cash to a gaming machine have security requirements
that are not typically addressed in PCs. Therefore, many PC
techniques and methods developed to facilitate device connectivity
and device compatibility do not address the emphasis placed on
security in the gaming industry.
[0069] To address some of the issues described above, a number of
hardware/software components and architectures are utilized in
gaming machines that are not typically found in general purpose
computing devices, such as PCs. These hardware/software components
and architectures, as described below in more detail, include but
are not limited to watchdog timers, voltage monitoring systems,
state-based software architecture and supporting hardware,
specialized communication interfaces, security monitoring and
trusted memory.
[0070] A watchdog timer is normally used in IGT gaming machines to
provide a software failure detection mechanism. In a normally
operating system, the operating software periodically accesses
control registers in the watchdog timer subsystem to "re-trigger"
the watchdog. Should the operating software fail to access the
control registers within a preset timeframe, the watchdog timer
will timeout and generate a system reset. Typical watchdog timer
circuits contain a loadable timeout counter register to allow the
operating software to set the timeout interval within a certain
range of time. A differentiating feature of the some preferred
circuits is that the operating software cannot completely disable
the function of the watchdog timer. In other words, the watchdog
timer always functions from the time power is applied to the
board.
[0071] IGT gaming computer platforms preferably use several power
supply voltages to operate portions of the computer circuitry.
These can be generated in a central power supply or locally on the
computer board. If any of these voltages falls out of the tolerance
limits of the circuitry they power, unpredictable operation of the
computer may result. Though most modern general-purpose computers
include voltage monitoring circuitry, these types of circuits only
report voltage status to the operating software. Out of tolerance
voltages can cause software malfunction, creating a potential
uncontrolled condition in the gaming computer. Gaming machines of
the present assignee typically have power supplies with tighter
voltage margins than that required by the operating circuitry. In
addition, the voltage monitoring circuitry implemented in IGT
gaming computers typically has two thresholds of control. The
first-threshold generates a software event that can be detected by
the operating software and an error condition generated. This
threshold is triggered when a power supply voltage falls out of the
tolerance range of the power supply, but is still within the
operating range of the circuitry. The second threshold is set when
a power supply voltage falls out of the operating tolerance of the
circuitry. In this case, the circuitry generates a reset, halting
operation of the computer.
[0072] The standard method of operation for IGT slot machine game
software is to use a state machine. Different functions of the game
(bet, play, result, points in the graphical presentation, etc.) may
be defined as a state. When a game moves from one state to another,
critical data regarding the game software is stored in a custom
non-volatile memory subsystem. This is critical to ensure the
player's wager and credits are preserved and to minimize potential
disputes in the event of a malfunction on the gaming machine.
[0073] In general, the gaming machine does not advance from a first
state to a second state until critical information that allows the
first state to be reconstructed is stored. This feature allows the
game to recover operation to the current state of play in the event
of a malfunction, loss of power, etc that occurred just prior to
the malfunction. After the state of the gaming machine is restored
during the play of a game of chance, game play may resume and the
game may be completed in a manner that is no different than if the
malfunction had not occurred. Typically, battery backed RAM devices
are used to preserve this critical data although other types of
non-volatile memory devices may be employed. These memory devices
are not used in typical general-purpose computers.
[0074] As described in the preceding paragraph, when a malfunction
occurs during a game of chance, the gaming machine may be restored
to a state in the game of chance just prior to when the malfunction
occurred. The restored state may include metering information and
graphical information that was displayed on the gaming machine in
the state prior to the malfunction. For example, when the
malfunction occurs during the play of a card game after the cards
have been dealt, the gaming machine may be restored with the cards
that were previously displayed as part of the card game. As another
example, a bonus game may be triggered during the play of a game of
chance where a player is required to make a number of selections on
a video display screen. When a malfunction has occurred after the
player has made one or more selections, the gaming machine may be
restored to a state that shows the graphical presentation at the
just prior to the malfunction including an indication of selections
that have already been made by the player. In general, the gaming
machine may be restored to any state in a plurality of states that
occur in the game of chance that occurs while the game of chance is
played or to states that occur between the play of a game of
chance.
[0075] Game history information regarding previous games played
such as an amount wagered, the outcome of the game and so forth may
also be stored in a non-volatile memory device. The information
stored in the non-volatile memory may be detailed enough to
reconstruct a portion of the graphical presentation that was
previously presented on the gaming machine and the state of the
gaming machine (e.g., credits) at the time the game of chance was
played. The game history information may be utilized in the event
of a dispute. For example, a player may decide that in a previous
game of chance that they did not receive credit for an award that
they believed they won. The game history information may be used to
reconstruct the state of the gaming machine prior, during and/or
after the disputed game to demonstrate whether the player was
correct or not in their assertion.
[0076] Another feature of gaming machines, such as IGT gaming
computers, is that they often contain unique interfaces, including
serial interfaces, to connect to specific subsystems internal and
external to the slot machine. The serial devices may have
electrical interface requirements that differ from the "standard"
EIA 232 serial interfaces provided by general-purpose computers.
These interfaces may include EIA 485, EIA 422, Fiber Optic Serial,
optically coupled serial interfaces, current loop style serial
interfaces, etc. In addition, to conserve serial interfaces
internally in the slot machine, serial devices may be connected in
a shared, daisy-chain fashion where multiple peripheral devices are
connected to a single serial channel.
[0077] The serial interfaces may be used to transmit information
using communication protocols that are unique to the gaming
industry. For example, IGT's Netplex is a proprietary communication
protocol used for serial communication between gaming devices. As
another example, SAS is a communication protocol used to transmit
information, such as metering information, from a gaming machine to
a remote device. Often SAS is used in conjunction with a player
tracking system.
[0078] IGT gaming machines may alternatively be treated as
peripheral devices to a casino communication controller and
connected in a shared daisy chain fashion to a single serial
interface. In both cases, the peripheral devices are preferably
assigned device addresses. If so, the serial controller circuitry
must implement a method to generate or detect unique device
addresses. General-purpose computer serial ports are not able to do
this.
[0079] Security monitoring circuits detect intrusion into an IGT
gaming machine by monitoring security switches attached to access
doors in the slot machine cabinet. Preferably, access violations
result in suspension of game play and can trigger additional
security operations to preserve the current state of game play.
These circuits also function when power is off by use of a battery
backup. In power-off operation, these circuits continue to monitor
the access doors of the slot machine. When power is restored, the
gaming machine can determine whether any security violations
occurred while power was off, e.g., via software for reading status
registers. This can trigger event log entries and further data
authentication operations by the slot machine software.
[0080] Trusted memory devices are preferably included in an IGT
gaming machine computer to ensure the authenticity of the software
that may be stored on less secure memory subsystems, such as mass
storage devices. Trusted memory devices and controlling circuitry
are typically designed to not allow modification of the code and
data stored in the memory device while the memory device is
installed in the slot machine. The code and data stored in these
devices may include authentication algorithms, random number
generators, authentication keys, operating system kernels, etc. The
purpose of these trusted memory devices is to provide gaming
regulatory authorities a root trusted authority within the
computing environment of the slot machine that can be tracked and
verified as original. This may be accomplished via removal of the
trusted memory device from the slot machine computer and
verification of the secure memory device contents is a separate
third party verification device. Once the trusted memory device is
verified as authentic, and based on the approval of the
verification algorithms contained in the trusted device, the gaming
machine is allowed to verify the authenticity of additional code
and data that may be located in the gaming computer assembly, such
as code and data stored on hard disk drives. A few details related
to trusted memory devices that may be used in the present invention
are described in U.S. Pat. No. 6,685,567 from U.S. patent
application Ser. No. 09/925,098, filed Aug. 8, 2001 and titled
"Process Verification," which is incorporated herein in its
entirety and for all purposes.
[0081] Mass storage devices used in a general purpose computer
typically allow code and data to be read from and written to the
mass storage device. In a gaming machine environment, modification
of the gaming code stored on a mass storage device is strictly
controlled and would only be allowed under specific maintenance
type events with electronic and physical enablers required. Though
this level of security could be provided by software, IGT gaming
computers that include mass storage devices preferably include
hardware level mass storage data protection circuitry that operates
at the circuit level to monitor attempts to modify data on the mass
storage device and will generate both software and hardware error
triggers should a data modification be attempted without the proper
electronic and physical enablers being present.
[0082] Returning to the example of FIG. 1, when a user wishes to
play the gaming machine 2, he or she inserts cash through the coin
acceptor 28 or bill validator 30. Additionally, the bill validator
may accept a printed ticket voucher which may be accepted by the
bill validator 30 as an indicia of credit when a cashless ticketing
system is used. At the start of the game, the player may enter
playing tracking information using the card reader 24, the keypad
22, and the florescent display 16. Further, other game preferences
of the player playing the game may be read from a card inserted
into the card reader. During the game, the player views game
information using the video display 34. Other game and prize
information may also be displayed in the video display screen 42
located in the top box.
[0083] During the course of a game, a player may be required to
make a number of decisions, which affect the outcome of the game.
For example, a player may vary his or her wager on a particular
game, select a prize for a particular game selected from a prize
server, or make game decisions which affect the outcome of a
particular game. The player may make these choices using the
player-input switches 32, the video display screen 34 or using some
other device which enables a player to input information into the
gaming machine. In some embodiments, the player may be able to
access various game services such as concierge services and
entertainment content services using the video display screen 34
and one more input devices.
[0084] During certain game events, the gaming machine 2 may display
visual and auditory effects that can be perceived by the player.
These effects add to the excitement of a game, which makes a player
more likely to continue playing. Auditory effects include various
sounds that are projected by the speakers 10, 12, 14. Visual
effects include flashing lights, strobing lights or other patterns
displayed from lights on the gaming machine 2 or from lights behind
the belly glass 40. After the player has completed a game, the
player may receive game tokens from the coin tray 38 or the ticket
20 from the printer 18, which may be used for further games or to
redeem a prize. Further, the player may receive a ticket 20 for
food, merchandise, or games from the printer 18.
Virtual Private Networks (VPNs) and Remote Licensing via VPNs
[0085] The following patents and patent applications include
relevant subject material and are hereby incorporated by reference:
U.S. patent application Ser. No. 09/732,650, filed Dec. 7, 2000
(now U.S. Pat. No. 7,127,069) entitled "SECURED VIRTUAL NETWORK IN
A GAMING ENVIRONMENT", by Nguyen et al.; U.S. patent application
Ser. No. 10/116,424, filed Apr. 3, 2002 entitled "SECURED VIRTUAL
NETWORK IN A GAMING ENVIRONMENT," by Nguyen et al.; U.S. patent
application Ser. No. 11/078,966, filed Mar. 10, 2005 and entitled
"SECURED VIRTUAL NETWORK IN A GAMING ENVIRONMENT," by Nguyen et al;
and U.S. patent application Ser. No. (not yet assigned), filed Jan.
______, 2007 and entitled "WAGER GAME LICENSE MANAGEMENT IN A PEER
GAMING NETWORK," by Nguyen et al.
[0086] FIG. 3 is a block diagram depicting gaming machines
distributed in different establishments connected using a secure
virtual network. Using the secure virtual network, network gaming
services, data acquisition and data access may be provided to a
large number of gaming machines distributed throughout a gaming
entity 350 from a central location such as the central office 142.
These services may be provided to gaming machines that have
traditionally operated in a "stand alone" mode such as gaming
machine 336 and 138 in the store 140. In FIG. 3, some of the
communication infrastructure necessary to implement a secure
virtual network for one embodiment of the present invention are
described.
[0087] In one embodiment, the secured virtual network may be an IP
based Virtual Private Networks (VPNs). An Internet-based VPN uses
the open, distributed infrastructure of the Internet to transmit
data between corporate sites. A VPN may emulate a private IP
network over public or shared infrastructures. A VPN that supports
only IP traffic is called an IP-VPN. VPNs provide advantages to
both the service provider and its customers. For its customers, a
VPN can extend the IP capabilities of a corporate site to remote
offices and/or users with intranet, extranet, and dial-up services.
This connectivity may be achieved at a lower cost to the gaming
entity with savings in capital equipment, operations, and services.
Details of VPN methods that may be used with the present invention
are described in the reference, "Virtual Private
Networks-Technologies and Solutions," by R. Yueh and T. Strayer,
Addison-Wesley, 2001, ISBN#0-201-70209-6, which is incorporated
herein by reference and for all purposes.
[0088] There are many ways in which IP VPN services may be
implemented, such as, for example, Virtual Leased Lines, Virtual
Private Routed Networks, Virtual Private Dial Networks, Virtual
Private LAN Segments, etc. Additionally VPNs may be implemented
using a variety of protocols, such as, for example, IP Security
(IPSec) Protocol, Layer 2 Tunneling Protocol, Multiprotocol Label
Switching (MPLS) Protocol, etc. Details of these protocols
including RFC reports may be found from the VPN Consortium an
industry trade group (http://www.vpnc.com, VPNC, Santa Cruz,
Calif.).
[0089] In FIG. 3, a number of embodiments of IP VPN services are
implemented to allow connectivity between the various gaming
machines and database servers in the gaming entity. For instance,
the gaming machine 336 in the store 140 may directly communicate
with the database server 124 in the central office 142 via the
Internet 304. The communication path between the gaming machine 336
and the database server 124 may be the local ISP 314, a number of
routers on the Internet 304, a local ISP 313 accessed by the
central office 142, the router 302 and the firewall 300. The
firewall may be hardware, software or combinations of both that
prevent illegal access of the gaming machine by an outside entity
connected to the gaming machine. For instance, an illegal access
may be an attempt to plant a program in the database server that
alters the operation of the database server or allows someone to
steal data. The internal firewall is designed to prevent someone
such as a hacker from gaining illegal access to the gaming machine
and tampering with it in some manner. Firewalls and routers used in
FIG. 3 may be provided by CISCO Systems (San Jose, Calif.).
[0090] The network interface between the gaming machine 336 and the
local ISP may be a wireline interface, such as a wired Ethernet
connection, a wired ATM connection, or a wired frame relay
connection, or a wireless interface, such as a wireless cellular
interface. For instance, the gaming machine 336 may include a
wireless modem and an antenna that allows the gaming machine to
connect with the local ISP 314. As another example, the gaming
machine may contain a dial-in modem, a DSL modem or a cable modem
that allows that gaming machine 336 to connect with the local ISP
314 via a coaxial cable or phone line 337. The gaming machine 336
may also contain an internal firewall to prevent illegal access to
the gaming machine. Other gaming machines, such as 338 and 340,
located at various locations throughout the gaming entity 350 may
also include the hardware described above and transmit information
via a local ISP, such as 315 and 320, and the Internet 304, to a
remote server such as the database server 124 in the central office
142.
[0091] Using the network interface, the gaming machine 336 may send
game performance data, game usage information and gaming machine
status information or any other information of interest generated
on the gaming machine from one or more gaming transactions to the
database server 124 located in the central office or some other
remote server. Using this method, the need to manually gather data
from the gaming machine using a route operator may be eliminated,
which may reduce gaming machine operating costs and may provide
better tracking of the performance of gaming machines, such as 336,
that have traditionally operated in a "stand alone" mode.
[0092] For security purposes, any information transmitted from the
gaming machine 336 over a public network to a remote server may be
encrypted. The encryption may be performed by the master gaming
controller or by another logic device located on the gaming
machine. In one embodiment, the information from the gaming machine
may be symmetrically encrypted using a symmetric encryption key
where the symmetric encryption key is asymmetrically encrypted
using a private key. The public key may be obtained by the gaming
machine 336 from a remote public key server. The encryption
algorithm may reside in processor logic stored on the gaming
machine. When a remote server receives a message containing the
encrypted data, the symmetric encryption key is decrypted with a
private key residing on the remote server and the symmetrically
encrypted information sent from the gaming machine is decrypted
using the symmetric encryption key. In addition, a different
symmetric encryption key is used for each transaction where the key
is randomly generated. Symmetric encryption and decryption is
applied to most of the information because symmetric encryption
algorithms tend to be 100-10,000 faster than asymmetric encryption
algorithms.
[0093] Information needed to apply the encryption algorithm such as
private keys and public keys may be stored on a memory residing in
the gaming machine 336 where the memory may be a flash memory, an
EPROM, a non-volatile memory, a ROM, a RAM, a CD, a DVD, a tape
drive, a hard drive or other memory storage device. Typically, the
public keys are stored on a writeable media such as a hard drive
while the private keys are stored on a read only memory such as an
EPROM or a CD-ROM. The same or a different memory residing on the
gaming machine 336 may also include information used to
authenticate communications between the gaming machine 336 and a
remote server, such as 124. For instance, a serial number or some
other identification numbers may be used by the firewall 300 or the
database server 124 to authenticate the sender of a message.
[0094] The encrypted communications from the gaming machine 336 to
a remote server may be implemented using a TCP/IP communication
protocol. Thus, the encrypted information from the gaming machine
may be encapsulated in multiple information packets and sent to the
IP address and/or an unique ID (UID) of a remote server. The gaming
machine 336 may contain a memory storing a number of IP addresses
and/or unique IDs (UIDs) of remote servers or other devices where
the gaming machine may send information. Prior to sending a
message, the gaming machine may look up the IP address and/or the
UID of the remote server or destination device.
[0095] For each information packet, the gaming machine may generate
one or more signatures and may append them to the information
packet. The signature may allow the recipient of the packet to
unambiguously identify the sender of the packet as well as to
determine if the correct amount of data was received. For instance,
the signature may include a checksum of the data that was sent.
Further, the information packet may contain routing information
allowing subsequent communication with the gaming machine, such as
an IP address and/or an UID of the gaming machine. General details
of these types of processes, such as TCP/IP implementation and data
authentication, are described in the text "Mobile IP Unplugged" by
J. Solomon, Prentice Hall and the text "Computer Networks", A. S.
Tanenbaum, Prentice Hall. Both of these references are incorporated
herein by reference in their entireties and for all purposes.
[0096] Using the communication infrastructure and methods described
above a gaming machine or other device connected to a remote server
may request one or more gaming services from a remote server. For
instance, a gaming machine may send a game license request to the
remote server 124. A gaming machine may store code to play one or
more games controlled by the master gaming controller such as a
video slot game, a mechanical slot game, a lottery game, a video
poker game, a video blackjack game, a video lottery game, and a
video pachinko game. Traditionally, installing a new game has
involved manually exchanging (e.g., by hand) an EPROM (e.g. a
read-only memory) containing the game on the gaming machine. Using
the communication infrastructure described above, the gaming
machine 336 may request a game license for one or more games stored
in the gaming machine from a remote server acting as a game license
server such as 124. The game license server may send a game license
reply message containing a game license which allows the gaming
machine to present the one or more games stored on the gaming
machine. These game license requests may be performed prior to each
game or the license may allow game play for some finite time
period. For instance, the game license may be an annual license, a
monthly license, a daily license, a per-use license or a site
license. Details of the game license request and reply process
between a gaming machine and a remote server are described with
reference to FIGS. 6 and 7.
[0097] In another example, the gaming machine 336 may send a
maintenance request message to a remote server when the gaming
machine malfunctions. After receiving the maintenance request
message, the remote server may perform one or more remote
diagnostics on the gaming machine 336 via one or more diagnostic
request messages. The remote diagnostics may include both software
and hardware diagnostics. In addition, the remote server may
develop service priority list based upon a plurality of maintenance
requests received from a group of gaming machines in communication
with the remote server. In yet another example, a remote server may
obtain software version information or gaming configuration
information, from gaming machine 336, by sending a software version
request message or a gaming configuration request message to the
machine. Information contained in these messages may be used to
provide software updates and gaming configuration updates to the
gaming machine 336.
[0098] In a further example, the gaming machine 336 may generate a
digital signature or some other type of unique identification
information and may send a digital signature verification request
or an identification verification request to a remote server. The
verification request may be part of an electronic fund transfer.
After receiving authorization from the remote server in an
authorization reply, the gaming machine 336 may send a fund
transfer request with fund transfer information to the remote
server and may receive a fund transfer reply authorizing the gaming
transaction.
[0099] A remote server may also provide performance reports or
other services for the gaming machine 336. For instance, the gaming
machine 336 may send a report request message to the remote server
124 requesting a performance report for the gaming machine over
some prior time period. After remote server generates the report,
it may be sent back to the gaming machine 336 or some other access
point for display. For instance, the report may be displayed on a
display screen of the gaming machine 336, a computer 316 located in
the store 140 or on a portable network access point 134 located
outside of the store.
[0100] An advantage of the virtual network described above is that
it allows gaming services such as data acquisition, game licensing
and report generation to be provided a single gaming machine
without the use of a dedicated network which are typically
expensive. This advantage may potentially increase the utility of a
gaming machine while reducing the costs associated with operating
and maintaining a machine. In particular, for gaming establishments
with a small number of gaming machines operating in a "stand alone"
mode, a virtual network may be the only viable way to provide cost
effective gaming services via a network. The virtual network is
enabled by an encryption scheme which utilizes multiple key
encryption and symmetric encryption keys to provide secure
communication of sensitive gaming data. For each session, the
symmetric encryption keys may be randomly generated or may be
rotated by selecting from a pool of keys.
[0101] The methods described above may be applied and may be
advantageous to any gaming machine in the gaming entity 350. Also,
many different embodiments of the methods are possible. For
instance, using a wireless network interface, gaming machine 338 in
Casino 110 may send game license requests or other requests to the
database server via the router 308, the dedicated line 322, router
302 and the firewall 300. As another example, using a wireline
network interface, such as a wired Ethernet connection, a wired ATM
connection or a wired frame relay connection, gaming machine 340 in
casino 122 may send may send a gaming report request to the
database server 100 in casino 110 via the database server 112, the
firewall 310, the router 312, the local ISP 320, the internet 304,
the local ISP 315, the router 308 and the firewall 306. When a
dedicated communication network is used, encryption may be optional
over the dedicated network, e.g. if a dedicated network was used
between the gaming machine 340 and the database server 112, the
gaming machine 340 may not use encryption to send information to
the database server 112. However, the database server would apply
an encryption scheme such as the one described above before sending
out information over a public network. Returning to the example,
the database server 100 may serve as a regional report server.
After generating a gaming report reply message to the gaming report
request message from gaming machine 340, the database server 100
may send a message to the database server 124 in the central office
142 acknowledging that a report was generated.
[0102] The virtual network may also allow remote access to gaming
information such as gaming performance information at various
gaming establishments in the gaming entity from mobile access
points. For example, the remote access point 134 may be a portable
computer with a wireless modem. Typically, the remote access point
134 will have a high level of security such as special access
software. Using the remote access point 134, a user such as a
travelling employee of the game entity may access gaming
information at casino 110 or casino 122 via the local ISP 314. The
access may be routed through the central office 142 or may be
routed directly to one of the casinos bypassing the central office.
In addition, different access privileges may be accorded to
different remote users. For instance, one remote user may be able
to access information from any establishment in the gaming entity
while another may only be able to access information from a
particular establishment.
[0103] FIG. 4 is an interaction diagram showing communications
between a gaming machine, local server, local ISP and remote server
over a public network. The diagram provides some details of a
communication process between a gaming machine 340 in casino 122
and the database server 122 in the central office 142 as described
with reference to FIG. 3 for one embodiment of the present
invention. In 400, the gaming machine 340 may perform a gaming
transaction such as a coin-in, initiating a game play or a
coin-out. In 402, the gaming machine 340 symmetrically encrypts
gaming transaction data from one or more gaming transactions using
a symmetric encryption key. In 404, the symmetric encryption key
may be encrypted using an asymmetric encryption key such as public
key in a public-private encryption scheme which may only be
decrypted using a matching private key at the message destination.
For each gaming transaction, a symmetric encryption key is selected
from a pool of symmetric encryption keys or randomly generated.
Thus, the symmetric encryption key varies from gaming transaction
to gaming transaction. When a dedicated or private communication
network is used and extra security is desired, the symmetric key
may also be asymmetrically encrypted with an asymmetric encryption
key which is non-public. In 406, a message may be generated and the
encrypted data and key may be sent to a local server 112.
[0104] As previously described with reference to FIG. 3, the
encrypted information may be encapsulated in multiple information
packets using a TCP/IP communication protocol. In addition other
communication protocols such as a frame relay communication
protocol, an ATM communication protocol or combination of protocols
may also be utilized. Prior to sending the data, the gaming machine
may look up the IP address and/or the UID of the remote server
which may be stored in a memory on the gaming machine. When a
dedicated communication network is used between the gaming machine
and the remote server, such as local server 112, the encryption
process performed by the gaming machine may be optional. Prior to
sending the message, the gaming machine 340 may generate one or
more signatures that allow the receiver of the message to
authenticate the sender of the message as well as the accuracy of
the data contained in the message. These signatures may be appended
to the message or incorporated in the message in some manner.
[0105] In one embodiment, the gaming machine 340 may by-pass the
local server and may send a message to the remote server 124 via
the local ISP 320. In some embodiments, a local server may not be
available to the gaming machine, such as gaming machine 336 in the
store 140 in FIG. 3. In 438, when communications are not
established between the local ISP 320 and the gaming machine 340,
the gaming machine may contact the local ISP 320 using a network
interface and establish communications with the local ISP 320. In
440, the gaming machine 340 may send a message with the encrypted
gaming transaction data and the encrypted symmetric key to the IP
address and/or the UID of the remote server 124 via the local ISP
320.
[0106] In 408, the local server 112 receives a message from the
gaming machine 340. The local server 112 may authenticate that the
message was sent from the gaming machine 340 and determine that the
data sent in the message is complete. Next, the local server 112
may decrypt the symmetric encryption key using a private asymmetric
encryption key stored on the local server. In 410, the local server
decrypts the transaction information included in the message using
the symmetric encryption key. In 412, the local server 112 may
process and store the data generated from the gaming machine.
[0107] In 414, gaming transaction data from the gaming machine 340
may again be symmetrically encrypted using a symmetric encryption
key. The gaming transaction data may also include additional gaming
transaction data from other gaming machines. In one embodiment, the
gaming transaction data may include game usage data that allows a
game played on a gaming machine to be billed on a per use basis. In
416, the symmetric encryption key may be asymmetrically encrypted
using an asymmetric encryption key such as a public key exchanged
between the local server and the remote server 124 and a message
containing the encrypted data may be generated. Prior to sending
the message, the local server 112 may generate one or more
signatures that allow the receiver of the message to authenticate
the sender of the message as well as the accuracy of the data
contained in the message. These signatures may be appended to the
message or incorporated in the message in some manner. In 418, when
a communication has not been established between the local server
112 and a local ISP 320, the local server may contact the local ISP
320 and establish communications using an appropriate communication
protocol such as TCP/IP. In 420, the local server 112 may send a
message with the encrypted gaming transaction data and the
encrypted symmetric key to the IP address and/or the UID of the
remote server 124 via the local ISP 320.
[0108] In 422, the local ISP 320 processes and forwards the message
from the local server 112 or the gaming machine 340 to the public
network 304. In 424, the public network processes the message from
the local ISP 320 and forwards it to the remote server 124.
Processing of the message by the local ISP 320 and the public
network 304 may involve routing multiple data packets comprising
the message.
[0109] In 426, the remote server receives a message from the gaming
machine 340 or the local server 112. The remote server 124 may
authenticate the sender of the message using one or more signatures
included in the message and determine the accuracy of the data of
the message. For instance, the remote server may generate a check
sum, CRC, or other verification of the data in the message and
compare that with a check sum, CRC, or other verification of the
data generated by the sender of the message. Next, the
asymmetrically encrypted symmetric encryption key may be decrypted
using a private key residing on the remote server 124. In 428, the
symmetric key may be used to decrypt the symmetrically encrypted
data. In 428, the remote server may process and store the data. The
message from the gaming machine or local server 112 may include a
request of some type for the remote server. In 430, the remote
server may implement the request. For instance, the message may
contain a request for a game license (See FIGS. 6 and 7), a request
for a report or a request for some other game service.
[0110] In 431, the remote server may generate a reply message. The
reply message may include an acknowledgement that the original
message was received and may also include requested information.
For instance, the remote server may request diagnostic data or a
report of some type from the gaming machine. The data in the reply
message may be encrypted. Thus, in 442, the transaction reply data
may be symmetrically encrypted using a symmetric encryption key and
in 443 the symmetric encryption key may be asymmetrically encrypted
using the recipient's public key. When the reply message is
received by a gaming device, such as the gaming machine 340 or the
local server 112, the gaming device may decrypt (e.g., as in 426)
the asymmetrically encrypted symmetric encryption key using a
private key stored on the gaming device.
[0111] In 432, the remote server sends the reply message to the
local server 112 and/or the gaming machine 340 via the public
network 304. The remote server 124 may access the public network
via an ISP local to the remote server 124. In 434, the local server
may receive a reply message and store data included in the message.
In some embodiments, the acknowledgement may be forwarded to the
gaming machine 340. In other embodiments, the local server 112 may
be by-passed or a local server 112 may not be available to the
gaming machine 340 and the reply message may be received directly
by the gaming machine 340 via the local ISP 320.
[0112] FIG. 5A is a flow chart depicting a method 500 of sending
transaction data between a gaming machine and one or more remote
servers. Although the method is described on a gaming machine for
illustrative purposes, the method is not so limited and may be
applied on other gaming devices such as the remote servers
described above. Thus, as described with reference to FIG. 4, the
gaming machines and remote servers may send messages with encrypted
data to one another in a similar manner. In 505, the gaming machine
performs one or more gaming transactions. For example, a gaming
transaction may be a coin-in or a payout on the gaming machine.
Information from one or more gaming transactions may be stored in a
non-volatile memory located on the gaming machine. In 510, the
gaming transaction data may be symmetrically encrypted using a
symmetric encryption key. The encrypted gaming transaction data may
include data generated from a single gaming transaction or multiple
gaming transactions. The symmetric key may be selected from a pool
of symmetric keys or may be randomly generated such that the
symmetric key is varied each time gaming transaction data is
encrypted. In 515, the symmetric encryption key may be
asymmetrically encrypted using a public key that was previously
exchanged between the gaming machine and the recipient of the
message. In the case, where a dedicated network is used the
asymmetric encryption key is non-public i.e. it is not readily
available to the public.
[0113] In 518, the gaming machine generates a message containing
the symmetrically encrypted gaming transaction data and the
asymmetrically encrypted symmetric encryption key over a
communication protocol such as but not limited to TCP/IP. The
message may include additional information such as signatures to
authenticate the sender of the message, signatures to validate the
accuracy of the data included in the message and an IP address
and/or an UID of the sender as well as other message routing
information. The message may also include a request for the
recipient to return information to the gaming machine. For
instance, the gaming machine may request a remote server to provide
a gaming license that allows a game to be played on the gaming
machine.
[0114] In 520, when communications have not been established
between the gaming machine and a local ISP, the gaming machine may
contact a local ISP. The gaming machine may also send messages to a
local ISP by sending the message first to a local server which may
then forward the message to the local ISP. The gaming machine may
contact the local ISP using a communication protocol such as TCP/IP
and a network interface such as a wireless modem. In 525, the
gaming machine sends the message generated in 518 to a remote site
such a game license server, a report server or some other device
via the local ISP. In 530, the gaming machine may determine when an
acknowledgement message has been received from the remote site.
When an acknowledgement message has not been received, the gaming
machine may resend the message one or more times. When the
acknowledgement message has been received, the gaming machine may
repeat process 500.
[0115] FIG. 5B is a flow chart depicting a method 550 of receiving
transaction data between a gaming machine and one or more remote.
Although the method is described on a remote server for
illustrative purposes, the method is not so limited and may be
applied on other gaming devices such as the gaming machines
described above. Thus, as described with reference to FIG. 4, the
gaming machines and remote servers may receive and process messages
with encrypted data from one another in a similar manner.
[0116] In 555, the remote server receives a message with encrypted
gaming transaction data from a gaming machine, another remote
server or some other gaming device. In 560, an asymmetrically
encrypted symmetric encryption key included in the message in 555
is decrypted using a private key stored on the remote server. In
565, the decrypted symmetric encryption key may be used to decrypt
symmetrically encrypted gaming transaction data included in the
message. In 570, the decrypted gaming transaction data or any
service requests contained in the message are processed. For
instance, gaming transaction data in the message may be
archived.
[0117] FIG. 6 is a flow chart depicting a method 600 of obtaining a
game license on a gaming machine providing game play of one or more
games. In 605, a gaming machine initiates a gaming license request.
In one embodiment, the gaming license request may be initiated when
a current gaming license on the gaming machine is about to expire.
In another embodiment, the gaming license request may be initiated
in response to a player on a gaming machine requesting a game play
of a particular game. In 610, game license request data used to
provide and implement gaming licenses is encrypted. The game
license data may be encrypted using a symmetric encryption key and
the symmetric encryption key may be asymmetrically encrypted using
a public key. The game license request data may include the
symmetric encryption key, a serial number of the software
corresponding to one or more games or some other software
identification number, a serial number of the gaming machine as
well as other machine identification information, game owner
identification information, game usage data including the number of
times a gaming license has been used and license expiration data.
The game usage data may be used to bill the gaming entity owning
the gaming license for use of the game license. The software
identification number in the gaming license data may correspond to
one or more games such as a video slot game, a mechanical slot
game, a video poker game, video blackjack game and video pachinko
game.
[0118] In 612, a game license request message is generated with the
encrypted game license request data. The game license request
message may be sent to a remote server using a TCP/IP protocol.
Thus, the game license request message may include an IP address
and/or an UID of the remote server as well as an IP address and/or
an UID of the gaming machine. The gaming machine may store the IP
addresses and/or the UIDS of one or more remote servers in a memory
residing on the gaming machine. Prior to sending the gaming license
request message, the gaming machine may look-up the IP address
and/or the UID of the destination remote server. The gaming license
request message may include one or more signatures used by the
recipient of the message to unambiguously identify the sender of
the message and to validate the accuracy of the data contained in
the message. The signatures may be generated by the gaming machine
and appended to the message.
[0119] In 615, when communications between the gaming machine and a
local ISP have not been established, the gaming machine may contact
a local ISP and establish communications. In one embodiment, the
gaming machine may not directly contact a local ISP. Instead, the
gaming machine may contact and may send the gaming license request
message to a local server which contacts a local ISP and sends the
gaming license request message. In another embodiment, the gaming
machine may send unencrypted gaming license request data to the
local server. The local server may encrypt the gaming license
request data, generate a gaming license request message and send
the message to a remote server such as a gaming license request
server.
[0120] In 620, the gaming machine sends the gaming license request
message to a remote site such as a game license server via the
local ISP. When a communication protocol such as TCP/IP is used,
the message may be encapsulated in multiple information packets. In
625, the gaming machine determines whether an acknowledgement from
the remote site has been received. When the acknowledgement from
the remote site has not been received, the gaming machine may
resend the message according to 620.
[0121] In 628, the gaming machine receives a game license reply
message. The game license reply message may include a number of
signatures used by the gaming machine to authenticate the sender of
the message and to validate the data contained in the message. In
630, the gaming machine may decrypt an asymmetrically encrypted
symmetric encryption key using a private key stored in memory on
the gaming machine and then decrypt the game license reply data
with the symmetric encryption key. The game license reply data may
include a game license for one or more games available on the
gaming machine. The game license may be an identification number of
some type that allows software on the gaming machine corresponding
to the license to be executed. The game license reply data may also
include an expiration date for the license. In 635, the gaming
machine may update game license data stored on the gaming machine
when a new game license was included in the game license reply
data. In one embodiment, the game license request message may
include game usage data without a request for a new license. In
this case, the game license reply message may include an
acknowledgement that the game license request message was received
but may not contain a new game license.
[0122] An advantage of the game license request method is that a
gaming machine owner may be able operate gaming machines including
many different types of games but only pay for each game on a per
use basis. In a "pay-as-you go" billing scheme, an operator of the
gaming machine is charged each time a game is played on the gaming
machine. At regular intervals, a usage fee may be paid by the
operator of the gaming machine to the owner's of the gaming
software used on the gaming machine. The cost per use of each game
may be varied from game to game and these costs may change with
time. For example, the cost per use charged for newer gaming titles
may be higher than the cost per use charged for older gaming
titles. Thus, when a particular game is unpopular, the costs to the
gaming machine operator are minimized as compared to when the
gaming machine operator pays up front for a gaming machine with a
game that receives little game play.
[0123] Another advantage of the game license request method is that
it may also be used for other types of game service requests. For
instance, a report request message with encrypted report request
data may be generated in the manner described above and sent to a
remote server via a local ISP. When a report reply message is
received via the local ISP containing a report, the report may be
displayed to the gaming machine. In another example, a gaming
machine may send a maintenance request message via a local ISP in a
manner described above.
[0124] FIG. 7 is a flow chart depicting a method 700 of providing a
game license to one or more gaming machines using a remote server.
In 705, the remote server receives a game license request message
from a gaming machine, local server or some other device. The
message may have been received via a local ISP in communication
with the remote server. As described above, although not shown in
the flow chart, the remote server may also receive a report
request, maintenance request or some other transaction request from
the gaming machine, local server or remote device. After receiving
the message, the remote server may authenticate the sender of the
message using one or more signatures contained in the message and
validate the accuracy of the data in the message using one or more
signatures contained in the message. For instance, the remote
server may generate a checksum on the data in the message and
compare it with a checksum generated by the gaming machine on the
data in the message which was appended to the message.
[0125] In 710, the remote server may decrypt a symmetric encryption
key included in the game license request message using a private
encryption key. With the symmetric encryption key, the remote
server may decrypt the game license request data. The game license
request data may include a serial number of the software
corresponding to one or more games or some other software
identification number, a serial number of the gaming machine as
well as other machine identification information, game usage data
including the number of times a gaming license has been used,
license expiration data and game owner identification
information.
[0126] In 715, using the serial number of the gaming machine and
the other machine identification information the remote server may
identify the gaming machine. The serial number of the gaming
machine is one example of an UID that may be used with the present
invention. A table of gaming machine identification information may
be stored on the remote server. From the gaming machine
identification information, the remote server may be able to
determine the type of gaming machine and the games available on the
gaming machine. In 720, when appropriate, the remote server may
generate a new gaming license for the gaming machine. If the gaming
license request message includes a request for a gaming license not
available on the gaming machine or not enabled for some reason on
the gaming machine, then the gaming license request may be denied.
In another example, the game license request may include game usage
information for billing purposes and a new game license may not be
required.
[0127] In 725, when a new game license is generated, the game
license reply data including the new game license may be encrypted
with a symmetric encryption key and the symmetric encryption key
may be asymmetrically encrypted with a public key. In other cases,
the game license reply message may include an acknowledgement that
the message was received but may not include a new game license. In
730, the information regarding the game license request such as the
machine identification information, a type of game license request
(e.g. type of game), a time of the request and whether the request
was granted may be stored on the remote server.
[0128] In 732, a game license reply message with the game license
reply data may be generated. In 735, via a local ISP and the
Internet, the game license reply message may be sent to the local
server and/or the gaming machine. In 740, a billing request message
based upon the game usage data contained in the game license
request or the type of license requested may generated. In 745, the
billing request message may be sent to the gaming machine owner
identified in the gaming license request message.
Software Distribution with Download Authorization Using a VPN
[0129] FIG. 8 is a block diagram of gaming software distribution
network that uses a secure virtual network. In the present
invention, gaming software may be transferred between various
gaming devices, in a gaming software distribution network 90, after
receiving authorization from a gaming software authorization agent
50. The gaming software authorization agent 50 may be a
conventional data server including but not limited to a database
202, a router 206, a network interface 208, a CPU 204, a memory 205
and a firewall (not shown). The CPU 204 executes software to
provide the functions of the authorization agent 50 as will be
described below in more detail. In general, the gaming software
authorization agent 50 approves all gaming software transactions
between two gaming devices in the gaming software distribution
network and stores a record of the gaming software transactions.
Database 202 may be used to store gaming software transaction
records. Details of the gaming devices and network connections used
in the gaming distribution network 90 are described in FIG. 8.
Details of the types of gaming software transaction that may be
implemented in gaming software distribution network and the
implementation of the transactions for some embodiments of the
present invention are described with respect to FIGS. 9-14.
[0130] In the gaming industry, gaming software that is used to play
a game of chance on a gaming machine is typically highly regulated
to ensure fair play and prevent cheating. Thus, at any given time,
it is important for a gaming regulatory entity to know what gaming
software is installed on a gaming machine at any particular time.
Currently, gaming software is often programmed into an EEPROM and
installed on a gaming machine. When the EEPROM is installed in the
gaming machine, it is manually checked by a representative of the
gaming regulatory board prior to installation to ensure approved
gaming software is being installed on the gaming machine. This
process is time consuming and relatively inflexible. In the gaming
industry, there is a desire to simplify the gaming software
installation process so that gaming machine operators may more
easily reconfigure gaming machines with different gaming software
to respond to shifting customer tastes and demands. The gaming
software authorization agent 50 meets this need by allowing gaming
software to be electronically transferred between gaming devices,
such as game servers and gaming machines, in a manner that may be
easily monitored and regulated. For instance, the software
authorization agent 50 may be maintained or supervised by a gaming
regulatory agency. However, the software authorization agent 50 may
also be maintained by a gaming entity that controls many gaming
properties to track software distributions on various gaming
machines. In addition, besides monitoring electronic transfers of
gaming software, the software authorization agent 50 may also be
used to store a record of any change of gaming software on a gaming
machine such as changes resulting from a manual installation of
gaming software. For instance, a technician may manually load
gaming software on to a gaming machine using a portable memory
device storing the gaming software.
[0131] Details of gaming devices and the network connections in the
gaming software distribution network are now described. In the
present invention, gaming software may be transferred between
gaming software providers, such as 51 and 52, gaming software
distributors, such as 53 and 60, and gaming machines, such as 54,
55, 56, 57, 58 and 59. A gaming software provider may be a gaming
device, such as a game server, that is maintained by a gaming
software developer, such as IGT (Reno, Nev.), that develops gaming
software for various gaming platforms. A gaming software content
provider, such as 51 and 52, may maintain a plurality of gaming
software titles, versions of gaming software titles and gaming
software components that may be requested by another gaming device
for an electronic download. The gaming software content provider
may download gaming software to various customers after the
customer has entered a licensing agreement with the content
provider. Some details of obtaining game licenses for operating
gaming software on a gaming machine have been described above with
respect to FIGS. 6 and 7.
[0132] A set of gaming software components may be executed on a
gaming machine to play a gaming of chance. The game of chance may
include gaming software components used to play a bonus game in
conjunction with the game of chance. Thus, a complete set of gaming
software components used to play a game of chance may be downloaded
or a portion of the gaming software components needed to play a
game the game of chance may be downloaded. For instance, a complete
package of gaming software components may be downloaded to replace
a game executed on a gaming machine with a new game. As another
example, a single game software component may be downloaded to fix
an error in a game of chance executed on the gaming machine. In yet
another example, a set of gaming software components may be
downloaded to install a new graphical "feel" for the game of chance
while other gaming software components for the game are not
changed. In the present invention, any gaming device that stores
gaming software for downloads may download a complete set of the
gaming software components used to play the game of chance or
portions of a complete set of the gaming software components. Some
examples of gaming software components may include but are not
limited to: 1) a banking modules for coin-in, coin-out, credits
cards, fund transfers, 2) security modules for tracking security
events such as door open, lost power, lost communication, 3) bet
modules for handling betting configurations such as a number of
paylines, a number of coins per line and denominations, 4)
communication modules allowing a gaming device to communicate with
other gaming devices using different communication protocols and 5)
an operating system modules used in an operating system installed
on the gaming machine. Details of some of the gaming software
components that may be downloaded in the present invention are
described in co-pending U.S. application Ser. No. 10/040,239, by
LeMay et al., filed on Jan. 3, 2002 and titled "Game Development
Architecture That Decouples The Game Logic From The Graphics
Logic," which is incorporated herein in its entirety and for all
purposes.
[0133] Gaming software related to other aspects of game play and
operation of a gaming machine may also be authorized and downloaded
using the methods and hardware of the present invention. For
instance, device drivers used to operate a particular gaming device
may be downloaded from a content provider or another gaming device.
As another example, gaming software used to provide player tracking
services and accounting services may be downloaded from a content
provider or another gaming device. Even when the gaming software is
not regulated by a gaming entity, it may be useful to perform the
authorization process because the transaction records may be used
to track the distribution of the gaming software on various gaming
devices. The transaction records may be helpful to both providers
of gaming software and operators of gaming devices in determining
necessary upgrades and maintenance of gaming software on a gaming
device such as a gaming machine.
[0134] A gaming software distributor, such as 53 and 60, may
maintain a plurality of gaming software titles, versions of gaming
software titles and gaming software components that may be
transferred to another gaming device, such as a gaming device, for
an electronic download. The gaming software distributors, such as
53 and 60, may be gaming devices, such as game servers, that are
maintained by a gaming entity such as a casino. For instance, game
server 53 may be operated by a first casino and game server 60 may
be operated by a second casino. The game servers may store gaming
software that has been licensed to the gaming entity from one or
more gaming software providers such as 51 and 52. In one
embodiment, a game server may also be a gaming machine. One example
of a game server that may be used with the present invention is
described in co-pending U.S. patent application Ser. No.
09/042,192, filed on Jun. 16, 2000, entitled "Using a Gaming
Machine as a Server" which is incorporated herein in its entirety
and for all purposes.
[0135] The game servers operated by a gaming entity may be used to
provide gaming software to a plurality of gaming machines. For
instance, game server 53 may be used to provide gaming software to
gaming machine 54, 55, 56 and game server 60 may be used to provide
gaming software to gaming machines 57, 58 and 59. In one
embodiment, the game servers may be programmed to download gaming
software in response to a software request on a gaming machine. For
instance, a game player playing a game on a gaming machine, such as
55, may request to play a particular game of chance on the gaming
machine 55 which is downloaded to the gaming machine from the game
server 53. In another embodiment, the game servers, such as 53 and
60, may be used to update and reconfigure the gaming software on
one or more gaming machines. For instance, the game server 53, may
be used to regularly change the games of chance or bonus games of
chance available for play on gaming machines 54, 55 and 56.
[0136] In the present invention, gaming software transferred
between two gaming devices and communications between two gaming
devices may use a variety of network architectures including but
not limited to local area networks, wide area networks, private
networks, a virtual private network, the Internet 304 and
combinations thereof. Details of methods of using the Internet 304
in a secure manner have been described with respect with 3, 4, 5A
and 5B.
[0137] In one embodiment, gaming software and other gaming
information may be transferred between two gaming devices using a
satellite connection. For instance, the gaming information
transferred via satellite may include but is not limited to
metering information generated on the gaming machine. In a gaming
device using a satellite communication system, the gaming device is
connected to a satellite dish. For instance, a gaming machine
located in a store, as described with respect to FIG. 3, or a
cruise ship may use a satellite connection. Two standard coaxial
cables may connect the gaming device to the satellite dish. The
gaming device, such as a gaming machine, may include a satellite
modem to enable the satellite connection.
[0138] The satellite dish may send requests to the Internet 304 and
receive Internet content via the satellite 72. The satellite 72, in
turn, may communicate with a hub facility 70, which has a direct
connection with the Internet 304. Typically, the transfer rate of
information from the gaming device, such as gaming machine 59, to
the satellite 72 (uplink rate) is less than the transfer of rate of
information from the satellite 72 to the gaming device (downlink
rate). For example, the uplink rate may be 28 Kilobytes per second
while the downlink rate may be 500 kilobytes per second or higher.
However, for software downloads, a high downlink rate may only be
required for efficient gaming software downloads. Satellite
Internet services may be provided by a company such as Starband
Corporation (Mclean, Va.).
[0139] In another embodiment, gaming software and other gaming
information may be transferred between two gaming devices using an
RF connection. The gaming information transferred via the RF
connection may include but is not limited metering information
generated on the gaming machine. As one example, US Telemetry
corporation (UTSC, Dallas, Tex.), uses radio frequency
transmissions in the 218-222 MHz band to provide communications
services to fixed end point devices as well as mobile devices. The
fixed end point device may be a gaming machine located in a store
or located in a casino, such as gaming machine 54, as well as a
mobile gaming device such as a gaming machine located in a
riverboat or portable gaming device that may be carried by a player
and used to play a game of chance.
[0140] The RF network in a metropolitan service area may include
cell transceiver sites or towers, such as 84 and 86, a system hub
or master cell transceiver site, such as 82. The MCTS 82 is
connected to a Network Operations Center (NOC) 80, which is
essentially a data clearinghouse. Data is transferred from a CTS,
such as 84 and 86, to a Master CTS (MCTS) 82 through a Publicly
Switched Telephone Network. Data is transferred from the MCTS 82 to
the NOC 80 database via an ATM or a Frame Relay. Data transfer
protocol and user access to various end-point devices may be
provided through web interfaces. Thus, using an RF network and the
secured virtual network methods as described with respect to FIGS.
3, 4, 5A and 5B, gaming information as well as gaming software may
be transferred between various gaming devices. For instance, a
remote casino accounting office 142 may obtain information from
gaming devices connected to the RF network via the Internet
304.
[0141] In the present invention, records of authorizations for the
transfer of gaming software between gaming devices may be stored in
the database 202. Thus, given an initial distribution of gaming
software in the gaming software distribution network 90 for each
gaming device, the gaming software authorization records may be
used to track the gaming software distribution for gaming devices
in the gaming distribution network as a function time. This
tracking capability may be useful for various gaming entities such
as a gaming regulatory board, a gaming software content provider
and gaming operators. For instance, a gaming regulatory board may
be able to see the gaming software installed on all gaming devices
it regulates at any given time using the database 202. As another
example, a gaming software content provider, such as 51 and 52, may
be able to view gaming software requests for their gaming software
products as a function of time. In yet another example, a remote
casino accounting office 142 may be view the distribution of their
gaming software on the gaming machine under their control.
[0142] The database 202 may be partitioned and include various
security protocols to limit access of the data in transaction
database according to various criteria. For instance, a gaming
software provider 51 may be able to view records only of gaming
software transactions involving their products but not of a
competitors products. As another example, a gaming entity may be
able to view records of gaming software transactions involving
gaming machine that they operate but not view gaming software
transactions for gaming machines that another competitor controls.
Further details of an interface for providing gaming software
distributions is described with respect to FIG. 15.
[0143] FIG. 9 is a block diagram depicting software transactions in
a gaming software distribution network controlled by a software
authorization agent. Gaming software transactions between a
software authorization agent 50, a gaming software distributor 53,
a gaming software content provider 51 and two gaming machines, 54
and 55 in a gaming software distribution network are described. In
FIG. 9, the number and types of gaming devices are provided for
illustrative purposes only and the present invention is not limited
to the gaming devices shown in the Figure.
[0144] As described with respect to FIG. 8, the software
authorization agent 50 is used to authorize gaming software
transfer between two gaming devices. For instance, in 214, the
gaming software distributor 53, which may be a game server
maintained by a casino, may contact the software authorization
agent 50 to request a transfer of gaming software from the gaming
software provider 51 to the gaming distributor 53. The gaming
distributor may also contact the software authorization agent to
request a transfer of gaming software from the gaming software
provider 51 to another gaming device such as gaming machine. The
software authorization agent 50 may approve or deny the request
depending on the gaming software transaction information contained
in the request. For instance, if a gaming device, such as the
gaming software distributor 53, cannot be identified and
authenticated by the software authorization agent 50, then the
software authorization agent 50 will deny the request for the
transfer of gaming software. As another example, if the gaming
device, has requested a software title that is unknown to the
software authorization agent 50, then the software authorization
agent will deny the request for the transfer of gaming software.
Some details of this gaming software transaction are described with
respect to FIGS. 11, 13 and 14.
[0145] After receiving authorization from the software agent, the
gaming software distributor 53 may contact the gaming software
content provider 51 and receive an electronically download of
gaming software from the content provider via an electronic
transfer in 210. The electronic transfer may use the network
infrastructure and communication methods including encryption
described with respect to FIGS. 3, 4, 5A, 5B and 8. Details of this
gaming software transaction are described with respect to FIG. 11.
The gaming software may also be manually shipped to the gaming
software content distributor 53, such as through the mail or by a
courier, and then locally loaded onto a gaming device.
[0146] In one embodiment of the present invention, gaming software
transfers involving the actual transfer of gaming software occur
directly between two gaming devices as shown in 210. In another
embodiment of the present invention, gaming software transfers may
be routed through the software authorization agent 50. For
instance, to transfer gaming software to the gaming software
distributor 53, the gaming software content provider 51 sends the
gaming software to the software authorization agent 50 which then
forwards the software to the gaming software distributor. When the
software authorization agent 50 receives the gaming software it may
perform one or more checks on the gaming software to insure it has
been approved for use or just simply forward to the destination
gaming device without additional checks. All or a portion of the
gaming software transfers may be routed through the software
authorization agent 50.
[0147] In 212, prior to downloading gaming software to the gaming
distributor or any other gaming device, the gaming software content
provider 51, which may be a game server maintained by a company
that develops gaming software or owns the rights to gaming
software, may validate the gaming software transaction with the
software authorization agent 50. The gaming software content
provider 51 may send gaming software transaction information
received in a request for a transfer of gaming software received
from a gaming device, such as the gaming software distributor 53,
to the gaming software authorization agent 50. The software
authorization agent 50 may use the gaming software transaction
information to approve or reject the transfer of the gaming
software. The details of this gaming software transaction are
described with respect to FIG. 11.
[0148] After sending the gaming software to the gaming software
distributor 53, the gaming software content provider 51 may report
details of this transaction to the software authorization agent 50
in 212. For instance, the gaming software provider may generate a
gaming software transaction receipt that includes a unique digital
signature for the gaming software that was sent. Similarly, after
receiving the gaming software from the gaming software content
provider 51, the gaming software distributor 53 may report details
of this transaction to the software authorization agent 50 in 214.
For instance, the gaming software distributor 53 may generate a
gaming software transaction receipt that includes a unique digital
signature for the gaming software that was received. The software
authorization agent 50 may compare receipts from the sender and the
receiver of the gaming software to insure the correct gaming
software has been transferred between the sender and the
receiver.
[0149] The gaming software distributor 53 may be connected to a
plurality of gaming machines and other gaming devices that use
gaming software such as gaming machine 54 and 55. The connection
between the gaming distributor 53 and the gaming machines, 54 and
55 may be a local area network within a casino but is not limited
to local area network within a casino. In one embodiment, gaming
software transferred from the gaming software provider may be
targeted to a particular gaming machine, such as 55, and the gaming
software distributor 55 may forward the gaming software to the
gaming machine 55 after receiving it from the gaming software
content provider 51. The gaming machine 55 may unpack the gaming
software and calculate a digital signature. The digital signature
may be sent to the gaming distributor 53 through the local area
network and forwarded to the software authorization agent 50 to
complete the transaction.
[0150] In another embodiment, after a request from a gaming
software distributor 53, in 220, a gaming software content provider
51 may download gaming software directly to a gaming machine 54
bypassing the gaming software distributor 53. For example, a gaming
software provider 51 may download software to a gaming machine
located in a store as described with respect to FIG. 3 via a
satellite connection described with respect to FIG. 8. The gaming
machine may unpack the software, which may have been compressed,
and send acknowledgements of the transfer directly to the gaming
software content provider 51, the gaming software distributor and
the software authorization agent.
[0151] In yet other embodiments, a game server, such as the gaming
software distributor 53, may be used to reconfigure the gaming
software on a group of gaming machines, such as 54 and 55 via
software downloads 218. The game server 53 may transfer a plurality
of gaming software titles from one or more gaming software content
providers, such as 51 and store these titles on the game server.
When the gaming software is transferred from the gaming software
content provider, the gaming software content provider and the
gaming software distributor may agree to a license (see FIGS. 6 and
7) that allows for a certain number of gaming software downloads
over a specific period of time. A gaming machine operator
controlling a number of gaming machine may use a game server
storing the plurality of gaming software titles to regularly
re-distribute gaming software on gaming machines. The
redistribution of gaming software via electronic downloads may be
performed automatically, i.e., a distribution pattern may be
programmed into the game server. Also, gaming software programs may
be distributed to a gaming machine via a request from the gaming
machine. For instance, a player may request to play a certain game
on the gaming machine and the game server may transfer the
requested gaming software to the gaming machine.
[0152] The transfer of gaming software from the game server to the
gaming machine may require an approval from the software
authorization agent 50. Further, even if the an approval is not
required, gaming software transaction information may be sent to
the software authorization agent so that the gaming software
residing on any gaming machine at a particular time may be known.
Details of a gaming software transaction between a gaming machine
54, a game server 53 and software authorization agent 50 are
described with respect to FIG. 12.
[0153] The present invention is not limited to only electronic
transfers of gaming software between gaming devices. The
authorization methods may be also be applied to the manual
installation of gaming software. For example, prior to manually
installing gaming software on a gaming machine, an installation
technician may request approval of the gaming software transaction
from a software authorization agent 50 using a hand-held wireless
device. The gaming software, which may be stored on a memory device
such as CD-ROM may been shipped to gaming machine operator. Gaming
software information regarding the gaming software to be manually
installed on a gaming machine and information regarding the gaming
machine may be entered into the hand-held wireless device and then
sent to the software authorization agent. The software
authorization agent may use this information to approve the gaming
software transaction and to track the gaming software installed on
gaming machines.
[0154] In another example, a technician may use the software
authorization agent to manually check gaming software installed on
a gaming machine. The technician may read gaming software
information from a particular gaming machine and then using a
hand-held wireless device relay the gaming machine software
information and gaming machine information to the software
authorization agent 50. The software authorization agent 50 may
compare the information received from the hand-held wireless device
with gaming software information stored in a gaming software
registration database to determine whether the gaming machine has
the correct software installed on it. The software authorization
agent may send a message to the hand-held wireless gaming device
indicating whether or not the correct gaming software is installed
on a gaming machine. Further, the gaming software registration
database may contain information regarding what software is
installed on a particular gaming machine and what gaming software
upgrades are available. When performing gaming machine maintenance,
a gaming machine operator may request this information from the
software authorization agent 50 to aid in the maintenance
process.
[0155] Gaming software may be transferred between two gaming
devices using a wireless communication connection. For example,
within a casino, a game server may download gaming software to a
plurality of gaming machines using a wireless network located
within the casino. In another example, gaming software may be
downloaded from a hand-held device to a gaming machine using an
infrared communication interface. Examples of wireless
communication standards that may be supported by a wireless
communication connection and associated hardware/software include
but are not limited to Bluetooth, IEEE 802.11a, IEEE 802.11b, IEEE
802.11x (e.g. other IEEE 802.11 standards such as IEEE 802.11c,
IEEE 802.11d, IEEE 802.11e, etc.), hiperlan/2, HomeRF and IrDA.
Wireless communications may also be performed using cellular
communication technologies with cellular communication standards
used in the cellular communication industry.
[0156] As described with respect to FIG. 8, the software
authorization agent 50 may include a gaming software transaction
database. The gaming software transaction database may be used to
track the distribution of gaming software on various gaming
machines. For instance, in 216, a gaming software content provider
may request a report regarding downloads of their gaming software
from game servers to gaming machines. The software authorization
agent 50 may receive the request, query the gaming software
transaction database and generate a report for the gaming software
content provider. This type of report may also be generated for a
casino operator with many game servers distributed over gaming
properties. Advantages of the gaming software transaction database
is that it may provide an electronic data trail for billing,
security, auditing, dispute resolution, game usage and market
trending involving the transfer and the use of gaming software.
[0157] FIG. 10 is an interaction diagram between a gaming software
distributor 53, gaming software provider 51 and a software
authorization agent 50 depicting an initialization of a gaming
software transaction for one embodiment of the present invention.
The example is provided for illustrative purposes only. A number of
operations used to perform a given function in the gaming software
transaction process, an order of the operations and information
used in each operation may be varied and is not limited to the
examples described with respect to FIGS. 10-15.
[0158] In 902, the distributor 53 generates a session request
message for the transfer of gaming software and sends the session
request message to the agent 50. The initial session request
message may comprise gaming software information that is used by
the agent 50 to authenticate the identity of the gaming device
requesting the session. For instance, prior to beginning the
session request, the distributor 53 and the agent 50 may have
exchanged public encryption keys and other security information
that may be used to establish the identity of the sender of a
message to the agent 50 and to identify messages sent from the
agent 50. Details of exchanging encryption keys in a secure manner
which may be applied to the present invention are described in
co-pending U.S. application Ser. No. 09/993,163, by Rowe et al.,
filed Nov. 16, 2001 and entitled "A Cashless Transaction
Clearinghouse," which are incorporated herein by reference in its
entirety and for all purposes. The message request may also include
additional information that is used in a later software transfer
request such as a software title, information regarding the sender
of the gaming software and information regarding the receiver of
the gaming software. The additional information may be used by the
agent 50 after the identity of the session requestor has been
authenticated.
[0159] In 906, the agent 50 receives the session request message
from the distributor 53. The agent 50 may attempt to validate the
distributor 53 by checking information about the distributor 53,
such as its licensing status and access status to the agent 50.
Transfers s of gaming software may be a revocable privilege that is
granted to a gaming operator. Thus, status checks of session
requestor may be necessary. When the session requester, e.g., the
distributor has been validated, the agent may initialize an
authentication sequence.
[0160] In 908, the agent 50 may send an authentication message
containing a symmetric encryption key, K(M). K(M) is stored by the
agent 50. A symmetric encryption key is used to decrypt information
encrypted with the symmetric encryption key. The authentication
message including K(M) and any other additional information is
encrypted with a public encryption key, M(P), used by the
distributor 53. M(P) was previously received, authenticated and
stored by the agent 50. The public encryption key M(P) is part of a
public-private asymmetric encryption key pair comprising M(P) and
M(PP), where only the distributor 53 should have knowledge of the
private key. In an asymmetric encryption key pair, only the private
key of the encryption public-private key pair may be used to
decrypt information encrypted with the public key.
[0161] In 910, when the distributor 53 receives the authentication
message, it decrypts the message with its private key, M(PP) which
corresponds to the public encryption key M(P). In 912, the
distributor 53 generates and sends an acknowledgement message
encrypted with K(M). In 914, when the agent 50 receives the
acknowledgement message, it decrypts it with the session key K(M)
stored in 906. Since only the distributor has the private key M(PP)
needed to decrypt K(M), when a correct acknowledgement message is
received, the distributor 53 is authenticated. The agent 50 may
generate and send an additional message acknowledging the
distributor has been authenticated and may now proceed with a
gaming software download request.
[0162] In 916 and 918, the distributor 53 may generate a software
download request message and send it to the agent. The download
request message may include combinations of gaming software
transaction information selected from but not limited to: a)
operator identification information for the gaming device to
receive the gaming software, b) machine identification information
for the gaming device to receive the gaming software (e.g., an
identification number for a gaming machine or a game server), c)
operator identification information for the gaming device that is
to send the gaming software, d) machine identification information
for the second gaming device, e) a gaming software title or gaming
software titles to be transferred, f) a gaming software provider
identifier such as a name of a company (e.g., IGT), g) a gaming
software version number, h) a gaming software identification number
and i) information on gaming software currently installed on the
gaming device to receive the gaming software. The download request
message may be encrypted with symmetric encryption key, K(M). In
addition, the download request message may be encrypted with the
public encryption key of the agent 50. In one embodiment, the agent
50 may send a request to a gaming device requesting the software
currently installed on the gaming device for tracking and
regulatory purposes. Further, once it is determined what gaming
software is installed on a plurality of gaming machine, the process
of upgrading and fixing errors in gaming software may be
simplified.
[0163] In 920, the agent 50 receives the download request message,
decrypts the message and evaluates the request. In one embodiment,
the download request information may be included in the session
request message sent in 904. Thus, after authenticating and
identity of the distributor 53, the agent 50 may begin processing
the request in 920 without receiving additional information from
the distributor 53. To evaluate the download request, the agent 50
may compare gaming software transaction information in the request
message with information stored in a database. For instance, the
request message may include a location, address and identification
number for a gaming device that is to receive the gaming software.
The agent 50 may compare this information with information from a
database containing information for gaming devices that are allowed
to receive gaming software downloads. The agent 50 may only
authorize the download request when the gaming device
identification information in the request message matches the
gaming device identification information stored in the database. In
another example, the request message may include gaming software
identification information such as a title, version number and
manufacturer. The agent 50 may only authorize the download request
when the gaming software identification information in the request
message matches gaming software identification information
contained in a database used by the agent 50.
[0164] In 922, when the download request is approved, the software
authorization agent creates a gaming software transaction record
and stores the record to a gaming software transaction database.
The gaming software transaction record may include but is not
limited to gaming software transaction information such as: a) a
symmetric encryption key, K(S), that will be used to transfer the
gaming software from a first gaming device to a second gaming
device, b) a time that the transaction was initiated, c)
transaction expiration time, d) a destination ID number (e.g., a
number identifying a casino), e) an identification number of the
gaming device on which the software is to be installed, f) a gaming
software identification number, g) a software title, h) a game
signature for the gaming software such as from a CRC or a hash, i)
a manufacturer's identification number, j) a public encryption key
used by the manufacturer and k) a transaction number for the
record. In some embodiments, the gaming software transaction record
may include a number of permitted downloads of the gaming software.
For instance, a gaming software program may be loaded to a game
server. Each time the game server downloads the gaming software to
a gaming machine, it may request permission from the software
authorization agent 50 using the transaction number in the original
record. The software authorization agent may authorize the game
server to download the software to a gaming machine as long as the
number of permitted downloads has not been exceeded.
[0165] In 922 and 923, the software authorization agent may send an
approval message with all or a portion of the gaming software
transaction information stored in the gaming software transaction
record to the gaming software distributor. The message may be
encrypted with the session key, K(M), generated in 906. In 924, the
distributor 53 may receive the message, decrypt it using the
session key, K(M), and generate an acknowledgement message. In 926,
the software distributor 53 may send the acknowledgement message to
the authorization agent 50. In 928, the authorization agent 50 may
receive the acknowledgement and store the record for the gaming
software transaction. In 930, the gaming software agent may send a
notification message to the gaming software provider 51. The
message may notify the gaming software content provider 51 that a
gaming software transaction has been authorized that allows some of
the provider's 51 to be transferred to another gaming device.
[0166] FIG. 11 is an interaction diagram between a gaming software
distributor, a gaming software provider and a software
authorization agent depicting a gaming software transaction. In
850, the distributor may generate a software download request
message. The download request message may include gaming software
transaction information generated in the gaming software
transaction request described with respect to FIG. 10. The download
request message may also include a session key, K(S), encrypted
with the provider's public encryption key. In 852, the distributor
53 sends the request to the provider 51. In 854, the provider 51
receives the message and decrypts the session key, K(S), with the
provider's private encryption key. In 854, the provider generates
an acknowledgement message encrypted with the session key K(S). In
856, the provider 51 sends the message to the distributor 53. In
857, the distributor receives the message and decrypts it with the
K(S) received from the software authorization agent 50 in the
authorization message.
[0167] In 859, the software provider 51 may optionally generate a
download request message to validate the gaming software
transaction requested by the distributor. The download request
message may include gaming software transaction information, such
as a transaction number, received from the distributor 53. In 858,
the provider 51 may optionally send the download request message to
the authorization agent 50. The message may be encrypted with the
agent's public encryption key. In 860, the agent 50 may receive the
download request message from the provider, decrypt it and compare
the gaming software transaction information in the message with a
gaming software transaction information stored in a gaming software
transaction record corresponding to the request. When the request
is valid, the agent 50 may generate a download reply message
authorizing the provider 51 to transfer the gaming software. When
the request is invalid, the agent 50 may generate a download reply
message requesting the provider 51 not to send the gaming software
to the distributor 53. In 864, the agent sends the download request
message to the provider 51. In 862, the agent may store a record of
the download request and whether it was authorized or not
authorized.
[0168] In 866, the provider 51 may generate a download reply with a
receipt. In one embodiment, the download reply may require the
authorization of the agent 50. In another embodiment, the download
reply may be sent without approval from the agent 50. The download
reply may include but is not limited to a game package with the
following information: 1) the requested game software, 2) the
expiration date of the game or a number of plays until expiration
which may be built into the gaming software, 3) a destination
machine number (in some embodiments, the gaming software may be
designed to operate only on a particular machine), 4) a destination
address (e.g., a casino name), 5) a time stamp for the transaction,
6) a digital signature generated for the game (e.g., a CRC or a
Hash of the game software), 7) the transaction number received from
the distributor. The download reply may also include a separate
receipt including but not limited to the following information: a)
game title or identification number, b) original game transfer
request data received in the request from the distributor 53, c)
destination machine's identification number, d) destination address
and e) a transaction number.
[0169] The download reply may be compressed to reduce the
information transferred. The download reply may also include
information regarding the compression algorithm used so that the
destination device may properly uncompress the download reply. The
download package and the download receipt may be encrypted with
combinations of a public encryption key used by the destination
gaming device and the session encryption key, K(S). In one
embodiment, the download package and reply may be routed through
the software authorization agent 50 which may perform checks on the
gaming software before forwarding it to the destination gaming
machine. Thus, the download package and receipt may be encrypted
with the public encryption key used by the software authorization
agent 50.
[0170] The download package and the download receipt may go to
separate gaming devices. In one embodiment, the download package
may be forwarded by the distributor 53 to a destination gaming
device such as a gaming machine and the receipt may be forwarded to
another gaming device for accounting purposes. In another
embodiment, the receipt and download package may go to the same
gaming device such as a game server operated by the gaming software
distributor 53. In 868, the content provider 51 may send a receipt
encrypted with the session key, K(S) to the agent 50. Since only
the provider 51 and the distributor have the session key, K(S), the
identity of the provider 51 may be authenticated. In 870, the agent
50 may receive the receipt, decrypt it and store gaming software
transaction information contained in the receipt.
[0171] In 872, the provider sends the download reply with the
gaming software and receipt to the distributor 53. In 874, the
distributor 53 receives the download message, the message may be
forwarded to a destination gaming device or may be stored on a game
server. The destination gaming device may decrypt the download
message, unpack the gaming software, which may include
uncompressing the gaming software, and generate a digital signature
for the gaming software. The digital signature may be generated
using an algorithm such as a CRC or a Hash. In 876, the destination
gaming device may send an acknowledgement message to provider
indicating it has received the download message with the gaming
software.
[0172] In 878, the gaming software distributor 53 generates a
receipt. The receipt may include but is not limited to the
following information: a) game title or identification number, b)
original game transfer request data received in the request from
the agent, c) destination machine's identification number, d)
destination address and e) a transaction number. The receipt may be
encrypted with the session encryption key, K(M), exchanged between
the agent 50 in the distributor as described with respect to FIG.
10. Thus, when the agent 50 receives the receipt and decrypts it
with K(M), the identity of the distributor may be
authenticated.
[0173] In 879, the distributor 53 sends the receipt to the agent
50, the agent decrypts the receipt. In 880, the agent 50 may
compare gaming software transaction information in the receipt
received from the provider 51 in 868 with gaming software
transaction information from the receipt received from the
distributor 53 in 879. For example, to validate the gaming software
transaction, the agent 50 may compare the digital signature for the
gaming software received from the provider 51 in the receipt with
the digital signature for the gaming software received from the
distributor 53. When the digital signatures match, the gaming
software transaction is completed and communications are
terminated. As an additional check, the agent may compare the
digital signatures for the gaming software with a digital signature
for an approved copy of the gaming software stored in a database
maintained by the agent 50. When the transaction is complete, the
agent 50 may store a record of the transaction in a database. As
described with respect to FIG. 9, the database may be used to track
the distribution of gaming software on various gaming devices that
use the authorization agent 50. Also, the records may be used for
billing and auditing purposes.
[0174] In 880, when gaming software transaction information in the
receipts does not match, the agent 50 may send messages to the
provider 51 and the distributor 53 revoking the transaction. The
message to the provider 51 may be encrypted with the session key,
K(S) and the message to the distributor 53 may be encrypted with
the session key, K(M). The messages may also be encrypted with
public keys of public-private key pairs used by the distributor 53
and the provider 51. In response to receiving the revocation
message, the content provider 51 and the distributor 53 may repeat
the transaction. For example, the digital signatures for the gaming
software may not match because of a transmission error. In another
embodiment, the entire gaming software transaction may be revoked
and the distributor 53 may have to initiate an entirely new
transaction as was described with respect to FIG. 9.
[0175] FIG. 12 is an interaction diagram between a gaming software
distributor 53, a gaming machine 54 and a software authorization
agent 50 depicting a gaming software transaction. In this example,
the distributor 53 may be a game server operated by a casino and
the gaming machine 54 may be one of a plurality of gaming machine
in communication with the gaming server. The game server may have
been loaded with gaming software provided by various content
providers using gaming software transactions as described with
respect to FIG. 11. In general, the operations shown in FIG. 12 are
similar to those described with respect to FIG. 11.
[0176] In 950, the gaming machine 54 may generate a gaming software
request. The gaming software request may be in response to
different gaming events that occur on the gaming machine. For
example, a request may be initiated when a game player using the
gaming machine requests to play a game of chance currently not
installed on a gaming machine. As another example, the gaming
machines may include software programs that request gaming software
at particular times of the day or the week. For instance,
particular bonus games may only be provided on the gaming machines
at certain times of the day to increase player interest. In yet
another example, a software request may be generated when a game
license (see FIGS. 6 and 7) installed on a gaming machine has
expired.
[0177] In 952, the gaming machine 54 sends the software transfer
request to the distributor 53 which in this case is a game server.
In 954, the distributor 53 receives the gaming software request
message and generates an acknowledgement message. The message may
or may not be decrypted. When the gaming machine and the game
server communicate via a private local area network, such as within
a casino, encryption procedures may not be necessary. However, the
game server may communicate with a gaming machine located at
different gaming properties, such as stores, via a virtual private
network, as was described with respect to FIG. 3. In this case,
encryption procedures such as the use of public-private key pairs
and symmetric encryption keys may be used. In 956, the distributor
53 sends the acknowledgement message to the gaming machine 54. In
957, the gaming machine 54 receives the acknowledgement message and
may authenticate the sender of the message.
[0178] In another embodiment of the present invention, the gaming
software download request may be initiated by the game server. For
example, the game server may be used to regularly redistribute
gaming software on gaming machine distributed on a gaming floor
according to perceived customer desires and market trends. A market
trend may be a "hot" game that is desired by a lot of customers.
Further, the gaming server may be also used to provide regularly
software upgrades and error fixes to gaming software executed on
various gaming machines. The software upgrades and error fixes may
be prompted by notices of upgrades and fixes received from a
content provider. When the distributor 53 initiates the gaming
software transaction, the gaming machine 54 may be simply sent the
gaming software. An authentication process may or may not proceed
the game server sending the gaming software to the gaming
machine.
[0179] In 959, the distributor 53 may generate a download request
message for the requested gaming software. The request message may
have been initiated by the gaming machine 54 or the distributor 53.
In 958, the distributor sends the download request to the agent 50.
In 960, the agent 50 may generate a reply message that authorizes
or denies the transaction and store a record of the gaming software
transaction 962. In some embodiments, the distributor 53 may simply
send a record of the gaming software transaction to the agent but
not ask for or expect an approval message from the agent 50. The
agent 50 may store this record. In another embodiment, the agent 50
may have previously approved a certain number of gaming software
transfers and may determine if additional downloads are
available.
[0180] In 964, the distributor receives the download reply from the
agent 50. When an authorization has been requested and it has been
approved, the gaming distributor 53 may generate a download reply
message containing the gaming software. In this embodiment, a
receipt may not be required since the gaming software downloaded to
the gaming distributor may have already been approved by the agent
50 in a previous gaming software transaction. In 972, the download
reply with the gaming software is sent to the gaming machine 54. In
974, the gaming machine receives the download reply and may decrypt
and unpack the gaming software. The gaming machine may also
calculate one or more digital signatures for the gaming software
which may be used to validate that the software has been
successfully transferred. In 976, the gaming machine 54 may send an
acknowledgement message to the game server of the distributor 53
that it has received the requested gaming software. The gaming
machine 54 may also store a gaming software transaction record of
the gaming software download in a non-volatile memory device. The
gaming software transaction record may be used for used for
auditing and security purposes.
[0181] Optionally, in 978, the gaming machine 54 may generate a
receipt or some other type of acknowledgement message that it has
received the gaming software and send it to the authorization agent
50. In 968, the game server of the distributor 53 may also send a
receipt or acknowledgement message to the agent 50. In 970 and 980,
the agent 50 may receive the acknowledgement messages from the
gaming machine 50 and the distributor 53 and store a record of the
gaming software transaction. The agent may also use gaming software
transaction information included with the acknowledgement messages
to determine if the gaming software transaction has been correctly
carried out.
[0182] FIG. 13 is flow chart depicting a method in a software
authorization agent initializing a gaming software transaction. In
1000, the agent receives a gaming software transaction session
request message from a gaming software distributor or another
gaming entity desiring a transfer of gaming software. The transfer
of gaming software may be implemented electronically or manually.
In a manual transmission, the gaming software may be shipped to the
distributor and loaded locally onto a gaming device, such as a
gaming machine. In 1002, the authorization may check to determine
if the requester identified in the message is in a local of
database of gaming entities that are authorized to request
transfers of gaming software. When the requestor is not in the
database, in 1004, the agent may terminate the transaction and
generate a record of the attempted transaction and store the
record. Records of failed transactions may be analyzed for security
purposes.
[0183] When the requestor is in a local database, the agent may
generate a symmetric encryption key that may be used to encrypt
messages sent between the agent and the requestor and store the
symmetric encryption key. Further, for authentication purposes, the
agent may encrypt the symmetric encryption key with a public
encryption key used by the requestor and send a message with the
encrypted symmetric encryption key to the requestor. In one
embodiment, prior to the session request, the requestor and the
agent may have exchanged public encryption keys of public-private
encryption key pairs. In 1008, the agent receives a reply message
from the requester. The message may contain a symmetric encryption
key encrypted with the agent's public key. The agent decrypts the
symmetric encryption key with the agent's private key.
[0184] In 1010, the agent compares the symmetric encryption key to
the symmetric encryption key sent to the requestor in 1006. When
the encryption keys agree, the identity of the requestor is assumed
to be authenticated. In addition to a symmetric encryption key,
other types of information, such as passwords or random bits, may
be encrypted and exchanged between the requestor and agent. The
other types of exchanged information may be compared as part of the
authentication process. When the requestor is not authenticated, in
1004, the transaction is terminated and a record of the failed
transaction may be generated.
[0185] When the identity of the requester is authenticated, in
1012, the agent may evaluate and validate one or more parts of a
download request for gaming software from the requester. For
instance, the agent may determine if a requested gaming software
title has been approved for downloads or transfers. As another
example, the download request may include identification
information for a gaming device that will receive the requested
gaming software. The agent may compare identification information
for the destination gaming device with identification information
from a database of gaming devices approved for receiving gaming
software. In 1014, when the information in the download request is
not valid, the agent may generate an error message and it to the
requester. The error message may indicate detected errors in the
request such as missing information or a request for a gaming
software title unknown to the agent.
[0186] In 1016, when information in the download request has been
validated, the agent may generate an authorization record for the
gaming software transaction as previously described with respect to
FIG. 9. The agent may also generate an acknowledgement message and
send it to the requestor. In 1018, the agent may check to determine
whether a reply has been received for the acknowledgement message.
In 1014, when an acknowledgement reply message has not been
received, the agent may generate an error message and send it to
the requester. In 1020, when the acknowledgement reply message has
been received, the agent may store a record of the authorized
transaction to a database. In one embodiment, the agent may also
notify a software content provider that has been authorized to
transfer the gaming software of the pending gaming software
transaction that has been authorized.
[0187] FIG. 14 is flow chart depicting a method in a software
authorization agent of authorizing a gaming software transaction.
In 1100, the agent receives a gaming software transfer request form
a gaming device. The transfer request may describe a gaming
software transaction previously generated and authorized by the
agent. The gaming device may be a game server, a gaming machine or
any other gaming device that is allowed to receive gaming software.
Further, the gaming device may request a transfer of the gaming
software to another gaming device different from itself. For
instance, a game server may request a transfer of gaming software
to a gaming machine. In 1102, the agent may determine whether the
transfer request is a valid gaming software transaction. For
example, the transfer request may contain a transaction number and
the agent may use this transaction number to locate a gaming
software transaction record including gaming software transaction
information describing the transaction. The agent may compare the
information from the gaming software transaction record with gaming
software transaction information contained in the transfer request.
The transaction record may also include status information such as
whether the transaction has been completed or is pending and an
expiration date for the transaction, which may be checked by the
agent.
[0188] In 1104, when the gaming software transaction is invalid the
agent denies the transfer request, may send an error message and
may also store a record of the denied transfer request. In 1106,
when the gaming software transaction has been validated, the agent
may change the status of the transaction to pending and store the
status. In 1108, the agent may send a transfer reply to the gaming
device requesting the gaming device to proceed with the
transaction. In 1110, the agent may receive acknowledgement
messages from the gaming device that has sent the gaming software
(e.g., a content provider) and from the gaming device that has
received the gaming software (e.g., a gaming machine or a game
server). The acknowledgement messages may include information about
the transferred gaming software. For example, the acknowledgement
message may include a digital game signature for the gaming
software generated by the both the sender and the receiver of the
gaming software.
[0189] In 1112, the agent may validate the transaction by comparing
gaming software transaction information received from both the
receiver and the sender of the gaming software. For instance, the
agent may compare digital signatures for the gaming software
generated by the sender and the receiver. In 1114, when the
transaction is invalid, the agent may change the status of the
transaction from pending and generate an error message. The error
message may be sent to the requestor of the gaming software and the
sender of the gaming software and identify any deficiencies
detected by the agent. In 1116, when the transaction is valid, the
agent may change the status of the transaction to downloaded and
store additional information in the transaction record such as the
time that the transaction was completed. In 1118, the agent may
optionally notify the requestor of the gaming software and the
provider of the gaming software that the transaction has been
successfully completed. In some embodiments, the agent may even
bill the requestor of the gaming software and arrange for an
electronic fund transfer or other payment method.
[0190] FIG. 15 is a block diagram of an interface 1200 used to
provide information about gaming software transactions generated by
a software authorization agent. The interface menu 1210 may allow a
user to view information in different formats, perform queries of a
gaming software transaction and perform other operations on gaming
software transaction data such as analyzing market trends. The
interface may be used from a remote site to access gaming software
transaction stored in a database. The access to the gaming software
transaction database may be limited according to the identity of a
particular user. For example, a gaming regulatory agency
maintaining the transaction database may be able to look at all of
the gaming software transactions stored in a database. A gaming
software content provider may be able to access transactions
involving the transfer of their gaming software. A gaming entity
such as a casino operator may be able to access transactions
involving gaming devices operated by the casino.
[0191] In 1202, 1204, 1206 and 1208, a few examples of plots that
may be derived form a gaming software transaction database are
shown. The plots are shown for illustrative purposes only and are
not limited to the examples shown in the figure. In 1202, a total
number of game downloads as a function of location are shown. This
type of plot may be generated for a gaming entity with gaming
devices at locations A, B, C and D or even a content provider that
provides gaming software to each of these locations via gaming
software transactions. In 1204, a number of game downloads as a
function of time are plotted for property A. The plot shows the
variation in game downloads from month to month. In 1206, a gaming
software distribution for five different types of games at property
A are shown. As described with respect to FIG. 9, if an initial
distribution of gaming software on different gaming devices are
known, then the gaming software transaction records may be used to
track the distribution of games on the gaming devices. In 1208, a
game distribution for the five different types of games is shown
across multiple gaming properties.
Game Software Management: Licensing Models, Downloads and
Auditing
[0192] FIGS. 16-20 describe embodiments of a system for providing
game-on-demand downloads of game software, game licensing services
and game software tracking/auditing software. The figures include a
number of system diagrams, a block diagram of software on a gaming
machine that may be used in the system and a flow chart of a
download/licensing method that may be employed in the system. The
gaming system components and gaming machines, described with
respect FIGS. 16, 17A-D, 18-20, may employ the gaming machine
hardware described with respect to FIG. 1, the VPN communication
methods described with respect to 2-5B, the software licensing
methods described with respect to FIGS. 6 and 7 and the software
download architecture, methods and tracking features described with
respect to FIGS. 8-15.
[0193] A number of embodiments of the present invention are
described with respect to FIGS. 16-20. These particular embodiments
include but are not limited to 1) uniquely identifying and
dynamically certifying each copy of game software executed in the
gaming system, 2) game licensing and usage tracking using license
tokens, 3) decreasing download times using peer-to-peer transfers
between gaming machines and network load balancing, 4) copy
protection using code embedded in game software and product
activation methods, 5) game-on-demand services in a mixed
client/host and a distributed game processing environment and 6)
redundant network mediation and service mediation to ensure
uninterrupted gaming services. The disclosed methods also address
the software management functions such as licensing validation,
licensing monitoring, licensing update, billing, accounting, and
game performance records. Prior to describing the gaming system in
FIG. 16-20, a context for the gaming system in regards to game
downloading and game licensing is provided.
[0194] An important aspect of the present invention is game
software licensing and game license management. When a gaming
platform is capable of providing multiple games to a game player
based upon a game selection made by the player or an operator, it
may be desirable from both an operator perspective and a content
provider perspective to provide capabilities for allowing more
complex game licensing methods. The operator and content provider
may use the licensing capabilities to enter into licensing
agreements that better reflect the value of the content (e.g., game
software) to each party. For instance, the licensing parties may
agree to utility model based licensing schemes, such as pay-per-use
scheme. In a pay-per-use scheme, operators only pay for game
software that is utilized by their patrons protecting them for
software titles that are "duds."
[0195] Game platforms exist that provide access to multiple
electronic games. On these devices, a game selection menu may be
provided on a video display, which offers the patron the choice of
at least two electronic games and a game player may select a game
of their choice from the games available on the gaming machine.
Typically, the choices of games available to the player are only
those licensed for play on the gaming platform. The gaming platform
may provide a manual mechanism, such as a display interface on the
gaming machine, for updating and renewing licensing on the gaming
machine.
[0196] In some game platforms offering multiple games, the games
are stored on read-only memory device, such as an EPROM chip sets
or a CD-ROM. To provide new or a different game on a gaming
platform of this type, a technician, usually accompanied by a
gaming regulator, must manually install a new memory device (e.g.
EPROM) and then manually update the licensing configuration on the
gaming machine. The gaming regulator then places evidence tape is
then placed across the EPROM. The evidence tape is used to detect
tampering between visits by the gaming regulator. Since operations
performed by entities other than a "trusted" 3.sup.rd party, such
as a gaming regulator, have been deemed untrustworthy, automatic
game downloads and automatic licensing management is not available
on these platforms.
[0197] The licensing of multiple games on a gaming machine is
described in U.S. Pat. No. 6,264,561 (Electronic Gaming Licensing
Apparatus and Method, assigned to IGT (Reno, Nev.)), which is
incorporated herein in its entirety and for all purposes. In U.S.
Pat. No. 6,264,561, multiple games may be stored on an EPROM.
Typically, the EPROM may store up to 10 games. The method for
getting a license to turn on 3 of 10 games consists of having an
operator log onto the gaming machine, select the games to activate
and obtain a request code for the selected games that allows them
to be activated. Typically, the games are licensed for a limited
time period. One disadvantage to this technique lies in the finite
capacity of the storage device (EPROM in this case). While 5 or
even 10 games can be stored on an EPROM, IGT's library of thousands
of games cannot fit. Switching to higher capacity devices such as
DVD will postpone the problem somewhat, but this device will be
eventually saturated as well.
[0198] Other disadvantages are that the games are manually
installed and activated. Thus, any changes or upgrades to the
software on the gaming machine, such as adding a new game or fixing
software on any of the games on the storage device involves
replacing the entire storage device. As the number of games on the
storage devices is increased and more games are made available on
gaming platforms, it is likely that more frequent configuration
changes on the gaming platform will be desired. As the number of
configuration changes increases, it becomes more desirable to
automate the configuration and licensing process.
[0199] One method to avoid swapping of the physical DVD, EPROM,
etc., devices that store the game programs is to electronically
download the necessary software into the gaming machine as was
described with respect to FIGS. 8-15. Software download also allows
a gaming machine to access scalable server farms and databases to
select a set of games it needs from the game library. A desire of
casino operators after games are safely downloaded is the ability
to electronically move the games around on the casino floor. Casino
managers routinely move slot machines (entire slot machine) around
the floor in search of the optimum layout. A popular new game might
be located near the door, but an older game might be better suited
in the back. A Harley-Davidson.TM. game might be moved to the front
during a Biker's convention, etc. Casinos often protect the
arrangement of slot games as trade secrets. The laborious and
costly casino floor rearrangement process needs to be expedited.
When games can be electronically downloaded, they may also be
electronically moved around the casino floor.
[0200] When a choice of games is offered, it complicates their
distribution in part because every customer (purchaser of game
software) may choose to license a unique combination of games. For
example, one may choose Blackjack, Poker, and Keno while another
chooses Poker, Twenty One, and Wheel of Fortune. One means to
provide this would be to create a custom configuration of game
software as requested by each customer. But, this "binary
packaging" can be difficult and time consuming to manage especially
in an envisioned environment where hundreds of new games may be
introduced each year and distributed to thousands of slot machines
on a typical casino floor. Another method of game licensing is to
distribute all games to every customer and use an encryption
technique that allows customers to `unlock` only the games they are
willing to buy, and install them only on the number of machines for
which they have licenses. As described above, the activation is
performed manually at the gaming machine. It is anticipated that it
will be difficult to manage manually a game inventory mix in an
environment where hundreds of new game titles may surface each
year.
[0201] Manual activation schemes enforced with encryption present
problems. Managers often change the selection and mix of games
found in a given area of the casino because it can dramatically
affect the amount of play and revenue. From the viewpoint of gaming
operators, the overhead associated with manually activating
encrypted games each time a game is added, deleted or transferred
is a deterrent to providing gaming platform with multiple games. In
addition, once the `key` has been given to `unlock` a particular
game on one machine, it may be difficult to then revoke a key
residing on a stand-alone machine. In a stand-alone machine, an
operator must manually access the interior of the gaming machine
and install software that revokes the key. Without the ability to
`lock` games once they have been `unlocked,` multiple, unauthorized
copies could operate simultaneously.
[0202] It is unacceptable to game content providers and gaming
regulators to allow the use of unauthorized and untracked software
on gaming platforms. To be properly compensated, game content
providers want to know where and how much their software is being
used. To ensure fairness, gaming regulators need to be able show
that game software residing on a gaming machine is authentic and
approved game software from an authorized content provider. In
light of the above, methods that automate the game changeover
process on gaming machine while providing an accurate record of the
software transactions for auditing purposes and for use in utility
licensing models are desirable.
[0203] In the past, a game license has been associated with the
game software and the physical gaming machine that runs it. For
example, the license may have been tied to a particular CPU or
microprocessor on the gaming machine. In future gaming systems with
gaming machines that are download enabled and contain multiple
cells or cores that are capable of running multiple "virtual
machines," it is anticipated that the game software and its license
may no longer be associated with the gaming machine on which it is
executed. In this environment, the game software may be allowed to
"float" between various gaming devices and the physical device
where the game software is "executed becomes less relevant. For
example, a casino floor could have 3000 gaming machines/game
servers with the capability of generating 10,000 games of chance
simultaneously where each gaming machine has the ability to
remotely generate a game outcome on the other gaming machines or
download game software to the other gaming machines. For the
purposes of licensing, each instantiation of a game of chance may
be viewed as a "virtual" gaming machine where each "virtual" gaming
machine may be licensed individually. Thus, a license management
system and methods are needed to manage game licenses for the
10,000 virtual gaming machines in a manner that meets the
requirements of game regulators, casino operators, gaming machine
manufacturers and game software content providers.
[0204] To implement gaming downloads for operator configuration
purposes as well as game-on-demand for game players, the concerns
and issues of many gaming interests, such as game players, casino
operators, gaming regulators and game software providers, must be
considered. The concerns and issues may include but are not limited
to licensing requirements, regulatory requirements, network
reliability and download time. Details of apparatus and methods
designed to address these concerns are described with respect to
the following figures.
[0205] In FIG. 16, the components of a gaming system 1500 for
providing game software licensing and downloads are described
functionally. The described functions may be instantiated in
hardware, firmware and/or software and executed on a suitable
device. In the system 1500, there may be many instances of the same
function, such as multiple game play interfaces 1511. Nevertheless,
in FIG. 16, only one instance of each function is shown. The
functions of the components may be combined. For example, a single
device may comprise the game play interface 1511 and include
trusted software and firmware 1509.
[0206] The gaming system 1500 may receive inputs from different
groups/entities and output various services and or information to
these groups/entities. For example, game players 1525 primarily
input cash or indicia of credit into the system, make game
selections that trigger software downloads, and receive
entertainment in exchange for their inputs. Game software content
providers provide game software for the system and may receive
compensation for the content they provide based on licensing
agreements with the gaming machine operators. Gaming machine
operators select game software for distribution, distribute the
game software on the gaming devices in the system 1500, receive
revenue for the use of their software and compensate the gaming
machine operators. The gaming regulators 1530 may provide rules and
regulations that must be applied to the gaming system and may
receive reports and other information confirming that rules are
being obeyed.
[0207] In the following paragraphs, details of each component and
some of the interactions between the components are described with
respect to FIG. 16. In FIGS. 17A-D, details of a few interactions
between the components of the system 1500 relating to software
licensing and software downloads are described in light of four
different configuration scenarios. The described interactions
relate to a limited portion of the system 1500. In FIG. 18, one
embodiment of system 1500 is described. In particular, aspects of
network efficiency are discussed. In FIG. 19, details of a gaming
machine that may be used in system 1500 are described. In FIG. 20,
a flow chart describing downloading and licensing methods
implemented on gaming machines that may be used with system 1500 is
described.
[0208] The game software license host 1501 may be a server
connected to a number of remote gaming devices that provides
licensing services to the remote gaming devices. For example, in
embodiments that are described in further detail with respect to
FIGS. 17A-D, the license host 1501 may 1) receive token requests
for tokens used to activate software executed on the remote gaming
devices, 2) send tokens to the remote gaming devices, 3) track
token usage and 4) grant and/or renew software licenses for
software executed on the remote gaming devices. The token usage may
be used in utility based licensing schemes, such as a pay-per-use
scheme.
[0209] In another embodiment, a game usage-tracking host 1515 may
track the usage of game software on a plurality of devices in
communication with the host. The game usage-tracking host 1515 may
be in communication with a plurality of game play hosts and gaming
machines. From the game play hosts and gaming machines, the game
usage tracking host 1515 may receive updates of an amount that each
game available for play on the devices has been played and on
amount that has been wagered per game. This information may be
stored in a database and used for billing according to methods
described in a utility based licensing agreement.
[0210] The game software host 1502 may provide game software
downloads, such as downloads of game software or game firmware, to
various devious in the game system 1500. For example, when the
software to generate the game is not available on the game play
interface 1511, the game software host 1502 may download software
to generate a selected game of chance played on the game play
interface. Further, the game software host 1502 may download new
game content to a plurality of gaming machines via a request from a
gaming machine operator.
[0211] In one embodiment, the game software host 1502 may also be a
game software configuration-tracking host 1513. The function of the
game software configuration-tracking host is to keep records of
software configurations and/or hardware configurations for a
plurality of devices in communication with the host (e.g.,
denominations, number of paylines, paytables, max/min bets).
Details of a game software host and a game software configuration
host that may be used with the present invention are described in
co-pending U.S. Pat. No. 6,645,077, by Rowe, entitled, "Gaming
Terminal Data Repository and Information System," filed Dec. 21,
2000, which is incorporated herein in its entirety and for all
purposes.
[0212] A game play host device 1503 may be a host server connected
to a plurality of remote clients that generates games of chance
that are displayed on a plurality of remote game play interfaces
1511. For example, the game play host device 1503 may be a server
that provides central determination for a bingo game play played on
a plurality of connected game play interfaces 1511. As another
example, the game play host device 1503 may generate games of
chance, such as slot games or video card games, for display on a
remote client. A game player using the remote client may be able to
select from a number of games that are provided on the client by
the host device 1503. The game play host device 1503 may receive
game software management services, such as receiving downloads of
new game software, from the game software host 1502 and may receive
game software licensing services, such as the granting or renewing
of software licenses for software executed on the device 1503, from
the game license host 1501.
[0213] In particular embodiments, the game play interfaces or other
gaming devices in the gaming system 1500 may be portable devices,
such as electronic tokens, cell phones, smart cards, tablet PC's
and PDA's. The portable devices may support wireless communications
and thus, may be referred to as wireless mobile devices. The
network hardware architecture 1516 may be enabled to support
communications between wireless mobile devices and other gaming
devices in gaming system. In one embodiment, the wireless mobile
devices may be used to play games of chance.
[0214] The gaming system 1500 may use a number of trusted
information sources. Trusted information sources 1504 may be
devices, such as servers, that provide information used to
authenticate/activate other pieces of information. CRC values used
to authenticate software, license tokens used to allow the use of
software or product activation codes used to activate to software
are examples of trusted information that might be provided from a
trusted information source 1504. Trusted information sources may be
a memory device, such as an EPROM, that includes trusted
information used to authenticate other information. For example, a
game play interface 1511 may store a private encryption key in a
trusted memory device that is used in a private key-public key
encryption scheme to authenticate information from another gaming
device.
[0215] When a trusted information source 1504 is in communication
with a remote device via a network, the remote device will employ a
verification scheme to verify the identity of the trusted
information source. For example, the trusted information source and
the remote device may exchange information using public and private
encryption keys as describe with respect to FIGS. 4 and 5 to verify
each other's identities. In another embodiment of the present
invention, the remote device and the trusted information source may
engage in methods using zero knowledge proofs to authenticate each
of their respective identities. Details of zero knowledge proofs
that may be used with the present invention are described in US
publication no. 2003/0203756, by Jackson, filed on Apr. 25, 2002
and entitled, "Authentication in a Secure Computerized Gaming
System, which is incorporated herein in its entirety and for all
purposes.
[0216] Gaming devices storing trusted information might utilize
apparatus or methods to detect and prevent tampering. For instance,
trusted information stored in a trusted memory device may be
encrypted to prevent its misuse. In addition, the trusted memory
device may be secured behind a locked door. Further, one or more
sensors may be coupled to the memory device to detect tampering
with the memory device and provide some record of the tampering. In
yet another example, the memory device storing trusted information
might be designed to detect tampering attempts and clear or erase
itself when an attempt at tampering has been detected.
[0217] The gaming system 1500 of the present invention may include
devices 1506 that provide authorization to download software from a
first device to a second device and devices 1507 that provide
activation codes or information that allow downloaded software to
be activated. The devices, 1506 and 1507, may be remote servers and
may also be trusted information sources. Details of a software
authorization agent 50 used to authorize the downloading of game
software are described with respect to FIGS. 9-11. One example of a
method of providing product activation codes that may be used with
the present invention is describes in previously incorporated U.S.
Pat. No. 6,264,561.
[0218] A device 1506 that monitors a plurality of gaming devices to
determine adherence of the devices to gaming jurisdictional rules
1508 may be included in the system 1500. In one embodiment, a
gaming jurisdictional rule server may scan software and the
configurations of the software on a number of gaming devices in
communication with the gaming rule server to determine whether the
software on the gaming devices is valid for use in the gaming
jurisdiction where the gaming device is located. For example, the
gaming rule server may request a digital signature, such as CRC's,
of particular software components and compare them with an approved
digital signature value stored on the gaming jurisdictional rule
server.
[0219] Further, the gaming jurisdictional rule server may scan the
remote gaming device to determine whether the software is
configured in a manner that is acceptable to the gaming
jurisdiction where the gaming device is located. For example, a
maximum bet limit may vary from jurisdiction to jurisdiction and
the rule enforcement server may scan a gaming device to determine
its current software configuration and its location and then
compare the configuration on the gaming device with approved
parameters for its location.
[0220] A gaming jurisdiction may include rules that describe how
game software may be downloaded and licensed. The gaming
jurisdictional rule server may scan download transaction records
and licensing records on a gaming device to determine whether the
download and licensing was carried out in a manner that is
acceptable to the gaming jurisdiction in which the gaming device is
located. In general, the game jurisdictional rule server may be
utilized to confirm compliance to any gaming rules passed by a
gaming jurisdiction when the information needed to determine rule
compliance is remotely accessible to the server.
[0221] Game software, firmware or hardware residing a particular
gaming device may also be used to check for compliance with local
gaming jurisdictional rules. In one embodiment, when a gaming
device is installed in a particular gaming jurisdiction, a software
program including jurisdiction rule information may be downloaded
to a secure memory location on a gaming machine or the jurisdiction
rule information may be downloaded as data and utilized by a
program on the gaming machine. The software program and/or
jurisdiction rule information may used to check the gaming device
software and software configurations for compliance with local
gaming jurisdictional rules. In another embodiment, the software
program for ensuring compliance and jurisdictional information may
be installed in the gaming machine prior to its shipping, such as
at the factory where the gaming machine is manufactured.
[0222] The gaming devices in game system 1500 may utilize trusted
software and/or trusted firmware. Trusted firmware/software is
trusted in the sense that is used with the assumption that it has
not been tampered with. For instance, trusted software/firmware may
be used to authenticate other game software or processes executing
on a gaming device. As an example, trusted encryption programs and
authentication programs may be stored on an EPROM on the gaming
machine or encoded into a specialized encryption chip. As another
example, trusted game software, i.e., game software approved for
use on gaming devices by a local gaming jurisdiction may be
required on gaming devices on the gaming machine.
[0223] In the present invention, the devices may be connected by a
network 1516 with different types of hardware using different
hardware architectures. A few examples of network architectures
that may be used with the present invention are described with
respect to FIGS. 3, 8 and 18. Game software can be quite large and
frequent downloads can place a significant burden on a network,
which may slow information transfer speeds on the network. For
game-on-demand services that require frequent downloads of game
software in a network, efficient downloading is essential for the
service to viable. Thus, in the present inventions, network
efficient devices 1510 may be used to actively monitor and maintain
network efficiency. For instance, software locators may be used to
locate nearby locations of game software for peer-to-peer transfers
of game software. In another example, network traffic may be
monitored and downloads may be actively rerouted to maintain
network efficiency.
[0224] One or more devices in the present invention may provide
game software and game licensing related auditing, billing and
reconciliation reports to server 1512. For example, a software
licensing billing server may generate a bill for a gaming device
operator based upon a usage of games over a time period on the
gaming devices owned by the operator. In another example, a
software auditing server may provide reports on game software
downloads to various gaming devices in the gaming system 1500 and
current configurations of the game software on these gaming
devices.
[0225] At particular time intervals, the software auditing server
1512 may also request software configurations from a number of
gaming devices in the gaming system. The server may then reconcile
the software configuration on each gaming device. In one
embodiment, the software auditing server 1512 may store a record of
software configurations on each gaming device at particular times
and a record of software download transactions that have occurred
on the device. By applying each of the recorded game software
download transactions since a selected time to the software
configuration recorded at the selected time, a software
configuration is obtained. The software auditing server may compare
the software configuration derived from applying these transactions
on a gaming device with a current software configuration obtained
from the gaming device. After the comparison, the software-auditing
server may generate a reconciliation report that confirms that the
download transaction records are consistent with the current
software configuration on the device. The report may also identify
any inconsistencies. In another embodiment, both the gaming device
and the software auditing server may store a record of the download
transactions that have occurred on the gaming device and the
software auditing server may reconcile these records.
[0226] There are many possible interactions between the components
described with respect to FIG. 16. Many of the interactions are
coupled. For example, methods used for game licensing may affect
methods used for game downloading and vice versa. For the purposes
of explanation, in FIGS. 17A-D, details of a few possible
interactions between the components of the system 1500 relating to
software licensing and software downloads are described in light of
four different configuration scenarios. The scenarios are selected
to illustrate particular interactions in the game system 1500.
These scenarios are provided for the purposes of explanation only
and are not intended to limit the scope of the present
invention.
[0227] In FIG. 17A, the interactions between the components are
described for a one configuration of game software on a group of
devices to illustrate aspects of the present invention related to
central control of software licensing. The present invention is not
limited to centrally controlled licensing of software. Thus, in
FIG. 17B, an example of distributed licensing control is described.
In FIGS. 17C and 17D, scenarios are described involving concurrent
licensing and game downloads.
[0228] In FIG. 17A, a scenario is described where a game licensing
server 1552 controls licensing for a group of gaming devices, such
as 1550, in communication with the game licensing server 1552. The
licensing server 1552 centrally controls the licensing of game
software for the group of gaming devices and as described with
respect to FIG. 16 may be a "trusted" information source (Licensing
Centrally Controlled). In the scenario of FIG. 17A, the game
licensing server 1552 also centrally monitors usage of software for
the group of gaming devices (Central Usage Monitoring). For
example, the game licensing server 1552 may compile reports of how
many times a particular game has been played on each the gaming
devices it monitors and what was the take for the game. Downloading
of game software is not described with respect to this figure and
the licensing is discussed with respect to software currently
residing on the gaming devices (Software on Device).
[0229] The game licensing server may centrally control licensing
for the group of gaming devices and it may be configured to apply
group-licensing rules (Group Licensing Rules). Further, the game
licensing server may be operable to divide the group of devices it
monitors into a number of sub-groups for the purposes of software
licensing on these devices. In the present invention, the game
licensing server may be able to apply group licensing rules that
are dependent on a status of licenses granted to a group of gaming
devices, are dependent on properties of the gaming devices in the
group or combinations thereof.
[0230] When the group licensing rules are dependent on the status
of the licenses granted to a group of gaming devices, an individual
license for game software on a particular gaming device may be
granted based upon how related licenses are being utilized in the
group of gaming devices. For example, the number of licenses
available for a particular game may be limited to a certain number.
Thus, when all of the licenses for the particular game are being
used, no more licenses for this game may be granted until one of
the licenses being used is freed up. The relationship between
licenses is not limited to a particular game. For example, the
number of licenses for a group of different games may be limited
but the licenses may be distributed between the games in the group
in any combination as long as the number is less than the
limit.
[0231] When the group licensing rules are dependent on properties
of the gaming devices in the group, the requesting gaming device
may have to meet certain qualifications to receive a license. Thus,
even when a license is available, a license may not be granted to
the requesting gaming device if it is not qualified. As an example,
the requesting gaming device may have to meet qualifications, such
as a denomination of game play, a location on the casino floor, a
manufacturer of the gaming machine, a software version, operating
system, memory capacity, CPU speed, etc, to receive a license for
selected game software.
[0232] As described above, game software licenses may be granted to
a requesting gaming devices independent of how licenses have been
distributed to other gaming devices in communication with the game
licensing server. As an example, for a particular game, the
game-licensing server 1552 may have an unlimited number of
licenses. When a license is requested for the game with unlimited
licenses, depending on the properties of the gaming device
requesting the license, the game licensing server 1552 may or may
not be grant the license. As an example, the game licensing server
1552 may have an unlimited licenses but may only grant the licenses
to certain models of gaming machines with a denomination of game
play that is higher than some limit and that meet the
hardware/software requirements for the game.
[0233] A particular example where group licensing may be important
is in an environment, such as an Indian casino, where the total
number of slot games that may be used is limited. For example, in
California, Indian casinos are usually only allowed to have a fixed
number of wagering type gaming machines, such as video slot
machines, that are referred to as class 3 gaming machines. However,
the casinos may be allowed an unlimited number of class 2 gaming
machines that provide central determination games, such as
bingo.
[0234] In the present invention, a single gaming machine may be
configured to act as a class 3 or class 2 gaming machine. In this
mixed class 3/class 2 gaming environment, the gaming machine may be
configured to request a license from the game licensing server 1552
each time a player wishes to initiate a class 3 game on the gaming
device. When a license is available, i.e. all of the licenses are
not in use, then the game licensing server 1552 grants the class 3
license to the requesting gaming device and the player may engage
in a class 3 game play on the gaming machine. When the license is
not available, the requesting gaming device may be notified that no
class 3 licenses are available and the player may only engage in
class 2 games on the gaming machine.
[0235] In one embodiment of the present invention, the
game-licensing server 1552 may maintain a waiting list of the
gaming machines that have requested a class 3 license when a class
3 license was not available. When a class 3 license becomes
available, the gaming machine may be notified that a class 3
license is available and the player may be provided a limited time
period to begin playing class 3 games before the license is offered
to another gaming machine on the waiting list.
[0236] Gaming devices on the waiting list may be given a higher or
lower priority on the list based on different attributes. For
example, when a high roller is playing a particular gaming machine
and requests class 3 gaming but is denied, their gaming machine may
be moved to the top of the list. As another example, higher
denominational gaming machines may be given priority over lower
denominational gaming machines. Details of class II/III gaming
hardware and methods that may be used in the present invention are
described in co-pending U.S. application Ser. No. 10/955,636, by
Nguyen, et al., filed Nov. 22, 2004 and titled, "Class II/Class III
Hybrid Gaming Machine, Systems and Methods," which is incorporated
herein in its entirety and for all purposes.
[0237] In general, various accounting and prioritization schemes
can be applied to the group licensing of game software. The
accounting and prioritization of licenses can become quite complex,
because licenses may be reserved for or limited to certain groups
of users and/or gaming devices and the users playing and the gaming
machines that are active may vary with time. In addition, the
licensing rules may vary with time. Thus, certain game software may
be only available during the weekends or evenings or certain game
software may be available on a larger group of gaming machines at
one time and limited to a smaller group at other times. For
example, certain progressive games and bonus games that are most
profitable when participation exceeds some level may only be made
available during busy periods, such as on the weekend. Further, the
game licensing server may monitor participation and release
licenses when participation has exceeded a certain level.
[0238] Adding further complexity to the licensing accounting, some
game devices, such as the game play host 1503 in FIG. 16, may
execute a number of gaming applications simultaneously. These
gaming devices may provide game play to a single player or to
multiple players simultaneously. Further, each player may play
multiple games simultaneously. The licensing server 1552 may
consider many invocations of an application by the same player on
the same gaming device as one license or several licenses. For
example, a poker game and a slot game could be played concurrently
and each may require a separate license.
[0239] In addition, the accounting rules may vary from game to game
or depending on other game or gaming machine characteristics, such
as a denomination of the game. For example, playing a bingo game
with multiple cards may count as a single license while a game of
hundred hand poker may count as more than one license and each
instantiation of a particular slot game played simultaneously by a
single player on a gaming device may count as one license. As
another example, a game with a higher or lower denomination may
count as a fraction of a license or more than one license (e.g.,
1.2 licenses) depending on a licensing agreement negotiated between
a software provider and a gaming machine operator.
[0240] The accounting rules for licensing may be negotiated between
a software content provider and a gaming operator and may vary from
game software package to game software package and from vendor to
vendor. Further, some licensing rules may be imposed by a
jurisdiction. Thus, the game-licensing server 1552 may be designed
to configure itself for operation in different jurisdictions and to
apply licensing rules compatible with many different
jurisdictions.
[0241] In a particular embodiment of the present invention, a token
licensing architecture may be employed. The architecture may
utilize three components: a) a "license manager" (not shown) that
runs on the server 1552 and uses token distribution rules 1554; b)
a "software agent" 1560 that resides in a gaming device, such as a
gaming machine 1550, a game play host or a gaming device; and c) a
"software certificate" that is attached or integrated into a
software application 1562.
[0242] During boot up of a gaming device (e.g., 1550), the software
agent 1560 may be downloaded from the license server 1552 (or
invoked from mass storage in the gaming device) and may run in the
background. The software agent may determine which game software
modules require license tokens. The software agent may scan each of
the software modules to determine which of the software modules
stored on the gaming machine require license tokens.
[0243] During run-time, the software agent 1560 may provide the
license server 1552 with information about the software application
1562, such as product name, vendor name, version, etc., and
information about the user of the gaming machine, such as name,
account number, biometric information, etc., and information about
the gaming device where the software is executed, such as a
location, operator, model numbers, hardware serial numbers and time
of request. This information may be sent to the game-licensing
server 1552 in a token request message.
[0244] When the server 1552 grants the software agent 1560 a
license "token," the software agent 1560 informs the application
1562 that is has a valid token 1566. The application 1562 may
include logic for responses when a token is not available, such as
notifying the user that the token is not available. In one
embodiment, when a token is not available the software application
may be partially activated with limited set of features. The logic
for responding to the absence of a token may be included in the
software certificate 1564.
[0245] In general, in a casino gaming environment, it is
undesirable to a gaming operator to deny a player access to game
play. Thus, a gaming machine 1550 will typically provide some
default mode that will allow game play that is independent of
whether a token is available or not. For example, the gaming
operator may purchase a perpetual license for some game software so
that it is always available for play on the gaming device. As
another example, a gaming content provider may offer a package of
bundled game software with many different games where some require
tokens and others do not require tokens for activation. Thus, the
gaming machine may include a mixture of software that requires and
does not require tokens. In another example, the gaming machine
operator and game software content provider may agree to an
overdraft protection scheme where the gaming machine is temporarily
provided extra licenses in the event of requests for licenses
exceeding demand or when licenses expire. This overdraft service
may be provided for a fee.
[0246] While the software application 1562 is being run, the
software agent 1560 and the server 1552 periodically send messages
to each other. These messages might occur during a game play
session where a game player is playing a series of games of chance
on the gaming machine. During the game play session, the game
player may play only one "game" multiple times or play one game
multiple times in combination with other games that are played
simultaneously (i.e., parallel play) or one after the other (i.e.,
serial play). The player may also pause between games to collect
winnings or add credits to the gaming machine. Further, the player
may quit playing and the gaming machine may be idled.
[0247] Between the play of each game there may be a varying time
period and the gaming machine 1550 may include logic to decide
whether a software application has been terminated. The gaming
machine may determine an application has been terminated based upon
many factors, including but not limited to, 1) a length of the time
period that has occurred since the last play of a game, 2) an
amount of credits reaching zero on the gaming machine, 3) data
received from a sensor, such as a proximity sensor or a camera, 4)
combinations thereof. The software agent 1560 or other logic on a
gaming device may monitor the gaming device to determine when the
use of a particular application has ceased.
[0248] When the gaming machine decides that a software application,
such as 1562, has terminated, the software agent 1560 may return
the token for the application. The license server 1552 may store a
record of each token that is granted and returned in a token
tracking database 1556. Similarly, each gaming device, such as
1550, may store a record each time it receives a token and returns
a token.
[0249] The licensing server 1552 may be operable to reconcile token
usage in its tracking database 1556 with token usage stored on each
gaming machine. The reconciliation process may comprise querying
each gaming device for records of token it has received and tokens
it has returned over a specific time period and then finding a
corresponding record in its database. When the records do not
agree, the license server may generate an error report.
[0250] The software agent 1560 and the server 1552 may also
exchange messages to determine whether the software agent 1560,or
the server 1552 has terminated abnormally. If the application 1562
has terminated, such as due to a server or a network error, the
license server 1552 may record that the license token 1566 has been
returned. If the server 1552 has terminated, the software agent
1560 may try to reacquire a license token from a back-up license
server. If this fails, the software agent 1560 may notify the
application that it no longer has a license token. In response, the
application may 1) terminate, 2) continue running as normal, 3)
provide a warning that the application will terminate after a time
period and then terminate or 4) alter its functionality, such as
running more slowly or degrading the graphics quality.
[0251] The software agent 1560 may also send messages to the
licensing server including information about the usage of a
software application. This information may be stored in a usage
accounting database 1558. The information may include but is not
limited to a number of games played using the application 1562 and
an amount wagered on these games. The information that is collected
by the server 1552 may be collected because it is specified in a
licensing agreement and used in a billing formula defined in the
agreement.
[0252] The license server 1552 may include a license database (not
shown) or a license files that includes information about the
license tokens on the server. This information may use a message
authentication code (MAC) to protect the licensing data from being
changed by anyone other than the software content provider. In one
embodiment, the MAC may be a checksum, a hash function or a digital
signature of some type. The MAC may be applied to a file of token
distribution rules 1554. The token distribution rules may describe
how to prioritize token requests from the gaming devices monitored
by the license server 1552.
[0253] In FIG. 17B, a second licensing scenario is described. In
this example, a game licensing server 1552 and a number of gaming
devices, such as gaming machine 1550, are provided with the game
software, such as application 1562, residing on the gaming device,
as in the example described with respect to FIG. 17A (Software on
Device). Further, as described in FIG. 17A, the gaming devices,
such as 1550, report game usage to the game-licensing server 1552
and the game-licensing server may collate and generate reports on
overall game usage for devices communicating with the server 1552
(Central Usage Monitoring).
[0254] One difference between the scenarios in FIG. 17B as compared
to FIG. 17A is that some of the licensing functions are handled by
a software application, such as 1562, on the gaming device
(Distributed Licensing). In one embodiment of the present
invention, the licensing functions are integrated into the software
certificate 1564. Thus, the software certificate 1562 may comprise
data and coding instructions 1570 including but not limited to 1)
licensing rules, 2) jurisdictional rules, 3) a download history for
the application 1562, 4) duplication, movement and location rules
for the application and 5) usage history for the application.
[0255] The licensing rules may determine how the software
application 1562 may be utilized. These rules may be specific only
to software application 1562 and other copies of software
application 1562 on other gaming devices may use different software
certificates that specify different licensing rules than software
application 1562. In most central licensing schemes, the licensing
rules are usually the same for each copy of the same application.
In the present invention, they may be all different.
[0256] As an example of individual licensing, a total number of
copies of the same application may be made available in a gaming
system. A first portion of the copies may be licensed by time, a
second portion may be licensed for a number of uses, a third
portion may be perpetually licensed, a fourth portion may be
licensed to a specific gaming device, a fifth portion may be
licensed for use on multiple machines, a sixth portion may be
licensed for multiple instantiations of itself on the single gaming
device, seventh portion may be licensed for only a single
instantiation. Many such examples are possible and these rules may
also be combined, such as a timed license that allows multiple
instantiations. A benefit of individually licensing each copy of
the software it that it may allow for more flexible cost structures
that are advantageous to both the gaming operator and gaming
content provider.
[0257] The game software application 1562 may comprise a plurality
of software components where the plurality of components are
compiled to execute the application 1562. The certificate 1564 may
be built into one or more of the software components. In
particular, the certificate may be built into one or more software
components that are critical to the generation of game on the
gaming machine. For instance, the license certificate may be built
into game flow logic that controls the flow of the game on the
gaming machine. The multiple copies may be used to prevent someone
from removing the certificate 1564 from the software application
1562 or modifying the certificate in an authorized manner by making
it difficult to locate and modify all of the certificates. Details
of game software components that may be used with the present
invention and include license certificates are described in
co-pending U.S. application Ser. No. 10/040,239 previously
incorporated herein and in co-pending U.S. application Ser. No.
10/041,212, filed Jan. 7, 2002 by Breckner, et al. and entitled,
"Decoupling of the Graphical Presentation Logic of a Game From The
Presentation Logic," which is incorporated herein in its entirety
and for all purposes.
[0258] In a particular embodiment, the game software components
comprising a software application, such as 1564, may be licensed
differently. For example, a game may include a game software
component for the game flow logic and a separate component for the
presentation logic. The game flow logic may be used interchangeable
with different presentation logic components to generate games that
are different graphically but use the same game flow logic. In this
embodiment, the license certificate terms may be different for the
game flow logic as compared for presentation logic components. For
example, cost per usage may vary among the different presentation
logic components depending on the popularity of each game
corresponding to each presentation logic component while the core
game flow logic may be licensed for a fixed price.
[0259] In a similar embodiment, different modules of game software
may be licensed differently. For example, a game of chance may
comprise a base module for generating a game of chance and one or
more add-on modules for providing additional features to the game
of chance. The add-ons may include but are not limited to one or
more stand-alone bonus game modules, a progressive game module, a
group bonus game module (e.g., where a group of gaming machines are
linked together), etc. The base game module may be licensed
perpetually for fixed price while the add-on modules may be
licensed using a utility model, such as per-use. Thus, the base
game module and each add-on modules may include different license
certificates. In this example, a base game module may be always
available on the gaming device but the add-on modules and their
associated features may not be available when their license is not
properly maintained.
[0260] The gaming machine 1550 or a device in communication with
the gaming machine may be operable to calculate a licensing cost
associated with playing a game of chance. The licensing cost may be
an agreed upon charge that is provided to one or more game software
content provider(s) each time a game of chance is played on the
gaming machine. Multiple vendors may provide software used to
generate a game of chance. For example, one vendor may provide
software for a game engine that specifies a logical flow of the
game, another vendor may provide software that generates the
graphical presentation in conjunction with the game engine and
another vendor may provide software for a bonus game. Thus, when a
game of chance is played using the game engine, the graphical
presentation and the bonus game, the gaming machine or another
gaming device may calculate a licensing cost for each of the game
engine, the graphical presentation and the bonus engine so that the
three vendors can be compensated.
[0261] The licensing cost for a game of chance that is calculated
may depend on one or more of 1) a popularity of the game of chance
that is played, 2) a time that the game of chance is played, 3) a
wager amount that is made on the game of chance, 4) a type of
gaming machine on which the game of chance is played, 5) a location
in the casino of the gaming machine when the game of chance is
played, 6) a fixed cost per game, 7) a fixed cost per game that
varies as a function of time (e.g., the cost may be higher during
certain times of the day, days of the week or time of the year), 8)
a fixed cost per game that varies according to a total number of
times the game of chance has been played on the gaming machine
(i.e., the cost per use may be one value for the first hundred
times a game is played and then may increase or decrease for the
next 100 times the game is played), 9) a number of games of chance
that are being played on the gaming machine simultaneously (the
gaming machine may be operable to allow a player to play two or
more games of chance simultaneously), 10) player information of a
player playing the game of chance (e.g., a cost per game may be
varied from player to player), 11) whether the gaming machine is
linked to other gaming machines (e.g., a game of chance or bonus
game may be linked game involving multiple gaming machines), 12)
whether the gaming machine is linked to a progressive system, 13)
whether the gaming machine is linked to a bonus system, 14) whether
the gaming machine is linked to a central determination system
(e.g., a bingo game) and 15) combinations thereof.
[0262] The licensing cost may also depend a fixed or variable rate
specified in a site license. In one example, any time and instance
of a game is played at a particular site the licensing cost may be
a fixed cost that is specified in a site license. In another
example, the cost per game may depend on a rate that varies over a
total number of games played on a group of gaming machines, such as
10,000 games at 25 cents per games and 0.23 cents per game after
10,000 games. The licensing cost may also vary according to a type
of game that is played. For example, keno games may be cheaper than
slot games or card games.
[0263] In another embodiment, a gaming device may be operable to
provide a discount to a licensing cost. Licensing discounts for
games played may be provided by game software content providers for
gaming devices in certain locations or groups of gaming machines at
certain sites that are different from a licensing agreement that is
generally employed. Further, an initial licensing agreement could
change over time. To account for this, in one embodiment, a gaming
device or game accounting server may be operable to discount
licensing costs in certain situations. The discount like the basic
licensing cost may be based upon a fixed rate or a variable
formula.
[0264] The weighting for each variable may be specified in a
formula used by the gaming machine or another gaming device to
calculate the licensing cost. For auditing purposes, a record of
the variables, such as the time when a game was played, that are
used to determine the licensing cost may be stored on the gaming
machine or another gaming device.
[0265] In general, the certificates, such as 1564, may be included
in any type of software executed on a gaming device, such 1550, or
devices associated with the gaming device. For instance, license
certificates may be included in player tracking software in a
player tracking unit coupled to a gaming machine, in bonus game
software for a gaming machine, in communication software used by a
gaming device or in player tracking software used by a player
tracking server. In another example, versions of a certificate may
be included in firmware executed by gaming devices, such as bill
validators, coin acceptors, light panels and coin hoppers.
[0266] At boot-up, the software application 1562 and the software
agent 1560 are executed on the gaming machine and communication
between the game software and the software application 1562 is
established. In FIG. 17A, the game licensing server provided
centrally controlled licensing services, such as determining
whether the software application 1562 has a valid license and
granting tokens that indicate the licensing status of the software
application 1562 on the gaming machine 1550. In this example, the
gaming devices may be provided with the capability to determine
licensing status of resident software. For example, the software
agent 1560 or the software application 1562 may be operable to
determine licensing status. Nevertheless, although licensing
control may be distributed to the gaming devices, the
game-licensing server 1552 may still be used to provide to provide
tokens.
[0267] In one embodiment, the game-licensing server 1552 may be
used to provide tokens of authenticity. The game licensing server
may be configured as a "trusted" information source and store
information that uniquely identifies the software certificate 1564.
As will be described as follows, the information contained in the
software certificate may change over time. Thus, the information
stored on the game licensing server may be used to uniquely
identify software certificate 1564 may change with time so that
software certificate may be still be uniquely identified. For
instance, new CRC or hash values may be generated for the software
certificate 1564 when it is modified and these values may be sent
to the server 1552 for use in authenticating the software
certificate 1564.
[0268] In one embodiment, the software certificate may be
continually updated and new CRC or hash values may be periodically
generated, i.e., a new hash value may not be generated each time
the software certificate is update. A record of data included in
the hash may be tracked or stored. Thus, when the software
certificate has been updated since that the last hash/CRC, a
portion of data in the software certificate can be CRC/hashed to
match the last stored CRC or hash and then a new CRC or Hash value
can be generated for the added data or for the combination of old
data and new data.
[0269] As described with respect to FIG. 16, the authenticity of
the information known to both the software application 1562 and the
game-licensing server may be verified by a method such as a zero
knowledge proof or using a public-private encryption schemes. When
the software certificate 1564 is deemed to be authentic, the
game-licensing server may issue a token of authenticity. In a
manner as was described in regards to the licensing tokens, the
software application 1562 or the software agent 1560 may be
programmed to take various actions when a token of authenticity is
missing. For example, the gaming machine may be programmed to
terminate execution of the software application 1562 in the absence
of a token of authenticity. In general, the game licensing server
1552 or other devices in communication with the gaming machine 1550
may be configured to generate multiple tokens, such as but not
limited to licensing tokens, authentication tokens, a token of
jurisdictional compliance or approval, tokens permitting copying or
transfer of software, etc. The gaming machine 1550 may include
logic for operating on information contained in these tokens or the
absence of a valid token.
[0270] The jurisdictional rules may specify allowable
configurations of the software application for a single
jurisdiction or multiple jurisdictions. Coding instructions
included with the certificate 1564 may be designed to check the
configuration of the software application 1562. In one embodiment,
after an operator sets the configuration of the application 1562,
the certificate may compare the settings with jurisdictional rules
to confirm that the software application 1562 is in compliance with
the jurisdictional rules in which it is located. For example, the
certificate may compare a max bet or max jackpot setting configured
by the operator with local jurisdiction rules.
[0271] Since the software certificate 1564 may be used to enforce
licensing and jurisdiction rule compliance, it may be designed to
be inaccessible and unconfigurable to a gaming machine operator.
For example, the software certificate may be encrypted. Further,
the software application may be designed to detect and record any
attempts to modify the certificate. In addition, a trusted
information source may store a record of a CRC or a hash value for
the certificate 1564. The CRC or hash value may be used to
authenticate the certificate. As described above, for additional
security, the license certificate may be inserted randomly into
different game software components to make modification or removal
of the certificates more difficult and to insure that licensing
integrity is maintained when software is copied.
[0272] The duplication, movement and locations rules may be set to
limit movement and propagation of the software application 1562. In
the duplication rules, copies of an application may not be
permitted or a limited number of copies of an application may be
permitted. For instance, a duplication rule may allow 5 copies of
the software application to be made or may bar duplication. In an
environment allowing peer-to-peer transfer of game software between
gaming machines, the duplication rules may be used to limit the
maximum number of copies of particular software in a gaming
system.
[0273] In another embodiment, the duplication rules may be applied
to individual components of the software application. For example,
the duplication rules may permit some non-critical components of
the software application 1562, common software components or data
from the software application to be copied an unlimited number
times while other copying of critical components may be limited in
some manner. An advantage of this approach may be to allow common
software components to be distributed throughout a system to lessen
download times.
[0274] The movement rules may be used to specify whether a software
application may be moved or not. In one embodiment of the present
invention, a gaming system, such as described with respect to FIGS.
16 and 18 may include a limited number of copies of an application
that may be moved from gaming device to gaming device. After the
application is transferred from a first gaming device to a second
gaming device, it is deleted on the first gaming device. The
movement rules may specify how many times an application can be
moved or whether it can be moved at all.
[0275] The location rules may specify the types of gaming devices
on which the software application 1562 may be located and/or
executed. As an example, the game system 1500 of FIG. 16, may allow
for mobile gaming devices but only certain games may be downloaded
to the gaming devices as described in the location rules. Thus,
when the software application is copied to a gaming device, such as
a mobile gaming device, the software certificate 1564 may determine
what type of device it is located on. If it is not on authorized
device, the software certificate 1564 may prevent the software
application 1562 from executing.
[0276] The download history and the usage history may provide
records of the origins of the software and how it has been used.
For example, the software application 1562 may have been downloaded
from a content provider as described with respect to FIG. 9, to a
local game software host at a casino as described with respect to
FIG. 16, then copied from the local server to a first gaming
machine and then moved from the first gaming machine to a second
gaming machine, such as 1550. Each time the software application
1562 is moved the download history in the software certificate may
be updated. Further, the download history may be communicated to
the software agent 1560 and then communicated a remote device, such
as the game licensing server.
[0277] In a gaming environment, regulators may require an audit
trail that traces a path of a software application, such as 1562,
from a point of origin, such as a manufacturer, to its current
location, such as gaming machine 1550. Currently, an audit trail is
generated manually when software is installed on a gaming machine
by an installer generating a written record of when the software
was installed. After the software is installed, it may be secured
behind a locked door, which is sealed with evidence tape. The
current methods of generating an audit trail do not provide for
electronic transfers of game software from one gaming device to
another.
[0278] The software certificate 1564 may include records of how the
software application 1562 has been used. The software agent 1560
may monitor the game usage (e.g., count all the handle pull events,
time, coin-in events, denomination, percentage retained, location,
machine ID info, player ID info, etc.) and periodically update the
game usage data stored on the certificate 1564. Depending on the
licensing rules, the software certificate 1564 may require metering
information that is different from what is recorded by other meters
on the gaming machine. Thus, the software certificate may use its
own software usage meters to gather the usage information and/or
may utilize hardware/software meters already on the gaming device
to gather the usage information. When the software certificate is
integrated into the software application 1562, the software
certificate 1562 including its usage information may travel with
the software application 1562 when the software application 1562 is
copied or moved to another gaming device.
[0279] The usage information may be incorporated into the software
certificate 1564. In addition, the certificate 1564 may upload, via
the software agent 1560, the usage data to the server for
accounting and billing purposes. In one embodiment, an upload of
usage data on the software certificate may be triggered when game
software including a software certificate 1564 is removed to make
room for new game software that is being downloaded. Also, the
software agent 1560 may monitor and upload this data separately
from the software certificate 1564 as described with respect to
FIG. 17A. These different information sources may be used in
reconciliation reports.
[0280] The gaming machine may be operable to record specific
download history information and usage history information. A
gaming jurisdiction may specify what information has to be recorded
and these requirements may vary from jurisdiction to jurisdiction.
In one embodiment, the gaming machine 1550 may be designed to
configure itself to gather and record the download history
information as a function of the gaming jurisdiction in which it is
located i.e., to satisfy jurisdictional requirements. This
functionality may be built into the software certificate 1564.
[0281] The software certificate 1564 or the software agent 1560 may
compare the usage history against any licensing rules specifying
usage limits. For example, as described above, the licensing rules
may dictate how many times the software application 1562 may be
executed before a new license is required. When a usage limit is
exceeded, the software certificate may initiate a response of some
type as was described with respect to FIG. 17A.
[0282] In one embodiment, when a usage limit has been exceeded, the
software certificate 1562 may attempt to renew its certificate by
sending a renewal request to a remote gaming device, such as the
licensing server 1552. The software certificate 1564 may negotiate
a renewal request with the software agent 1560. After receiving the
certificate renewal request, the game-licensing server 1552 may
reply to the request based upon a number of certificate renewal
rules. For example, some certificates may be renewed a number of
times. As another example, some certificates may be non-renewable.
In yet another example, the licensing rules, duplication rules or
locations rules may be changed when a certificate is renewed and
these changes may be sent to the software certificate 1564.
[0283] When an approved renewal request is received, any rule
changes that are specified in the message may be updated on the
software certificate 1564. The update may be performed by software
embedded on the certificate, on the software agent, or other logic
on the gaming device. Further, some of the internal usage history
meters on the software certificate 1564 may be reset. These meters
may be used to compare against licensing rules in the software
certificate. For example, the software certificate 1564 may track
the total number times the software application 1562 has been used
and track a number of times it has been used since its last
renewal. When a renewal is approved, the software certificate 1564
may reset the number of times it has been used since the last
renewal to zero while it continues to track its total usage.
[0284] The software certificate 1564 provides a dynamically
updateable record that uniquely identifies how the software
application 1562 has been used. This record provides a unique
"finger print" for the software application 1562 as it changes with
time. For security, the fingerprint may be encrypted and/or stored
in one or more secure memory locations on the gaming machine and/or
at a remote location. In addition, a CRC or other one-way algorithm
may be applied to all or a portion of the software certificate,
recorded and later recalled for the purposes of verifying the
authenticity of the certificate. The logic authenticating the
certificate may be "trusted" software and/or "trusted" hardware as
described with respect to FIG. 16. For example, the software agent
1560 or logic embedded in the application may provide this
function.
[0285] Typically, in gaming environments and computational
environments in general, one copy of an application is considered
the same as any other copy of an application in that they will have
the same CRC and provide the same functions. A product activation
code or a serial number may be attached to each copy of an
application. However, this information is static, i.e., it does not
change after it has been attached to copy of a particular program.
Advantages of dynamic certification of information regarding each
copy of a software application is that it allows for detailed
auditing and complex licensing agreements that may be useful and/or
required in a gaming environment. The dynamic certification may be
applied to any of the licensing/downloading scenarios described
with respect to FIGS. 17A-D and is not limited to the example in
FIG. 17B.
[0286] In FIG. 17C, the capability of game downloading is added to
scenario #1 and some of the interactions that may arise when game
downloading and game licensing are performed concurrently are
described. As described in scenario #1 of FIG. 17A, scenario #3
includes the game license server 1552 that is operable to centrally
control licensing, apply group licensing rules and provide
centralized usage monitoring. In addition, a game software host
1572 is included. Other examples of game software hosts of the
present invention are described with respect to FIGS. 8-16
[0287] The game software host 1572 may include logic for: 1)
software auditing 1580, 2) software maintenance 1580 that may
include directing other gaming devices to purge software, 3)
software certificate generation, revocation and renewal 1574, 4)
responding to game software requests from other gaming devices and
5) software for requesting license related tokens. The game
software host may also include a game software library with a
variety of game software/firmware that is available for download
and a certificate database with records of software certificates
that have been generated or renewed on the game software host 1572.
Further, the game software host 1572 may store records of game
software download requests received from other gaming devices and
downloads generated by the server 1572. These records may be used
by the software auditing logic 1580 for reporting purposes.
[0288] In the present invention, the game software host 1572 may be
used game players and/or game operators for "game-on-demand"
services. With game-on-demand, the game players and the game
operators may select games or other applications not residing as
software on a particular gaming machine and request a download of
the application to the gaming machine from the game software host
1572. In one of embodiment of game-on-demand, a software
application menu, such as a menu of games, may be displayed on the
gaming device, such as gaming machine 1550.
[0289] When a user, player or operator, selects an application from
the menu, such as a game of chance, the application may be
downloaded. After download, the application may be executed
immediately or at some later time on the gaming device. The gaming
device may be designed to display different menus to the operator
as opposed to the player and even different players may be
presented with different menus.
[0290] In particular embodiments, the gaming machine 1550 or the
game play host 1572 may be operable to determine software
requirements (e.g., hardware and software) for the device
requesting game software. For instance, the gaming machine 1550 may
be designed to request specific game software that is compatible
with its capabilities or after determining the capabilities of a
device requesting game software the game play host may select
software that is compatible with the requesting device. Further,
after receiving the game software, a requesting device may be
operable to determine if the received game software is compatible
with its operational capabilities.
[0291] As an example, in different embodiments, the gaming machine
1550 may be a casino type gaming machine or a cell phone and game
software for the same game may be available for each device.
Nevertheless, the game software for the cell phone may be quite
different than the game software for the casino type gaming
machine. It is likely that cell phone game software may be stripped
down relative to the game software for the casino type gaming
machine. In either case, the game download transaction, between the
cell phone and the game play host 1572 or the casino type gaming
machine and the game play host 1572, may be constructed to insure
that the correct game software is downloaded in each instance to
the respective gaming devices.
[0292] In yet another embodiment, the gaming machine 1550 may be
remotely configured. For instance, an operator at a remote terminal
may be able to remotely configure the gaming machine 1550 when a
connection is established between the gaming machine 1550 and/or
the game software host 1572 and the remote gaming terminal. The
game menu may be displayed on the remote terminal and after a
selection is made a download may be triggered. In another example,
an operator carrying a hand-held device may be able to communicate
with gaming devices using the hand-held device and configure gaming
devices on the casino floor using menus generated on the hand-held
device and a communication interface between the hand-held device
and a particular gaming device or the game software host 1572.
[0293] After receiving a download request from a game software
download request from a gaming device, the game software host 1572
may send a software token request to the game licensing server
1552. The software token request may contain the same set of
information as if the gaming device were sending the token request
directly to the game licensing server as described with respect to
FIG. 17A. If the host 1572 receives a token from the game licensing
server 1552, the game software host 1572 may initiate the software
download to the requesting gaming device, such as 1550. If no
tokens are available, the game software host or the game-licensing
server 1552 may notify the gaming device that no tokens are
currently available and the gaming device may be placed on a
waiting list.
[0294] When the token is available, the game software host 1572 may
move (duplicate, transfer and delete) or copy (duplicate and
transfer) the requested software application to the gaming device.
When the software application is moved from the game software host
1572, the game software host may update one or more copies of
certificates included with the software application. For example, a
record of the time, location, data about the requesting device,
data about the sending device and other information describing the
transfer may be added to the software certificate. In addition, the
software host 1572 may also store a record of the transfer in a
local database.
[0295] As described with respect to FIG. 17A, the number of copies
that can be made of a software application may be specified in a
licensing rule. Therefore, the game software host may send copy
information, such as how many copies have been made, to the
game-licensing server 1552 when a token request is made. In some
instances, a token request may be denied based upon the how many
copies of an application have been made.
[0296] When a copy of the software application is made, the
software host 1572 may generate a new certificate for the software
application to give it a unique identity. The certificate may
include certificate information from the parent software
application from which it was copied as well as additional
information particular to the child application. This information
may provide a unique signature for the child application. As
described with respect to FIG. 17B, the game software host 1572 may
also receive and process requests for software certificate renewals
for expired software certificates.
[0297] As example of certificate generation, the child application
may be the 5.sup.th copy made from the parent software application
and this information may be included in the certificate. Further,
different usage or licensing rules may be attached to the
certificate for each copy. For instance, a copy downloaded from the
host server 1572 may be recopied at the requesting location and
sent to another gaming device or the copy may be read-only. This
information may be included in a certificate generated for the
child software application.
[0298] As described with respect to FIGS. 17A-B, the software host
1572 may perform software auditing. For example, the game software
host 1572 may send out a message to one or more gaming devices
requesting a current configuration of software on each of the
gaming devices. Further, the software host 1572 may perform
software maintenance, such as providing software updates to the
gaming device or directing gaming devices to purge old
software.
[0299] In another embodiment, for network efficiency, the game
software host may redistribute software applications throughout a
game system. For example, when peer-to-peer transfers of software
are allowed (see FIG. 18), the game software host 1572 may
determine the distribution of software on the system. Then, the
game software host 1572 may take actions, such as but not limited
to, 1) adding additional copies of a software application to the
network, 2) redistributing existing copies of the software
application in the network and 3) purging some copies of the
software application on the network. The distribution including the
number of copies of a software application in the network may be
based on factors, such as the popularity of a given software
application, current or past network performance and predictions of
distributions that will result in efficient download times.
[0300] In FIG. 17D, a fourth scenario involving game downloads and
game authorization. In addition to centrally controlled licensing,
group licensing rules and central usage monitoring, the scenario
also includes distributed game downloads and central product
activation and authentication. As described with respect to FIG.
17B, the game-licensing server 1552 may be used to authenticate
software certificates. In addition, the game-licensing server may
be used to provide product activation keys or codes when a software
application is first installed on a gaming device.
[0301] In a system with distributed game downloads, the system may
include a number of servers and/or gaming devices (e.g., 1550, 1572
and 1582) that are enabled to receive a request for download of
game software and download the software application to another
device. In FIG. 17D, device 1582 functions as both a game play
interface for generating and displaying a game of chance and a game
software host operable to download game software 1584 to another
gaming device. In this example, device 1582 may receive a request
for a download of game software from gaming machine 1550. In
response, the device 1582 may send a token request to the
game-licensing server 1552. When a token is available, the device
1582 may send a duplication or movement request to the central game
software 1572.
[0302] As previously described with respect to FIGS. 17A-C, the
movement or duplication of software applications may be limited in
a system. The central game software host 1572 may be used to
approve or reject the movement and/or duplication of software in
the system. When a duplicate copy of a software application is
made, the central game software host 1572 may also provide a
software certificate for the new copy of the application. When a
token is available and the movement or copy has been approved, the
game play interface 1582 may transfer the software application to
the requesting device, gaming machine 1550.
[0303] In a particular embodiment, the central game software host
1572 may include a game distribution system that maps which gaming
machine has which game(s) on the casino floor. The mapping of games
on the casino floor may be linked to information regarding the
network architecture and its associated capabilities (e.g.,
bandwidth of various segments), gaming machine usage data, gaming
machine hardware data and game popularity data. This data may be
used to approve or reject the movement and/or duplication of
software in the system. The game distribution system may include
applications for graphically displaying game locations, gaming
machine locations, network architecture and current usage, gaming
machine usage data and gaming popularity on a map of a casino
floor. An operator may use the graphical display to assess the
performance of the system.
[0304] The transfer of software may occur while games are being
played on one or both of the gaming devices, 1550 and 1582. For
instance, if a software transfer is going to take a significant
amount time, the gaming machine 1550 may notify the user of how
long the transfer will take and provides updates indicating the
status of the transfer. While the transfer is taking place, the
player may play another game on the gaming machine 1550 or the
gaming machine may provide another source of entertainment. On game
play interface 1582, the transfer of software to gaming machine
1550 may have occurred while a player is playing a game on the
interface and the player is likely to be aware that the transfer
took place.
[0305] As previously described, when a token is not available, the
requesting machine may be placed on a waiting list to receive the
software application has been requested. If a player has requested
the software, the player may be notified that the software is not
available and may be offered other game play options. While
waiting, the player may be informed of the status of their request
and engage in game play on the gaming machine 1550.
[0306] As described with respect to FIG. 17C, the gaming machine
1550 or the game play interface 1582 may also request software from
the central game software host 1572. Further, the gaming machine
1550 and the game play interface 1582 may also send requests to the
host 1572 to renew certificates on software applications that have
expired. In addition, both game devices, 1550 and 1582, may
communicate with the central game play host 1572 in regards to
software maintenance and auditing.
[0307] FIG. 18 is a block diagram of a gaming system 1300 and
associated network topology providing game-on-demand services. Game
players may use the game-on-demand services to select games for
game play currently not residing on a particular gaming machine and
initiate a download of the selected game to the gaming machine.
Game operators may use the game-on-demand services to alter the
game software on gaming machines and game hosts in the gaming
system 1300.
[0308] The operator or the player of the gaming machine may
initiate game software downloads from the gaming machines, such as
55, 56, 57 or 58 or the operator may remotely initiate the
download. For instance, an operator at a remote terminal may be
able to remotely configure a gaming device when a connection is
established between the gaming device and the remote gaming
terminal. In another example, an operator carrying a hand-held
device may be able to communicate with gaming devices using the
hand-held device and configure gaming devices on the casino floor
using menus generated on the hand-held device and a communication
interface between the hand-held device and a particular gaming
device.
[0309] The gaming system 1300 comprises a central game software
host 1572, a local software download authorization agent 1506 for
authorizing software downloads, a license server 1552, two software
caches, 1304 and 1306, a game play host 1503 connected to two game
play interfaces, 1511, four gaming machines, 55, 56, 57 and 58 and
five antennas 1308. The components of the gaming system 1300 are
linked using a local area network 1303. The local area network 1303
is comprised of wired and wireless connections for communications.
The wireless communications are implemented via the antennas 1308.
The local area network may be connected to a wide area network.
[0310] The gaming system 1300 is only one embodiment of the present
invention and is provided for illustrative purposes only. In other
embodiments, any number of gaming machines, game play hosts, game
clients, software caches and antennas may be employed. In other
embodiments, other servers, such as player tracking, cashless
systems, accounting, bonus, entertainment content and prize, may
also be connected to the local area network 1303.
[0311] Further, as described with respect to FIG. 16, the functions
of the various devices in the gaming system 1300 may be combined or
overlapped. For example, a single server may provide the functions
of the central game software host 1572, the local software download
authorization agent 1506 and the license server 1552. In another
example, the gaming machine, in some instances, may act as a game
software host, a software cache and/or a license server. Details of
these gaming machine functions are described with respect to FIG.
19. In addition, details of a gaming machine that may be used to
store and distribute software are described in co-pending U.S.
application Ser. No. 09/595,798 previously incorporated herein.
[0312] The components of the gaming system 1300 are not necessarily
located on a local area network and may be distributed over a wide
area network, such as described with respect to FIGS. 3 and 8. For
instance, a gaming machine may be in communication with the
licenser server via the Internet or a telephone network. In another
example, the game play host 1503 may communicate with the game play
interfaces via the Internet. In yet another example, the central
game software host 1572 may be located on a WAN 1305 and may
communicate with the gaming machines as well as the software
caches, 1304 and 1306.
[0313] A number of embodiments of the gaming system 1300 are now
described. In particular, features of the network architecture are
emphasized. These network related embodiments include but are not
limited to 1) redundant network mediation and service mediation to
ensure uninterrupted gaming services and 2) decreasing download
times using peer-to-peer transfers between gaming machines and
network load balancing. These network features are described with
respect to some of the licensing and downloading methods previously
described.
[0314] As described with respect to FIGS. 17A-D, after game
software with a built-in license certificate and a licensing agent
are executed on the gaming device, communication between the game
software and the licensing agent is established. When a game or any
other software is loaded with multiple instances of identical
license certificates that were attached to different software
components of comprising the game software, the licensing agent may
sort through the different licensing certificates to determine
whether the certificate are duplicates. If the certificates are not
duplicates and the licensing agent determines that they should be
duplicates an error condition may be generated on the gaming
machine.
[0315] After the licensing agent obtains the information on the
license certificate, the licensing agent, in the case of
centralized licensing, may make a license request for a license
token from the license manager 1552 or another device providing
licensing services. For instance, the license manager 1552, the
software cache 1304, one of the gaming machines, such as 58, or the
game play host 1503 may be operable to provide licensing services.
Thus, depending on which device is acting as a licensing server, a
license agent on gaming machine 57 may make a request for a license
token from one of these devices.
[0316] The system 1300 may include a number of redundancies, such
as alternate network paths or back-up devices, to prevent
interruptions in licensing services. For example, when the
licensing server 1552 is used for providing licensing servers and
for some reason the gaming machine 56 can't establish
communications with the license server 1552 via a first
communication path, then the gaming machine 56 may try one or more
alternate communication paths to establish communications with the
licensing server. For example, gaming machine 56 may communicate
licensing communications via a wired portion of LAN 1303. When
wired communication is not available, the gaming machine may
attempt to communicate via wired communications from an antenna on
the gaming machine 56 to an antenna on the license server 1552.
[0317] When a gaming device, such as gaming machine 55, does not
include an antenna 1308 and a wired communication connection can
not be established with a target device, then the device may
attempt to route communicates via another device that does include
a wireless communication connection. For example, the gaming
machine 55 may attempt to establish wired communications with the
license server 1552. When the wired communication link can't be
established, the gaming machine 55 or another device handling the
routing of messages may attempt to route communication through the
software cache 1304 or the gaming machine 56.
[0318] When multiple communications path are provided in a network,
the dominant or preferred mode of communication may vary from
network to network, from device to device and/or from time to time.
For example, in some networks or some portions of a network,
wireless communication paths may be the preferred mode of
communication and wired communication may provide a secondary
communication path. In other portions of the network, wired
communication paths may be preferred over wireless communication
paths.
[0319] The preferred communication path may depend on the
capabilities of the device and/or the capabilities of the
communication path. For instance, some devices may not offer
wireless capabilities and thus, wired communications may be
preferred. Nevertheless, a secondary device, such as the software
cache 1304, may be used to provide a secondary wireless
communication path. In another example, one type communication path
may be significantly faster than another communication path. Thus,
the faster communication path may be favored over the slower
communication path. However, when the faster communication path is
slowed due to usage, then the slower communication path may be more
desirable. Therefore, as stated above, the preferred communication
path may vary with time.
[0320] In one embodiment of the present invention, a software
cache, such as 1304 or 1306, may be used to provide an alternate
communication path. The software cache may provide a wired and
wireless communication path. The software cache 1304 may be coupled
to a gaming machine or may be embodied as separate stand-alone
device on the network 1303. An example of software cache that may
be used with the present invention is described in co-pending U.S.
application Ser. No. 10/187,059, filed Jun. 28, 2002 by Nguyen, and
titled "REDUNDANT GAMING NETWORK MEDIATION," which is incorporated
herein in its entirety and for all purposes.
[0321] Fast download times are important for providing
game-on-demand services. It may not be acceptable to a gaming
operator to provide game-on-demand services to game players if the
cash throughput on a gaming machine is decreased as a result of
slow download times. For example, if the number of games played on
a gaming machine is decreased because the players are waiting for
game software downloads, the gaming operator may not implement this
feature for the players. Even when the download times are relative
fast and acceptable to the game player, it may not be acceptable to
the gaming operator to provide this feature to the game players if
it results in a net decrease in gaming revenue on a gaming machine.
Nevertheless, even if game-on-demand is not provided to game
players because of download time concerns, game operators may still
desire this capability to simplify and speed-up the process of
configuring games on a group of gaming machines distributed on a
casino floor if it can be shown to be more efficient than manually
performing this task.
[0322] A number of approaches may be used to decrease download
times. The approaches that are applied may depend on a bandwidth of
the network and a size of the game software that is being
downloaded. In one example, the storage caches, 1304 and 1306, may
be used temporarily to store game software to lessen traffic on a
portion of the network 1303 when usage on the network is high.
Thus, the storage cache 1304 or another gaming device may monitor
traffic on the network 1303 and current software download times. In
another example, the storage cache 1304 may be used temporarily
while a gaming machine is being used, such as generating game play,
to prevent performance degradation on the gaming machine. In one
embodiment, the storage cache may be embodied as a component of a
player tracking unit.
[0323] In another embodiment of the present invention, peer-to-peer
transfer between gaming devices may be used to decrease download
times. For instance, gaming machine 55 may be used to transfer a
desired software program to gaming machine 56 and gaming machine 56
may be used to transfer a desired game software program to gaming
machine 58. This approach may be faster than having the gaming
devices, such as 55, 56, 57, 58, 1503 and 1511 all download their
software from a central server, such as central game software host
1572.
[0324] To allow for peer-to-peer transfers, in one embodiment, a
gaming device may randomly or using a pre-defined algorithm start
contacting its neighbors to locate a desired piece software on the
network 1303. In another embodiment, the gaming device may
broadcast a message to a plurality of gaming devices on the network
and then employ an algorithm that allows it to select a device to
use for the download when it receives more than two responses. In
yet another embodiment, one or more devices may maintain a
directory listing the location of game software on the network 1303
and the gaming device may use this listing service to locate a
nearby neighbor that can provide a fast download of the desired
game software.
[0325] In one embodiment of the present invention, a device in the
network, such as 1572, may monitor the distribution of game
software on the network 1303. Based on a current distribution of
game software, the distribution-monitoring device may redistribute
the game software on the network 1303 to decrease download times.
For example, if a group of gaming machines configured in a token
ring did not share a particularly popular game software title, then
the monitoring device might move or copy this software from one
location on the network to a gaming machine on the token ring.
[0326] Another function of distribution monitoring device may be to
seed the network 1303 with new game software. For example, when new
game software is introduce to the network 1303, the distribution
monitoring device may download the game software to a number of
devices in the network in a manner that will provide efficient
peer-to-peer transfers of game software. In one embodiment, the
distribution-monitoring device may perform this initial seeding of
game software in the network 1303 by simultaneously broadcasting
the program to a number of target devices.
[0327] FIG. 19 is block diagram of software 1400 on a gaming
machine 2 of the present invention. The gaming machine software
1400 may include Operating System (OS) software 1450. The OS 1450
may be used to load and unload game software modules, such as game
software modules 1401, download/upload software modules 1418,
download procedure software 1416, licensing procedure software
1432, game software configuration management software modules 1442
and game play hosting software 1460, from a mass storage device on
the gaming machine 2 into RAM for execution as processes on the
gaming machine. A master gaming controller on the gaming machine 2
may execute the software 1400.
[0328] The OS software 1450 may include logic 1452 for maintaining
operation integrity of the gaming machine 2. This logic may be used
to prevent the degradation of game play performance on the gaming
machine 2 when it is performing other tasks, such as during the
downloading and uploading software. For instance as part of
operational integrity 1452, the OS 1450 may maintain a directory
structure, monitor the status of processes, schedule the processes
for execution and perform load balancing. During game play on the
gaming machine, the gaming OS 1450 may load and unload processes
from RAM in a dynamic manner. Details of an OS 1450 and other
processes that may be used in the present invention are described
in U.S. application Ser. No. 10/040,239 previously incorporated
herein.
[0329] The process verification software 1454 may be used to verify
that processes executing on the gaming machine are authorized
processes. The authenticity of the game software applications
temporarily stored in RAM may be verified by using methods to
compare it with certified game software (trusted information source
as described with respect to FIG. 16) stored on one or more local
or remote file storage devices accessible to the master gaming
controller on the gaming machine. The verification process may be
used to satisfy gaming regulatory entities within gaming
jurisdictions that require certified game software to be operating
on the gaming machine at all times as well as to prevent
tampering.
[0330] The process verification logic may be embodied as trusted
firmware and/or software. For example, during the boot process for
the gaming machine 2, software used in the verification process may
be loaded from an EPROM on the gaming machine. Details of process
verification that may be used in the present invention are
described in U.S. Pat. No. 6,685,567, filed Aug. 8, 2001, and
titled "PROCESS VERIFICATION," previously incorporated herein.
[0331] The communication logic 1456 may provide logic and
communication protocols that allow the gaming machine to
communication with gaming devices in the gaming system. Different
communication protocols may be used for communicating different
types of information. For example, a first communication protocol
may be used for downloading game software, a second communication
protocol may be used for communicating licensing information and a
third communication protocol may be used for game play hosting
where the gaming machine provides information used to generate a
game of chance on a remote gaming device.
[0332] Game software 1401 may be executed on the gaming machine to
present a game of chance (see FIG. 2). A few example of game
software components used in the game software 1401 may include 1)
game logic 1402 that control a flow of the game on the gaming
machine, 2) presentation logic 1404 including graphics and audio
information for presenting the game of chance on the gaming machine
2, 3) configuration files including data, such as pay tables, used
by the game software and 4) copy protection 1408 software/data,
such as multiple copies of a software certificate attached to
different game software components.
[0333] The download/upload software 1418 may comprise software 1410
for uploading and downloading software, 1415 and 1416. In addition,
the download/upload software 1418 may include logic for optimizing
the transfer of software, such as identifying a least congested
communication path or identifying a nearest neighbor for a
peer-to-peer communication. The software inventory module 1412 may
be used to provide a software inventory of the software residing on
the gaming machine 2. A remote device may request this inventory to
determine a distribution of game software in a game system or a
portion of a game system.
[0334] In another embodiment, the software inventory module 1412
may include logic that allows the gaming machine send out software
inventory request for compiling a distribution of software over an
entire game system or a portion of a game system. For instance, one
gaming machine, such as gaming machine 2, in a group of gaming
machine connected in a fiber loop or a token ring may determine the
distribution of software in the group of gaming machines. The
software distribution compiled by gaming machine 2 may be used in
peer-to-peer transfers where other gaming machines contact gaming
machine 2 to find out a location of particular game software.
Further, the gaming machine 2 may act as concentrator such that it
reports a distribution of software (software inventory) for a group
of gaming machines to a remote device rather than each gaming
machine reporting its software inventory to the remote device. The
remote device may combine concentrated software inventories from a
number of gaming machines into a larger software distribution (see
FIGS. 16, 17A-D, for more details).
[0335] The gaming machine 2 may include software 1430 for acting as
a download authorization host as described with respect to FIG. 9
(software authorization agent 50) or FIGS. 16 and 18 (software
download authorization agent 1506). As a download authorization
host, the gaming machine may receive requests from other gaming
devices requesting permission to download software to another the
device. The requested software may reside on the gaming machine 2
or another gaming device. In some embodiments, the requested game
software may not be downloaded until an approval is received from
the gaming machine 2.
[0336] The gaming machine software may include download procedure
software 1416. The download procedure software 1416 may include
software, firmware and/or data for 1) determining if a download is
authorized 1424, such as copy, movement and location rules
described with respect to FIGS. 17A-D, 2) specifying jurisdictional
rules 1428 in regards to downloading, 3) establishing and verifying
an identity of a device involved in a transfer of game software
1426, 4) authenticating downloaded game software 1422 and 5)
authenticating a software license attached to downloaded
software.
[0337] The configuration management software 1442 may be used to
generate interfaces for configuring software on the gaming machine,
such as downloads or licensing. The interfaces may be displayed on
the gaming machine or on a remote device in communication with the
gaming machine. The player configuration software 1444 may be used
to generate an interface for use by a game player, such as a player
that selects a game for download. The operator configuration
software 1436 may be used to generate an interface for use by a
gaming machine operator. The operator interface may have more
options than the player interface. For instance, an operator
interface may allow the operator to adjust the licenses for
software while a player interface may not provide this feature.
[0338] The licensing procedure software 1432 may include modules
for allowing the gaming machine 2 to act as a license host server
1434 or as license client 1436. For example, the license client
software 1436 may include the license software agent described with
respect to FIGS. 17A-D. The licensing host logic 1434 may allow the
gaming machine as a licensing host server as described with respect
to FIGS. 17A-D. For example, the gaming machine may be able to
distribute licensing to tokens to other gaming devices.
[0339] The game play hosting software 1460 may be used to allow the
gaming machine 2 to generate games of chance for display on one or
more remote gaming devices or receive for display a game of chance
generated on a remote gaming device. The game host software 1462
may be used to generate games on remote devices. The game client
software 1464 may be used for receiving and displaying games
generated on the remote device.
[0340] The generation of games by the host may allow for a number
of levels of control in regards to the host-client relationship.
For example, the host may simply generate random numbers that can
be used with a pay table on the host or the client to determine a
game outcome. These numbers can be sent to the client where the
client generates under its own control a graphical presentation. In
another example, the host may generate the random numbers determine
the game outcome and control a graphical presentation on the
client. In another example, the host may generate the outcome and
the graphical presentation and stream it to the host.
[0341] FIG. 20 is a flow chart illustrating a method of providing
game downloading and game licensing on a gaming machine of the
present invention. In 1600, the gaming machine may send a request
to a game software host. The request may be initiated by a player,
an operator or automatically from triggers on the gaming machine.
In 1602, the gaming machine receives a download of the software
from the host. The downloaded software may be stored to a mass
storage device and authenticated.
[0342] In 1604, the downloaded game software and a software agent
(see FIGS. 17A-17D) may be loaded into RAM and scheduled for
execution by the operating system on the gaming machine. In 1606,
the gaming machine may determine whether the license control for
the downloaded game software is provided from a remote device or is
built into the software. In one embodiment, the software agent may
establish communication with the game software to determine whether
control is remote or built into the game software.
[0343] In 1608, when licensing is handled centrally, the software
agent may send a request for a licensing token to the remote server
and receive the token 1610. In 1612, information in a license
certificate for the downloaded software may be compared with the
information in the license token. As described with respect to FIG.
17B, the licensing certificate may specify a number of conditions
that can prevent the downloaded software from executing in an
unfettered manner. In 1614, when the token is valid, the downloaded
software is executed. In 1618, when the token is not valid, the
downloaded game software may generate a non-valid token
response.
[0344] In 1620, when the licensing is built into the downloaded
game software, the software certificate in the software may be
checked. If the certificate has expired, then in 1624 a certificate
renewal request may be sent to a remote gaming device and in 1626
the gaming machine may receive a new or renewed certificate. In
1628, the downloaded software may determine requirements in the
certificate.
[0345] In 1630, the requirements or rules specified in the software
certificate may be checked against its current status on the gaming
machine. This check may require the game software to gather
information from other processes executing on the gaming machine.
In 1616, when the status of the software on the gaming machine
complies with the rules specified in the certificate, the game
software may be executed normally. In 1632, when the status of the
software on the gaming machine does not meet one or more
requirements specified in the certificate, then it is possible that
the game software may be executed in a manner that deviates from
normal mode of operation.
Local Licensing Server in a Peer Gaming Network
[0346] As described above with respect to FIG. 18, for example,
gaming machines and other network components may be connected in a
peer-to-peer network or other form of decentralized network that
implements some type of disambiguation among network components. As
is known in the art, peer-to-peer networks rely primarily on the
computing power, storage space, and bandwidth of the nodes in the
network rather than concentrating these features in a few servers.
This provides numerous advantages, for example, decreased download
times using peer transfers between components and enabling better
network load balancing, to name a few. In FIG. 18 gaming machines
55, 56, 58, and game play host 1503 are shown connected via a
peer-to-peer network.
[0347] Methods and systems for delegating licensing authority from
a central licensing server to local licensing servers, thereby
enabling a local licensing server in a peer network to allocate
license tokens to gaming machines and perform other licensing
services are described in FIGS. 21A to 26. In this manner, a
central licensing server can enable or deputize components in a
peer-based gaming network to perform wager game licensing and other
authority-related functions.
[0348] A gaming network may implement various network topologies
and configurations. A few examples of network architectures are
described in FIGS. 3, 8, and 18. One such topology is a
peer-to-peer network. In this arrangement and in the described
embodiment, local licensing servers and gaming machines are either
nodes in a peer network or, when there are licensing servers,
operate in conjunction with one or more peer networks. In one
embodiment, a central licensing server deputizes a local licensing
server by pushing or unilaterally providing the local server with
licensing authority, thereby enabling the local licensing server to
provide license tokens to components, primarily gaming machines, in
the network. In another embodiment, a gaming machine in a peer
network is deputized to perform the functions of a local licensing
server in that machine's "local" peer network or, in some
embodiments, beyond that network. As described below, there are
different types of peer networks and the properties of the entity
that is deputized as a local licensing server will depend on the
type of peer network that is implemented and other factors. The
local licensing server may be a server with dedicated and limited
functionality, a multi-purpose server, a gaming device, a gaming
device with enhanced functionality, a "super peer" node, and so
on.
[0349] FIG. 21A is a network diagram showing wager gaming
components in a local gaming network connected via the Internet to
a central network component in accordance with one embodiment of
the present invention. A game software provider, such as IGT,
operates a central licensing server 2102. An example of central
licensing server 2102 is game licensing server 1552 shown above in
FIGS. 17A to 17D. In the described embodiment, central licensing
server 2102 may have a license management system for coordinating
various licensing-related tasks, including creating a deputizing
certificate (described below) and transmitting the certificate to a
local licensing server. Central server 2102 is in communication
with a local gaming network 2108 via a network 2104, such as the
Internet, a VPN, LAN, or any other suitable network. Local gaming
network 2108 may operate in a gaming establishment such as a
casino.
[0350] In the described embodiment, wager gaming code, license
tokens and other gaming-related software may be transmitted among
network components and local peer networks over a network backbone
2120 as part of one or more of various network architectures
including but not limited to local area networks, wide area
networks, private networks, a virtual private networks, and
combinations thereof, utilizing various protocols, such Ethernet or
TCP/IP.
[0351] One component in gaming network 2108 is a local licensing
server 2106, described in detail below, that performs licensing
functions and, in one embodiment, is connected to multiple
individual peer gaming networks, illustrated in FIG. 21A by
networks 2110 and 2112. The scope of functionality of server 2106
may range from minimal gaming licensing responsibilities to
full-scale licensing services. Preferably, local licensing server
2106 enables licensing validation, license monitoring, license
updating, and other game authorization-related features.
[0352] FIG. 21A shows for illustrative purposes two peer gaming
networks 2110 and 2112 that have various types of components or
nodes, many of which may be gaming machines. Other types of devices
include routers, switches, antennas, various types of gaming
network servers, wireless transceivers, wireless gaming devices,
and the like. Some of these components are described in FIGS. 1 to
20 above. Those of skill in the art will realize that these
components, their associated example architectures, and related
functionality are merely examples and that the present invention
encompasses many other such embodiments and methods. For example,
in the examples described herein, a single gaming establishment is
illustrated, such as a casino. However, it should be understood
that some implementations of the present invention may involve
multiple gaming establishments. Other examples of gaming network
topologies for implementing some aspects of the present invention
are described in U.S. patent application Ser. No. 11/225,407 by
Wolf et al., entitled "METHODS AND DEVICES FOR MANAING GAMING
NETWORKS," and filed Sep. 12, 2005 and in U.S. application Ser. No.
11/312,966, by Bienvenue et al., entitled "BINGO SYSTEM WITH
DOWNLOADABLE COMMON PATTERNS," and filed Dec. 19, 2005, both of
which are hereby incorporated by reference in their entirety and
for all purposes.
[0353] In the described embodiment, peer gaming networks 2110 and
2112 each preferably having a logical hub, shown as circles 2116
and 2118, that enable gaming components or nodes in the peer
network to communicate directly with one another. As is known in
the art, peer network components may contain networking software
that enable their local peer network to emulate a network hub. In
other embodiments, all components in a local gaming network at a
gaming establishment may be connected in a single peer network with
one logical hub that enables communication among all the components
in the peer networks. In other embodiments, the number of
components or nodes in a peer network at a gaming establishment may
vary, and thus the number of local or discrete peer networks in the
gaming network may also vary. In one scenario, a peer network may
be comprised of a bank of gaming machines often containing
approximately 12 machines and devices.
[0354] In the described embodiment, peer gaming networks 2110 and
2112 are structured peer networks. In another embodiment, the
gaming network may be implemented using an unstructured peer
network (for example, those used for Internet music file sharing)
that allow ad hoc addition of gaming components and may have
thousands of such components. The concept of peer networking is
evolving and may be used as the relational dynamic in a gaming
network.
[0355] In some structured peer networks, there may be a Distributed
Hash Table (DHT) (not shown in FIG. 21A) and each component in the
peer network may be responsible for a specific part of the content
in the network. These networks use hash functions and assign hash
values to all data and nodes in the network. The network then
follows a protocol to determine which gaming component is
responsible for which content. In one embodiment, a DHT can be
implemented in one or both peer gaming networks 2110 and 2112.
[0356] Peer gaming networks 2110 or 2112 shown in FIG. 21A may be
referred to as hybrid peer networks. Hybrid peer networks may rely
on "non-peer" components, which may operate using a peer-to-peer
protocol but have an inherent hierarchy or structure. In the
described embodiment, local license server 2106 is such a
component. In another embodiment, as described below, license
server 2106 can also be a node, such as a gaming machine, in a
local peer network, such as networks 2110 and 2112.
[0357] Hybrid peer networks function using peer network principles
but may have a semi-centralized organization, referred to as "soft
centralization." Such networks use a third generation architecture
that often involves client-server methods for some tasks and peer
networking methods for others. In some hybrid peer networks, there
are strong peer nodes or "super peers" that function as
quasi-servers or facilitator servers, often with limited or
narrowly defined functionality. In one embodiment, local license
server 2106 may be considered a super peer or facilitator
server.
[0358] In the described embodiment, local license server 2106
stores information on peer components and responds to requests for
licensing information. In hybrid peer gaming networks, gaming
machines and other network components may be referred to as
"client" peer nodes. In one embodiment, peer nodes such as gaming
machines may be responsible for hosting and providing available
licensing and game resources, informing local licensing server 2106
or other facilitator servers know what resources they want to
share, and for making its shareable resources, such as wager games
or portions thereof, available to peer components that request
it.
[0359] In the described embodiment, gaming network 2108 has a
hierarchical structure wherein one or more facilitator licensing
servers are connected to a backbone 2120. When a gaming machine is
turned on or logs onto network 2108, in one embodiment, it makes a
direct connection to local license server 2106 which gathers and
stores data about gaming machine content available for sharing.
This may result in improved search/query response times and better
performance and resilience, while avoiding a central point of
failure or control.
[0360] In the described embodiment, local license server 2106
stores license data, as described above in FIGS. 16 to 20, and
coordinates operations that facilitate gaming machine
license-related communication. In some cases, when technically
feasible, there may be direct communication between gaming machines
and local license server 2106 is a fallback conduit for
communication. In the described embodiment, server 2106 stores a
peer network gaming directory described in detail below, responds
to license requests and brokers gaming machine connections.
[0361] In another embodiment, gaming peer networks 2110 and 2112
are "federated" peer networks, which include features such as
identity management, cross domain identity, DRM, and role-based
authorization.
[0362] FIG. 21B is a network diagram showing another configuration
of a peer gaming network in accordance with one embodiment of the
present invention. As noted above, peer networks may have various
implementations. One type is often referred to as a pure or true
peer network. A gaming network based on this implementation is
nearly completely decentralized with no strong notion of a separate
local licensing server or network component having special
facilitator or administrative roles. However, in one embodiment, a
pure peer gaming network may have a "normal" node that contains
minimal information about the network, such as node addresses, list
of games, number of license tokens, and the like. In another
embodiment, the node may have a peer network directory as described
below. Such a node may be a gaming machine that has certain server
characteristics.
[0363] Shown in FIG. 21B is central licensing server 2102 connected
to network 2104 as in FIG. 21A. Numerous peer networks 2122, 2124,
and 2126 are connected in a gaming network 2128 having a network
backbone 2130. Each peer network has numerous nodes, many of which
may be gaming machines. A description of using a gaming machine as
a server is provided in pending U.S. patent application Ser. No.
09/042,192, filed on Jun. 16, 2000, entitled "Using a Gaming
Machine as a Server" which is incorporated herein in its
entirety.
[0364] FIG. 22 shows a peer network gaming directory configuration
for storing data and computer code related to one or more gaming
peer networks in accordance with one embodiment of the present
invention. A peer network gaming directory 2202 may be a single
database, such as a relational, hierarchical, or distributed
database or may be organized into multiple databases and data
schemas. In the described embodiment, peer network gaming directory
2202 has five categories of data: network component list 2204,
wager game list 2206, wager game requirements 2208, component
capabilities 2210, and connections/location 2212. In other
embodiments, data in these categories can be combined,
sub-categorized, arranged, or delineated in various ways both
logically and physically.
[0365] In the described embodiment, a peer gaming network may
connect various types of components. As described above, a peer
gaming network may be connected to a non-peer gaming component,
such as local licensing server 2106. As described above, examples
of components include gaming machines, wireless gaming devices,
routers, switches, antennas, transmitters, game host servers,
caches, and the like. In the described embodiment, there are
emulations of hubs 2116 and 2118 (which may also be a listed
component) rather than a physical component having a fixed
location. In one embodiment, component list 2204 stores a unique
identifier for each component in a gaming network, such as network
2108 in FIG. 21A. In the described embodiment, component list 2204
includes all the components in each peer network in a gaming
network and components that are not connected in a specific peer
network but operate in the gaming network. In other embodiments,
component list 2204 may include only components operating in a peer
network. Thus, in the described embodiment, component list 2204 is
an inventory of network components each referred to by a unique
identifier, which may incorporate indicia of which peer gaming
network the device is associated with, the date the device was
added, its location, and the like. In another example it may be a
simple numerical listing, such as device0001, device0002 . . .
device000n as shown in FIG. 22. In another example, it may be
PNA1dev001, PNB2dev003, where PNA1, PNB2 represent the peer
network, and NP00dev001, for example, may represent a non-peer
network device.
[0366] Wager game list 2206 is a listing of wagering games resident
on a corresponding device. In one embodiment, there may be an
indication of which games are available for transmission to other
nodes in the peer gaming network. Some items in this list may not
be applicable to some devices in the gaming network and that are
not intended to store game software, such as transmitters, routers,
and the like. In the described embodiment, each wager game and
variation of a game has a unique identifier as illustrated in the
figure. This may be assigned by the game software provider or by
the gaming operator. In some embodiments, game list 2206 may list
games according to game flow logic component, game interface
component, presentation component, audio/visual component, RNG
(Random Number Generator), O/S (Operating System), device drivers,
player tracking component, financial component, and the like. To
illustrate, wager Game A may be represented in its entirety by a
single binary image and listed as Game A. It may also have one or
more game flow logic binary images which may be represented as
GameA/F1, GameA/F2, and so on. It may also have an enhanced version
module represented as GameA/E1 and graphical interface components
GameA/U1 and GameA/U2. A component in local peer gaming networks or
in the gaming establishment network, such as a gaming machine or a
game host server, may have all, one, or a subset of these game code
modules.
[0367] In one embodiment, game requirements 2208 is a listing of
the software and hardware requirements for games or game modules
listed in 2206. For example data in 2208 may include gaming machine
technical requirements and specifics, as shown in the figure. These
may include memory requirements, CPU processing power, bandwidth,
and so on. In another embodiment, it may also include gaming
machine preferences, such as monitor resolution, audio capability,
processing speed, and the like. For example, a game may need one
megabyte of RAM, a certain processing speed, and is preferably
played on a monitor having a high resolution. Thus, a mobile gaming
device or older generation gaming machine may not be capable of
executing a new wager game.
[0368] Device capabilities 2210 stores data on the technical
properties and specifications of the corresponding network
component listed in 2204. It provides information such as memory
capacity, processing power, graphic and audio capabilities, monitor
resolution, and so on. This data can be useful for group licensing
rules which are dependent on properties of the gaming devices in
the group. A requesting gaming machine or device may have to meet
certain qualifications which can be determined from examining
computer capability data 2210. In another example, when there are
multiple communication paths in a network, as there are in peer
network, a preferred mode of transmitting data may vary depending
at least in part on the device. A preferred communication path may
depend on the capabilities of the device and on the path. For
example, some components may not offer wireless functionality,
others may not be able to advantage of higher bandwidth
connections, and so on.
[0369] Network configuration data 2212 are data on the location of
the corresponding component in the network topology and the
connections between it and other components. In one embodiment, an
initial configuration of a gaming network is provided to local
licensing server 2106 which may provide initial network
configuration data 2212. However, in some embodiments changes to
the network configuration, such as the movement of gaming machines
and the addition/reduction of machines by the gaming operator may
not be reflected in real time in network configuration data 2212.
In some embodiments, central licensing server 2102 may have updated
network configuration or topology data which it can provide to
server 2106.
[0370] In another embodiment, network configuration data 2212 are
updated according to the movement of games or game components (such
as the logic flow modules, interface modules, etc.) among gaming
machines and other components in the peer network. This can be
described as essentially keeping track of a casino floor as it is
being electronically shuffled.
[0371] FIG. 23 is a block diagram showing data and logic modules
resident on a gaming machine in a peer gaming network in accordance
with one embodiment of the present invention. As shown in FIG. 23,
a gaming machine 2302 is one node in a peer network 2303. In one
embodiment gaming machine 2302 operates in conjunction with a local
licensing server, as shown in FIG. 21A, to perform certain
licensing functions. In another embodiment, such as in a pure peer
network and in the absence of a local server, gaming machine 2302
performs as a local licensing server. In another embodiment, some
of these modules or portions thereof may reside on a local
licensing server operating in conjunction with gaming machines in a
peer network.
[0372] In the described embodiment, on gaming machine 2302 there
are various types of data and logic components: an optimization
logic code module 2304, an update retrieval code module 2306, a
security software module 2308, and a network configuration data
module 2310. In other embodiments, there may be more or fewer
modules on gaming machine 2302 to implement a gaming peer network
licensing arrangement. In some embodiments, some of the data and
logic shown in the modules are combined and stored in an
arrangement different from the embodiment described in FIG. 23. For
example, if gaming machine 2302 performs as a licensing server in a
pure peer gaming network, there may be additional peer networking
software modules needed on gaming machine 2302 such as peer network
gaming directory 2202. In some embodiments, gaming machine 2302 may
contain portions of peer network gaming directory 2202 while other
portions reside on server 2106.
[0373] Optimization logic code module 2304 enables a gaming machine
to operate effectively and make efficient use of the gaming network
and resources on its local peer network. For example, if there are
multiple copies of a game that is needed by machine 2302, it is
preferable that machine 2302 decide to retrieve the copy that is
either the closest or the one that minimizes traffic on the network
backbone. In the described embodiment, this logistical optimization
is performed by module 2304. In one embodiment it is related to
transfer optimization module 1410 stored on a gaming machine as
shown in FIG. 19.
[0374] In the described embodiment, gaming machine 2302 uses update
retrieval code 2306 to obtain updates of game code software,
game-related data, and other network data. Techniques for
retrieving updated code and data by nodes in peer networks are well
known in the field of networking programming. Security module 2308
preferably contains license authority code, such as a deputizing
certificate and other code in the pure peer networking context
where gaming machine 2302 has authority to perform as a local
licensing server and can distribute license tokens. Data in module
2308, for example, a license deputizing certificate enables, gaming
machine 2302 to authenticate itself and verify to other components
in peer network 2303 and in other networks that it has the
authority to provide license tokens and that it is entitled to
collect data and keep track of license token distribution and
perform other license-related functions. Data 2308 also allows
components in peer network 2303 and other network components that
need license tokens to authenticate gaming machine 2302. That is,
it allows peer components to ensure that they are accepting license
tokens from an authorized or deputized license server or manager.
In a hybrid peer network, security module 2308 or portions of it,
such as the deputizing certificate, is preferably on a local
licensing server. Related to or included in security module 2308 is
software to prevent attacks on peer networks, specifically on the
licensing functionality of the network. Such attacks may include
poisoning attacks (e.g., providing bogus wager gaming files),
polluting attacks (e.g., inserting bad packets or data into an
otherwise valid file), insertion of viruses, and other malware
being inserted into the licensing software itself.
[0375] In one embodiment, network configuration module 2310 enables
gaming machine 2302 to obtain and store configuration data related
to the physical locations of gaming machines in a gaming
establishment, the locations of games and portions thereof in a
gaming network, computing capabilities of machines in network, and
the locations of other network components. As noted above, current,
up-to-date network configuration data may not be available or
provided by the gaming operator. However, when provided, such as
upon initial installation, these data may be stored and maintained
by module 2310.
[0376] In one embodiment, the act of authorizing a device to be a
local licensing server includes transmitting a licensing deputizing
certificate as shown in FIG. 24. A deputizing certificate 2402 may
include source identifying data 2404. Examples of sources as
described above include a central licensing server, a local
licensing server either embodied as a separate facilitator server
or as a gaming machine in a peer network, or any other suitable
peer or non-peer network component. Certificate 2402 preferably
also includes destination identifying data 2406. This may include
the serial number, the machine's original manufacturing certificate
(birth certificate), the machine's operation certificate provided
by an authorizing agency such as the Gaming Control Board, or other
unique identification data of the entity taking on the role of
local license server. In the described embodiment, deputizing
certificate 2402 preferably also includes license server code 2408
which provides the network component receiving certificate 2402
with the necessary code, data, and tools to function as a local
licensing manager. In one embodiment, code 2408 may include peer
network gaming directory 2202, portions thereof, or the tools to
create the directory. In another embodiment, it may include a
license generator. As described below, the local license server
performs various functions in its role as license manager. License
server code 2408 equips the network component, for example, either
a facilitator server or a gaming machine, to assume these functions
which are described above and in the incorporated references.
Certificate 2402 may also include a certificate serial number 2410
that can be used to uniquely identify certificate 2402.
[0377] In the described embodiment, central licensing server 2102
pushes licensing authority to local licensing servers which enables
these servers to issue license tokens or other forms of
authorizations to gaming machines and other devices in a peer
gaming network. In one embodiment, a local license server may, in
turn, deputize other local servers or gaming machines to perform
licensing functions. The authority of such additional local license
servers is preferably limited to or less than the scope of
authority of the originating local licensing server. In another
embodiment, peer network components having sufficient capabilities
as described in component capability data 2210 of FIG. 22, such as
a gaming machine, could be a local licensing server with the
ability to transmit license tokens to local peer machines or to
machines in other peer networks. In this manner, if the network
backbone was unavailable, licensing operations can continue,
thereby increasing overall reliability of the gaming network and
the licensing process.
[0378] FIG. 25 is a flow diagram of processes related to deputizing
a local licensing server in accordance with one embodiment of the
present invention. Steps of the methods shown and described herein
need not be performed (and in some implementations are not
performed) in the order indicated. Some implementations of the
methods may include more or fewer steps than those described. The
process shown in FIG. 25 can take place on a facilitator server as
described above and/or on a gaming machine in a peer gaming
network.
[0379] At step 2502 a network component receives a license
deputizing certificate as described in FIG. 24 from a central
licensing server or from a local licensing server. The license
certificate, which can also be described as an "operation
certificate" for the newly appointed local licensing server, is
preferably created at a central licensing server under control of a
game provider, such as IGT, or by an authority such as the Gaming
Control Board. As described above, the certificate may include
software relating to peer network gaming directory 2202 and have
code to enable the local server to function as a licensing
authority and manager. Once the network component receives the
certificate, it has the authority to begin operating as a local
licensing server. As described above, in another embodiment,
licensing procedure software 1432 may include modules for enabling
a gaming machine to act as a license host server 1434 or as license
client 1436.
[0380] At step 2504, in one embodiment, the local licensing server
may create a license document using a license generator provided
from the server via the deputizing certificate or at a time
subsequent to receiving the certificate in a separate transmission.
In another embodiment, a license document may not be necessary and
a license generator is not provided to the local licensing server.
In one embodiment, a license document may include a list of
licenses granted to a gaming operator, related configuration
parameters such as licensing terms and other data that may be
needed by the component to operate as a local license server. In
one embodiment, a license document may include licenses granted to
a gaming operator, a stand-alone grace period for each license, an
update period, an expiration date, a pre-expiration warning time,
and various security identifiers and passwords. Further details on
license documents are described in U.S. patent application Ser. No.
11/225,408 (Attorney Docket No. IGT1P253), titled "Method and
Devices for Authentication and Licensing in a Gaming Network," by
Kinsley, et al., incorporated by reference herein for all
purposes.
[0381] At step 2506 the peer network gaming directory is installed
on the local license server. In one embodiment, the directory
described in FIG. 22 and which can be described as a master license
directory for the local license server in a peer gaming network, is
transmitted to the local server from the central server. In another
embodiment, the data necessary for building the directory are
provided to the server and the directory is created on the server
using instructions and software provided by the central licensing
server, for example, in the deputizing certificate or in subsequent
communications with the server. At this stage the deputizing and
initializing process is complete.
[0382] FIG. 26 is a flow diagram showing processes performed by a
local license server during normal course of operation in
accordance with one embodiment of the present invention. Steps of
the methods shown and described herein need not be performed (and
in some implementations are not performed) in the order indicated.
Some implementations of these methods may include more or fewer
steps than those described.
[0383] Once a network component has been deputized as a local
licensing server, the component may begin performing various
license-related functions. One of the primary functions includes
sending license token requests to network components, primarily
gaming machines, as shown at step 2602. As described above,
licensing authority is preferably pushed, rather than pulled, to a
network component, such as facilitator server or a gaming machine
to operate as a local license server in a peer network. However,
license tokens are distributed to gaming machines via license token
requests, that is, in the described embodiment, machines pull
license tokens from the local license server. As described above, a
game software host on a gaming machine is a logic module that may
include software for requesting or pulling license tokens. It may
also store requests from other gaming devices and game downloads
generated by the server. Methods of forming a license token request
on a gaming machine and obtaining the necessary license are
described above in FIG. 6 which shows processes of obtaining a game
license token on a gaming machine and in FIG. 7 which shows a flow
chart of processes of providing a game license to one or more
gaming machines. In the described embodiment, there may be a
separate communication protocol that takes into account peer
network properties for communicating licensing information, such as
requests for license tokens, distribution of tokens, allocation of
wager game software, over a peer gaming network. In one embodiment,
the protocol is implemented by communication logic on the gaming
machine. In another embodiment it is implemented on the local
licensing server and/or on the gaming machine.
[0384] At step 2604 the local license server performs the necessary
checks and validations, preferably using token distribution rules
and depending on the outcome of the rules, distributes license
tokens to the gaming machines. There are various licensing factors
and rules, some of which, for example, take into account time
(e.g., tokens only available on weekends or evenings) and
participation (e.g., release tokens when participation exceeds a
certain level). In another example, the local licensing server may
maintain a waiting list of machines that have requested a license
token for a Class 3 game when one was not available. In one
embodiment, the processes of receiving the license token requests
and distributing the tokens to the gaming machines are the same or
similar to the processes that would have occurred on the central
licensing server. License tokens are distributed to components in a
gaming network according to the licensing arrangement between the
gaming provider and the gaming operator. For example, centrally
controlled licensing of software, distributed licensing, and
concurrent licensing methods are described in FIGS. 17A to 17D.
Other licensing schemes and arrangements that may determine the
distribution of license tokens are described above in FIGS. 16, 18,
19 and 20. It should also be noted that portions of game software,
such as game flow logic, interface logic, and so on, may be
licensed separately. Licensing terms may vary for different
portions of a game. In one embodiment, game software may have a
built-in license certificate. If the game has multiple components,
each component may have its own certificate. In one embodiment, a
licensing agent on the gaming machine reads the certificate(s) and
creates a license request for a token from the local license
server. If it is not built-in, a software agent may send a request
for a token, receive the token, and compare it with a licensing
certificate in the game software.
[0385] At step 2606 the local license server keeps track and
maintains a record of license token usage and distribution. Local
license server may track token usage, grant and/or renew licenses
for game software using game usage-tracking host 1515 and token
tracking module 1556 described, for example, in FIG. 17A. The local
licensing server may receive from each gaming machine in a peer
network updates on the number of times a game is available for play
on the machine, the amount that has been wagered for each game, and
the like. This information may be stored in a database and used for
billing according to a licensing agreement between the gaming
operator and the gaming provider. As described above, in one
embodiment, a token tracking database can be used to keep records
of licensing tokens distributed to machines and which tokens have
been received, as well as other functions. A token tracking
database can be maintained on local license server, a gaming
machine, and/or on the central licensing server. A gaming machine
may maintain similar records about receiving and returning tokens.
In one embodiment, there may also be a token usage accounting
database on the licensing server. In another embodiment, as wager
game code is allocated and moved among machines in one or more peer
networks, the local license server may also keep track of the
number of copies of a wager game that are in use and may also
control the sub-licensing of the game. Software agents resident or
downloaded on a gaming machine may be capable, in some embodiments,
of enforcing licensing terms and determining the licensing status
of wager game software on a gaming machine or other peer
device.
[0386] At step 2608 the usage and distribution data, as well as
other data, are reported to the central licensing server or other
appropriate server operated by the gaming provider. In one
embodiment, each gaming machine or other component that has at
least one license token reports back periodically to the local
license server. In another embodiment, the machine may report
directly to the central licensing server. The local license server
may report to the central license server on a pre-determined
schedule or on an as-needed basis (e.g., daily or when a supply of
licenses is exhausted). Steps 2602 to 2608 describe examples of
functions that a local licensing server may perform during the
normal course of license management in a gaming network
implementing peer networking technology. There may be other
functions and related data components not shown or described in
FIG. 26 but are described with respect to previous figures or in
the incorporated references.
Game Table License Management
[0387] Wager game table systems and methods for managing wager game
licensing and licensing of related content and software in game
tables are shown in FIGS. 27 to 32. In the described embodiment, a
game table at a gaming establishment functions as a local licensing
server for player stations at the table. In another embodiment, a
game table may also be a local licensing server for player stations
that are part of other game tables and for gaming machines in the
gaming establishment.
[0388] FIG. 27 shows a game table and some of the various modes or
manners in which a player can participate in game table activity in
accordance with one embodiment of the present invention. A
semi-oval shaped game table 2700 may be configured for a variety of
different types of card and non-card based table games, such as
blackjack, poker, roulette, craps, baccarat, and other more recent
games, such as pai-gow, Carribean Stud, Spanish 21, Let It Ride,
among others. In a typical gaming event at a game table, players
place wagers on a game, using cash, chips, markers, etc., whereupon
a winning may be paid to one or more players depending on the
outcome of the game. The game itself may involve the use of, for
example, cards, dice, wheels, balls, tokens, and the like, with
rules of the game and any payouts or pay tables being established
prior to game play. Winnings may be paid in cash, credit, chips, or
by other forms of payouts. In another embodiment, non-wager game
activities may also take place at table 2700, such as listening to
music, watching movies, television, accessing the Internet,
advertising and promotions, accessing concierge services, playing
video games, and the like.
[0389] Game table 2700 may be located at a casino or other gaming
establishment and be under the control of a gaming operator or
casino manager. As described in greater detail below, game table
2700 may be one component in a gaming or casino network. It may
also be directly or indirectly connected to other game tables
and/or gaming machines shown in FIG. 28 below.
[0390] As shown in FIG. 27, game table 2700 has seven player
stations, an example of which is shown as 2702 and a dealer station
2704 that faces the player stations. Player station 2702 may have
various devices and components that facilitate game play. These may
include media reading devices, (e.g., card readers, RFID readers
for detecting wireless signals, etc.), ports for electronic keys
and the like, chip trays, chip/wager placement areas,
speakers/headsets, and biometric sensors (e.g., fingerprint
scanners, retinal scanners). The media reader may be operable to
automatically detect wireless signals (e.g., IEEE 802.1x signals,
including WiFi and Bluetooth, IEEE 802.22), signals transmitted
using cellular protocols (e.g., CDMA, WCDMA), radio frequency,
infrared, and near field magnetic signals, from one or more
wireless devices. In other embodiments, there may be fewer or more
components in player station 2700 to allow a player to participate
in table game play, access player information via a casino network,
control viewing or listening of non-wager game content, and so
on.
[0391] In the described embodiment, a game table display 2706 at
the center of game table 2700 displays various types of data that
may be needed for game play and can be viewed by players using a
player station at the table, by the dealer, and by spectators. In
another embodiment, game table display 2706 may present information
for the exclusive use of the dealer. Numerous configurations are
possible. The types of information that may be displayed include
dealer cards, ante information, common or shared player cards,
individual player cards, and wager information. In one embodiment,
game table display 2706 may also be used to reveal cards, verify
cards dealt, display game play instructions, and so on.
[0392] In the described embodiment, a player station such as 2702,
is equipped with a removable gaming device 2708 having a display
2710, such as an LCD screen, and is generally in the form of a
laptop computer. Once it is removed from a docking area, an example
of which is shown as area 2712, it can be physically configured to
resemble a laptop computer or can be used as a tablet-style,
computer. Gaming device 2708 may reside within or be embedded in
docking area 2712 at a player station with display 2710 facing
upward. A player can use device 2708 at the table while in the
docking area (docking area 2718 may, for example, resemble a port
replicator for a laptop computer) and have a wired connection to
internal components of table 2700, user interface devices, and
other components described above.
[0393] Another manner in which a player can participate in wager
gaming or non-wager activities at table 2700 is by detaching
removable gaming device 2708 from docking area 2718 and taking it
to another location in the casino. In one implementation, a player
registers at a game table by providing personal information, for
example, through the media reader, biometric sensor, or by verbal
communication with a dealer who can enter the appropriate
information. Once detached, gaming device 2708 may contain some or
all of the user devices and components described above. For
example, the media reader, audio capabilities, and biometric device
may be physically part of gaming device 2708, in which case a
player may have access to them once the device is removed. In other
embodiments, some of these components may be embedded in table 2700
and separate from gaming device 2708.
[0394] Before a gaming device is removed by a user who has
registered for the device (game table software and/or the dealer
may control a locking mechanism between the device and the table),
in one embodiment, wager game and other software applications for
game play functions, such as progressive game play licensing,
enabling secure communication, and the like, may be installed on
the device by the game table. Once detached, a player may be able
to view on screen 2710 the information displayed to players on game
common table display 2706. Depending on the type of game being
played, a player may also be able to view cards of other players
that would normally be viewable while sitting at table 2700.
Similarly, players sitting at table 2700 may be able to view cards
(if required for game play) of the players using a remote gaming
device. In one embodiment, sensors or other security mechanisms may
be used to control the display of a player's cards, preventing
accidental exposure of cards or other player information on the
displays. For example, pressure sensors, light sensors, heat
sensors, or a scrolling wheel, can be part of a player station or a
gaming device and be used to control the display of player
information.
[0395] In another embodiment, a player may register with the gaming
operator for a portable gaming device 2712, not part of game table
2700, which may be used to participate remotely in table game play
without having to detach gaming device 2708 from, for example,
docking area 2718 in table 2700. In one embodiment, once device
2712 is registered to a user, the user and device information is
transmitted to game table 2700, so that the table is aware that
device 2712 has been registered and is informed of the device
hardware and software capabilities. In one embodiment, user data
relating to device 2712 may be previously authenticated and/or
verified thereby rendering the device a "trusted" device.
[0396] If a player wants to use non-table gaming device 2712 with
table 2700, in one implementation, when the user engages in game
play at the table, device 2712 is brought to the table and the user
is assigned a player station. Wager game software and other
software applications, depending on the hardware and software
capabilities of the device, are downloaded to the device, for
example, either through a wired or wireless connection. In one
embodiment, device 2712 may have fewer operational capabilities,
user interface components, a smaller display, and the like, than
game table gaming device 2708. In another embodiment, device 2712
may have the same capabilities and interfaces as the game table
gaming device 2708. In some embodiments, device 2712 may be a
hand-held PDA type device, a cell phone, or other portable gaming
device, in all cases supported by the gaming operator. Portable
device 2712 and game table gaming device 2708 may be operable to
perform numerous functions, such as allowing card selection,
wagering activities, initiating player tracking sessions,
displaying player assistance information, displaying casino
layouts, promotional information, messages, a player's location,
and so on.
[0397] In another embodiment, a user, such as user 2714, may
participate in play at game table 2700 by logging on to table 2700
via the Internet or other public network. A player, who has
previously registered with the gaming operator and whose identity
has been authenticated and verified, can log onto game table 2700
using a suitable verification scheme utilizing, for example, a
public key infrastructure or zero knowledge proofs, and engage in
game play via one of the player stations. In this embodiment, data
relating to user 2714 may be previously provided to game table 2700
by the gaming operator so that the table knows that the user has
been authenticated and may be permitted to log onto one of the
player stations at the table. In this embodiment, game table 2700
may transmit certain game and other software applications from game
table 2700 to a remote user's computing device 2716, such as a home
desktop or laptop computer or a portable IP-enabled device. As with
portable gaming device 2712 used within a casino, appropriate game
play data may be displayed at the table and data viewable on game
table display 2710 or at individual player stations may be viewed
at home computing/gaming device 2716.
[0398] It should be understood that there are various modes and
associated implementations in which a user may participate in wager
gaming and non-gaming activities at game table 2700. The
embodiments described above may be implemented in numerous ways,
each taking into account factors such as gaming regulations, data
security, network connectivity, gaming device and peripheral
connectivity, user and device verification, and so on. The examples
described herein are purely illustrative of the versatility and
configurations for game play at game table 2700.
[0399] In another embodiment, a game table may not have removable
laptop-style gaming devices, such as device 2708, but rather have
display screens embedded in the table (or a single continuous
screen with visual partitions for each player station). In other
embodiments, game tables may have docking areas for smaller,
hand-held portable gaming devices which can be removed without
removing a player station display 2710. In another embodiment, a
game table may be entirely electronic and automated and not require
a dealer. Such a table may be oval and have one or more common game
table display areas at the center of the table and player stations
around the circumference of the table. An example of such a table
is shown in FIG. 28 below as table 2812. All game play and other
operations generally performed by a live dealer, such as dealing
cards, distributing winnings, managing wagers, providing chips,
verifying identities (when appropriate), generally overseeing game
play, and so on are controlled by the table. Further details on
game tables suitable for use with the present invention are
described in U.S. patent application Ser. No. 11/515,184, by Nguyen
et al., entitled "INTELLIGENT CASINO GAMING TABLE AND SYSTEMS
THEREOF", filed Sep. 1, 2006, and U.S. patent application Ser. No.
11/515,183, by Nguyen et al., entitled "INTELLIGENT WIRELESS MOBILE
DEVICE FOR USE WITH CASINO GAMING TABLE SYSTEMS", filed Sep. 1,
2006, both of which are hereby incorporated by reference in their
entirety and for all purposes.
[0400] In the described embodiment, game table 2700 is a
configurable and self-sufficient gaming system and is regulated to
ensure fairness, compliance with jurisdictional gaming
requirements, security, and so on. One aspect of table game play is
wager game licensing, auditing, reconciliation, and various related
functions. In the described embodiment, a game table performs the
functions of a local licensing server for the player stations at
the table. As described above, a player station may be utilized in
a number of ways: playing at the table, playing remotely within the
casino over a casino network (using different types of devices), or
over the Internet (also using different types of devices). In each
scenario, a game table host controller interacts with player
stations to facilitate game play and game-related activities. In
the described embodiment, a game table utilizes a license
management module to manage, collect and maintain data on wager
game usage and usage of related content, including, various forms
of intellectual property such as music, trademarks, images, and so
on. In another embodiment, license management module also manages
various game and table-related software applications, such as
software for player tracking, progressive game play, bonus game
play network, communication, and device drivers, firmware and the
like. As described in further detail below, the types of software
modules transmitted from a host controller to a player station may
depend on various factors, including the mode in which in the
player station will be used, which game will be played and how,
which casino services are being requested, whether non-gaming
information will be accessed, and so on.
[0401] FIG. 28 is a block diagram of software and hardware
components of a game table in accordance with one embodiment of the
present invention. In the described embodiment, a game table system
2800 has a license management module 2802, a host controller 2804,
and interfaces 2806. In the described embodiment, license
management module 2802 contains various licensing data components
and software related to licensing, shown in greater detail in FIG.
29. Game table system 2800 shows certain internal components of one
player station 2808 for illustration. Host controller 2804 and
license management module 2802 are connected to one or more game
table system interfaces 2806 which enable communication with a
gaming network 2810 and with a central licensing server 2824,
capable of performing various licensing functions as described
above starting with FIG. 3. Interfaces 2806 also enable
communication with other various types of game tables, such as game
table 2812, and gaming machines, such as machine 2814. In some
embodiments, it may be preferable for game table system 2800 to
exchange data directly with other game tables and gaming machines.
In another embodiment, player station 2808 may also have an
interface 2816 for wired or wireless data communication with
devices external to game table system 2800. In the described
embodiment, player station 2808 has a license management component
2818, described in greater detail in FIG. 31 below.
[0402] Host controller 2804 may also have a memory 2820 and a
processor 2822. In the described embodiment, game table system 2800
may be designed to be a state-based system that stores and
maintains its current state in a non-volatile memory, portion of
memory 2820, so that, in the event of a power failure or other
malfunction, the table will return to its current state when power
is restored. Host controller 2804 also has at least one processor
2822 for executing functions generally necessary for operation of
game table system 2800. For example, processor 2822 may enable the
table to be configured to play different games at various times of
the day based on a fixed schedule (e.g., at 7 pm configure the
table for poker, at 8, Blackjack, at 9, Carribean Stud, and so on).
It may also be configured manually by the gaming operator as
desired. In another example, processor 2822 may be suitable for
executing software for various other configuration and
reconfiguration tasks of game table system 2800. The operations
performed by processor 2822 may include, for example, communicating
with portable or remote gaming devices, converting signals read by
an interface to an appropriate format, accessing memory to
configure and re-configure game parameters, communicating with
interfaces, peripheral and I/O devices, and operating such devices.
Processor 2822 may, for example, send data and messages, including
game play information, to certain displays to inform players of
cards dealt, wagering information, and the like. In one embodiment,
to prevent tampering and provide additional security, one or more
game table processors may be proprietary and execute only certain
game play activities. In some embodiments, some software modules in
host controller 2804 or in other components of game table system
2800 (e.g., for game play activities, such as electronic shuffling,
card dealing, and the like), may be designed to be static and
monolithic to prevent cheating or tampering by the gaming operator
or others having access to the game table.
[0403] Components, modules, and controllers shown in FIG. 28 are
purely illustrative of some of the hardware and software components
in game table system 2800. There may be numerous other components
of game table system 2800 which are not shown in FIG. 28. Based on
the design and implementation of the game table, the underlying
game table system components may vary widely and have different
configurations. For example, license management module 2802 may be
part of host controller 2804 without diminishing the functionality
of game table system 2800 as a local licensing server for player
stations at the game table. Further details of numerous game table
components are provided in U.S. patent application Ser. No.
11/425,998 entitled "PROGRESSIVE TABLE GAME BONUSING SYSTEMS AND
METHODS", filed Jun. 22, 2006, hereby incorporated by reference in
its entirety and for all purposes and are also provided in
previously incorporated U.S. patent application Ser. No. 11/515,184
and U.S. patent application Ser. No. 11/515,183.
[0404] FIG. 29 is a block diagram of license management module 2802
having, in accordance with one embodiment of the present invention,
various wager game licensing, auditing, and related components and
software.
[0405] Execution of wager games at a game table may require complex
accounting and license calculations for payments to various
entities, including the game owner, game creator, game table owner,
a gaming operator third-party content licensors, and so on.
Entities providing or allowing use of proprietary content or
intellectual property used in the game or by the table, such as
game theme, music, trademarks, images, and so on, may also require
separate licenses, royalty payments, taxes, and the like. In
addition, there may be separate licensing schemes, arrangements,
and calculations for software used by a game table, such as
applications for progressive game play, individual and group bonus
game play, communication software, operating system software, and
firmware for various peripherals and devices.
[0406] As described above, license management module 2802 may
enable game table system 2800 to perform as a local license server
with respect to wager game play and other activity at the table. In
one embodiment, license management module 2802 utilizes processor
2822. In other embodiments, license management module 2802 may be
implemented as a separate controller within game table system 2800
and utilize a dedicated or shared processor and memory.
[0407] In the described embodiment, license management module 2802
includes a device verification component 2904 for managing access
to a game table by remote gaming devices, for example, by ensuring
that a device is known and trusted. As described above, there may
be various types of gaming devices that can be used to engage with
a player station and allow a user to participate in game table
activities. For example, device authentication module 2904 may
receive a device identifier or data uniquely identifying the
device. This may be done by the device transmitting specific
information about the device, such as a game device identifier, for
example, contained in a certificate stored in unalterable memory,
to the game table. The certificate may contain data such as the
date and time the device was associated or registered with the game
table, the model and type of device, its hardware capabilities, and
other features of the device.
[0408] FIG. 31 is a block diagram of license management component
2818 at player station 2808 in accordance with one embodiment of
the present invention. In the described embodiment, license
management component 2818 is implemented as software running on a
server or as a software agent. In other embodiments, component 2818
is a host device or a hardware component. There are numerous ways
in which license management component 2818 can be implemented while
maintaining the autonomy of the game table performing as a local
licensing server. In the described embodiment, a certificate 3102
may be stored on a gaming device associated with the player
station. In the described embodiment, device verification module
2904 may determine whether the device is registered and trusted by
the game table by checking a registered device data set 3002 in
memory 2820, shown in detail in FIG. 30. In one embodiment, memory
2820 may be a memory storage area under control license management
module 2802. Related to data set 3002 are device identifier data
set 3004 and device hardware/software capabilities data 3006. Once
a game table verifies that a device can be trusted, it may initiate
a connection for securely transmitting wager game play and related
data with the device. In another embodiment, device verification
component 2904 controls access to the game table by external gaming
network components, including other game tables, gaming machines,
and gaming network servers and components. Details on establishing
secure connections among game tables and other gaming network
components are described in previously incorporated U.S. patent
application Ser. No. 11/425,998.
[0409] In the described embodiment, devices listed in registered
device data set 3002 may include, for example, all game table game
devices, portable gaming devices registered to users by the casino,
and home PCs and IP-enabled devices that have been registered with
the casino and are authorized to connect to the casino network (and
to game table within the network). Hardware and software
(operational) capabilities data set 3006 is similar to the data
described in FIG. 22 above and may contain data on RAM, processing
speed, available memory (if known), peripherals, and so on. License
management module 2802 may use these data in determining which
license tokens are needed given the game code and software modules
which are suitable for execution on the device.
[0410] As described above with respect to FIGS. 17a to 17d, in some
wager game licensing schemes, each version of a wager game software
application, its various enhancements and components, and the
content associated with the game, may have varying licensing and
royalty terms and require different license tokens. The licensing
schemes may also require tracking the use of non-gaming content
and/or other specific intellectual property. To illustrate, assume
a game table is configured to play Let It Ride at each of its
player stations. The game Let It Ride may have one game flow
component for game logic which is the same regardless of the type
of gaming devices it executes on having at least a certain amount
of memory. For devices with less memory there may be a scaled down
version of the game flow component that may be used. In one
embodiment, license management module 2802 determines how a wager
game will be executed at the player stations and distributes a
license token appropriate for the game flow logic module for the
device. The same concept illustrated in this specific example may
be applied to other gaming application components. License
management module 2802 preferably examines hardware and software
capabilities data 3006 of the gaming device that will be used and
allocates a license token for the appropriate game/module to the
device. In another example, a portable gaming device 2712 (e.g., a
hand-held PDA or cell phone) may not be able to support certain
presentation (user interface) modules of Let It Ride that game
table gaming device 2708 may be able support. Thus, the portable
device should preferably receive a license token for scaled down
presentation module, which may have a different licensing cost.
[0411] There are various combinations of license tokens that may be
distributed within a game table to its player stations, of which
license management module 2802 may keep track. For example, suppose
there are four general classes of gaming devices, a class being
defined by a specific range of operational capabilities, and
include, for example, game table gaming device 2708, casino-issued
portable device 2712, general-purpose computer 2716, and IP-enabled
portable user device, such as a cell phone, PDA, etc. For each
wager game available on the table there are 20 games and each game
may have a core set of three modules: a game flow logic module,
presentation logic module, and configuration module. Each may have
specific versions made for a device class or some may be the same
for all device classes. In the described embodiment, license
management module 2802 determines which game modules are
appropriate for which device and may distribute only the
appropriate token(s) for that module to the device. In this manner,
a game device is charged licensing fees only for game software
modules that are best suited for its hardware and software
capabilities.
[0412] In the described embodiment, license management module 2802
may include a user verification and authentication module 2906 to
assist in authenticating and/or verifying individuals, for example,
who use a portable, casino-issued gaming device or who are
accessing the game table via the Internet or other public network.
License management module 2802 or other appropriate component in
the game table verifies personal data, that may include age,
physical location, password, biometric data, monetary account
information, gaming device(s) registered to the user, and the like.
In one embodiment, a user preferably registers with a gaming
operator by establishing a password or by providing biometric data
which may be stored by the operator at the game tables and used to
authenticate and/or verify the identities of users attempting to
remotely participate in game play at a game table. In one
embodiment, a user may provide password or biometric data at the
game table to a dealer before de-docking game table device 2708 for
use at another location in the casino, such as in a lounge or bar.
In the described embodiment licensing management module 2802 may
utilize user verification data set 3008 stored in memory 2820 for
such functions.
[0413] In the described embodiment, a floating license manager
component 2908 may manage the distribution and retrieval of license
tokens within game table system 2800 in a floating license
environment at a gaming establishment and there are a limited
number of licenses for a particular game. In some jurisdictions, a
gaming establishment, such as a casino, may have the right to use
up to a certain number of license tokens for a particular wager
game. Described generally, when the maximum number of license
tokens have been distributed, the game may not be played on any
more gaming devices until a license token for that game is returned
to the pool of license tokens. In the described embodiment, if a
license token is not used or needed any longer by a player station,
it is returned to a license pool maintained, for example, by
central licensing server 2824, and made available to other player
stations at table 2700, by other gaming devices in the gaming
network, such as gaming machine 2814, or player stations at other
game tables, such as table 2812. In another embodiment, game table
system 2800 utilizing floating license management component 2908
performs this function for player stations at other game tables and
for gaming machines in gaming network 2810.
[0414] In the described embodiment, game usage component 2912 of
license management module 2802 collects and maintains game usage
data 3010 in memory 2820 for game table system 2800. In one
embodiment, game software certificates may use their own software
usage meters to gather game usage data or may utilize
hardware/software meters that are part of a player station to
gather the data.
[0415] As described in FIG. 27, in one embodiment, player stations
at a game table may be used in one of several modes. However,
regardless of how each player station is used, game usage component
2912 collects data on which game components, enhancements, and the
like, execute on each gaming device at each player station. In one
scenario, all players are physically at the game table and
participating in the same wager game with some players, for
instance, using player tracking modules or enhancements for bonus
game play, group bonus play, and so on. In another scenario, some
of the players may be utilizing player stations using hand-held
gaming devices and consequently, may be using special types of game
software components to accommodate the capabilities of the devices,
wireless communication, and the like. In another example, one or
more of the players at the table may be playing different games at
the same time. As shown in FIG. 31, in one embodiment, there is
preferably a wager game usage component 3104 in license management
component 2818 that is part of player station 2808 that monitors
and collects data on games played, amounts wagered, and other data
for a particular player station. These data may be stored in game
usage data 3010 in memory 2820 or at a memory area for player
station use only (not shown).
[0416] In the described embodiment, game usage data 3010 are
arranged in memory 2820 based on individual player station. For
example, all or some of the game software usage data for a specific
player station A1 are stored in memory area 3011. In another
embodiment, usage data are arranged based on other criteria such as
game title or combinations of player station, game title, and other
factors.
[0417] In these and other examples, player stations at a game table
may have different game usage histories. As described above, in
some scenarios, in which all the players at the table are
participating in the same table game, some players may use
additional game-related components, such as for player tracking,
progressive game play, individual and group bonus play, and the
like. In another example, players using portable gaming devices or
logging onto the table via the Internet or other network may be
required to use customized or otherwise modified versions of
certain game components, for example, to enable remote play
capability, that have licensing terms different from those for
equivalent gaming components for game play at the table.
[0418] Game content providers, gaming regulators, and other
entities may be required to track the use of game software on
various gaming platforms and make efforts to prevent the
unauthorized use of game software. To ensure fairness, gaming
regulators need to be able show that game software residing on, for
example, a game table is authentic and approved game software from
an authorized content provider. For certain entities, such as game
content providers, to be properly compensated they may also need to
know the locations their software is being used and the
frequency.
[0419] An auditing module 2910 may access an authorized wager game
data set 3012 containing a list of wager games that are
unrestricted or permitted in the jurisdiction in which the game
table operates. In the described embodiment, auditing module 2910
performs jurisdictional checks for game table system 2800 to ensure
that unauthorized or restricted games and pay tables in the
jurisdiction based on gaming regulations (and/or on internal gaming
operator or casino policy) are not played at any of the player
stations at the game table. In another embodiment, authorized game
data set 3012 may contain a list of wager games that are restricted
in the jurisdiction or a list of both restricted/unauthorized and
allowed games.
[0420] In the described embodiment, audit data 3014 are maintained
for each player station of the game table. In another embodiment,
audit data 3014 may be maintained by auditing module 2910 as a
single data set that stores data sequentially, based only on the
time data are collected by module 2910. Audit data 3014 may be used
to demonstrate to third parties, such as a gaming control board or
a central licensing entity, that unauthorized wager games were not
downloaded onto the game table system or executed at any of the
player stations. For example, a gaming operator controlling the
game table system may use audit data 3014 to show that a remote
gaming device used with the table did not execute a restricted
wager game, for example, by providing a detailed audit trail in the
form of a usage report.
[0421] At pre-determined time intervals, or as desired by a gaming
operator, auditing module 2910 of license management module 2802
may obtain current wager game and player station software
configurations from player stations at a game table. Such software
configurations may include wager game software modules of various
types as described above, game-related software, player station
operational software (e.g., communication software, firmware,
etc.), and various other types of software that may be resident on
a player station. If there are differences between the
configurations and data maintained by license management module
2802, such as game usage data 3010 and content usage data 3016, it
may then reconcile the software configuration on a player station
and generate a reconciliation report that confirms or disputes that
transaction records are consistent with the current software
configuration at the player station.
[0422] In the described embodiment, a content usage component 2914
in license management module 2802 monitors the use of content and
intellectual property that may be related to game play execution
offered at player stations at a game table or to the game table
generally. In another embodiment, each player station may have a
content usage component 3106 to perform similar monitoring for a
particular player station. These data are stored in content usage
data area 3016 in memory 2802. As noted above, content may consist
of music, movies, themes (e.g., from movies, TV shows, etc.),
celebrity images, trademarks and logos, and so on. In the described
embodiment, each specific usage of such content, some of which may
be considered intellectual property of third parties, is tracked by
content usage component 2914. For example, each time a music or
video clip is played at a station or at the table (e.g., shown on
common display 2706 or played through game table speakers), such
use of the content is monitored and stored in content usage data
3016. As described above, a player station may be used for
non-wager gaming activity such as listening to music, accessing the
Internet, watching movies, viewing promotional videos, playing
non-wager video games, and the like. In these cases, the uses may
not involve any game usage data 3010 and only content usage data
3016. In another example, the use of music, images, and the like
may be part of a wager game and the usage of the content may have a
direct correlation to the use of a wager game. However, it may be
preferable to maintain content usage data 3016 separately from game
usage data 3010. This may facilitate calculating licensing fees,
royalty payments, taxes, and so on for use of the content and keep
such calculations separate from licensing calculations for wager
game software and gaming software generally.
[0423] In another embodiment, a software application usage
component 2916 in license management module 2802 monitors usage of
various types of game-related and operational software used at
player stations and by the game table. For example, such software
may include non-wager game specific software, such as individual
and group bonus play code, progressive game code, player tracking
code, software for facilitating data communication and data
storage/retrieval, operating system software, and various firmware,
for which royalties, license fees, or taxes may have to be paid to
third parties. As with wager game usage and content usage modules,
there may also be a software application usage module 3108 in
license management module 2818 on a player station that performs
software application monitoring at a participating player
station.
[0424] In the described embodiment, license management module 2802
has a license fee calculation component 2916 that enables a game
table to perform licensing fee calculations for wager gaming and
other activities at the game table. For example, component 2916 may
calculate a licensing cost associated with a particular wager game
executed at the table over a specific time period. Numerous types
of licensing arrangements and schemes are described with respect to
numerous figures above. In one example, a licensing cost may be an
agreed upon charge that is provided to a game provider each time a
game is played at the game table. In another example, multiple
providers or vendors may provide software used to generate a wager
game played at a game table. For example, one vendor may provide
software for a game engine that specifies a logical flow of the
game, another vendor may provide game software that generates the
graphical presentation in conjunction with the game engine and
another may provide game configuration software. Thus, when a wager
game is played using the game engine, the graphical presentation,
and the configuration software, the game table may calculate a
licensing cost for each of these components so that the appropriate
entities can be compensated.
[0425] The licensing cost for a wager game may depend on these and
numerous other factors and, in one embodiment, may be calculated by
the game table using fee calculation component 2918. Various types
of data may be tracked by the game table and stored as license
calculation data 3018 in memory 2820. A few examples include data
indicating the popularity of the game, the time that the game is
played, wager amounts associated with the game, the mode in which
the game is played (e.g., at the table, Internet login, portable
device), game table location, among many other factors. For
example, the licensing cost for each usage instance may vary among
different wager game components. For example, a graphical
presentation component of a wager game may use more content, such
as images, music, themes, etc., while the core game flow logic may
use no such content. Other factors that may be taken into account
may include the use of stand-alone bonus game modules, progressive
game modules, group bonus game modules, and so on.
[0426] In another embodiment, game table system 2800 performs local
license management functions for one or more additional game tables
and/or gaming machines. As shown in FIG. 28, game table system 2800
is connected to game table 2812 and gaming machine 2814 via gaming
network 2810. In another embodiment, system 2800 may have direct
data communication connections to these and other gaming devices in
the network, including central licensing server 2824. In one
embodiment, license management module 2802 performs some or all of
the functions described above for player stations at one or more
other game tables. For example, game usage data 3010 and audit data
3014 may, store data on player stations B1, B2 . . . C1, C2 . . .
associated with other game tables in the network. License
management module 2802 may also monitor and maintain data on
content usage and license calculation for other tables. In another
example, game table system 2800 may maintain data related to
registered devices and users for multiple game tables in a gaming
network. A user attempting to login to game table 2812 using a home
PC may have her identity verified using registered user data 3008
on table system 2800. In another example, a player at a casino
using a hand-held, portable gaming device to access a player
station at table 2812 or another table may have his identity and
gaming device verified using device data 3002 and user data 3008.
In one embodiment, data stored in peer network gaming directory
2202 of FIG. 22, such as component list 2204, component capability
data 2210, and connections data 2212, may be stored in memory 2820
or other memory storage area in game table system 2800. These data
may be used to facilitate management of licensing and auditing for
external player stations and gaming machines.
[0427] FIGS. 32a and 32b indicate a flow diagram of a process of
managing licenses at a game table having multiple player stations
in accordance with one embodiment of the present invention. Steps
of the method shown and described herein need not be performed (and
in some implementations are not performed) in the order indicated.
Some implementations of this method may include more or fewer steps
than those described. As described above, a user of a game table
participates in table game play by utilizing or activating one of
the player stations, either while physically present at the table
or remotely over a network. At step 3202, the game table detects
that a player station has been activated, for example, by use of a
media reader, such as a card swipe, placement of chips on the
table, informing the dealer, detecting a remote login, and the
like.
[0428] At step 3204, a component of the game table system, such as
host controller 2804 or license management module 2802, determines
the type of gaming device being used with the player station. For
example, the device may be table gaming device 2708 of which there
may be standard and enhanced versions, or it may casino-issued
portable hand-held gaming device 2712. Although there are examples
of gaming devices described above, there may be other types of
devices not described here that may be used to interact with a game
table. At step 3206 the game table system determines whether the
device is a game table device, such as device 2708 that is embedded
in the game table (and may be removed), or whether it is a non-game
table device, such as a home PC or a remote, portable device, such
as device 2712. If the device is a remote, non-table device, at
step 3208, the table determines whether the device is registered
and can be trusted by checking, for example, device identifiers
3004. In the described embodiment, the game table system ensures
that a gaming device attempting to access a player station is a
trusted device and has been previously registered with the table.
If the game table determines that it is not, control goes to step
3210 where player station activation is aborted.
[0429] If the device is trusted, the game table verifies the
identity of the user at step 3212. For example, the table may
ensure that user information being inputted, which may be a
password or biometric data, is of a user who is associated with the
device and, preferably is known to the game table. The game table
system may also ensure that the user is above a certain age (based
on jurisdictional requirements), has the minimum amount in a
monetary account for wagering, and the like. If the system
determines that the user cannot be verified or authorized to
participate in table game play, it aborts player station activation
at step 3210 and the process ends. In other embodiments, steps 3208
and 3212 may be performed concurrently.
[0430] In the described embodiment, if the game table system
determines that the device is trusted, that the user's identity has
been verified and authenticated, the game table determines whether
the game being requested or presently being offered at the player
station is an authorized game at step 3214. For example, the game
table system may check whether the game is on authorized wager game
list 3012. By performing this check, the system is able to create
an audit trail or usage report to assert that only authorized games
have been played at the game table.
[0431] Returning to step 3206, if the game table determines that
the gaming device is a game table device, in one embodiment,
control goes directly to step 3214 where an authorized game check
is performed. In other embodiments, if the game device a game table
device (i.e., is part of the table), step 3212 may be performed,
where the user's identity is verified and authenticated. For
example, it may be casino policy to always perform identity checks
when a player station is activated regardless of the activation
mode, that is, whether the player is physically present at the
table or accessing the table remotely. In another embodiment, the
game table system may also ensure that the game table device is a
trusted device. For example, there may be a preliminary check to
ensure that a gaming device from another game table was not
inadvertently placed in a docking area in the wrong table. If at
step 3214 it is determined that the game is not authorized, the
user is notified that the game is not available and other game
options are presented at step 3216.
[0432] At step 3214 it is determined that the game is authorized,
in one embodiment control goes to step 3218 where the license
management module of the game table system utilizes auditing module
2910 to update audit data 3014. In another embodiment, the game
table system using audit module 2910 may also request the current
software configuration of a player station, for example, to perform
software maintenance, such as providing software updates to the
gaming device or directing it to purge old software. It may also
create reconciliation reports. At step 3220 the license management
module or other component in the game table system receives a
request for license tokens needed by the gaming device to execute
the wager game. As described in detail above, there may be one or
more tokens needed to execute the game on a specific gaming device
depending on the type of game, the operational capabilities of the
device, and the like. At step 3222 the license management module of
the game table system checks whether the necessary tokens are
available for distribution. In one embodiment, this may be done by
sending an inquiry to the central licensing server 2824. If they
are not, the user is preferably notified that the game is not
currently available and that there may be other options for
participating in game play at the table.
[0433] If all the necessary license tokens are available, control
goes to step 3226 where the tokens are distributed to the gaming
device. In one embodiment, license management module 2802 may
follow token distribution rules similar to rules 1558 and utilize a
token tracking module such as module 1556 as described above in
FIGS. 17a to 17d. In another embodiment, as part of step 3226, the
license tokens distributed are compared with rules provided in
software license certificates to determine whether there is
compliance with the rules and whether the license token is valid,
as described in steps 1612 and 1628 of FIG. 20. In one embodiment,
the device may verify or confirm that it has the operational
capabilities for the game software for which it has received
license tokens so that unnecessary token usage and licensing fees
are not incurred. At step 3228 game usage data 3010 are updated. In
the described embodiment, this is done based on the distribution
and acceptance of license tokens to the player station. As
described below, game usage data are updated during game play to
reflect further usage details.
[0434] At step 3230, license management module 2802 or other
suitable component in the game table system determines whether
there is content, such as intellectual property, associated with
the wager game that is under a license or which requires royalty
payments, taxes, and the like, such as music, video clips, images,
trademarks, logos, and so on. If there is, content usage data 3016
are updated at step 3232. At step 3234, license management module
2802 determines whether the gaming device is utilizing licensed
software related to wager game execution. As described earlier,
there are numerous examples of such software, including software
for progressive game play, bonus games, device operations, data
communications, and so on. In another embodiment, software usage
data 3020 may be used for auditing, billing, and reconciliation as
described with respect to module 1512 of FIG. 16. If at step 3234
it is determined that there is no licensed software that will be
used, or after the software application usage data has been updated
at step 3236, the wager game executes on the gaming device at step
3238. In another embodiment, the wager game may execute at an
earlier time, for example, after step 3226 when the tokens are
distributed to the gaming device. In another embodiment, game
execution may be initiated concurrently with the various usage data
updating steps described above.
[0435] At step 3240, various usage data are updated as the wager
game is played at the game table. Data such as wagering data,
number of games played, number of uses of a music or video clip,
and the like, may only be tracked and stored during game play. In
some cases, these data are collected because license agreements may
require such tracking. It may also be tracked for use in license
fee and billing calculations and other accounting requirements. All
or some of these data may also be used for auditing purposes and to
reconcile data maintained by the game table and the player
stations.
[0436] In the described embodiment, at step 3242, when a user is
done playing a wager game at a player station (indicated, for
example, by cashing out or switching to another game), license
tokens which are no longer needed by the gaming device are returned
to the license management module or other component of the game
table. They may be placed in a license pool by central licensing
server 2824 for use by other gaming devices as described in FIGS.
16, 17a to 17d above. At this stage the described license
management process is complete.
[0437] Other embodiments of the process described in FIG. 32 may
include use of game, content, and software application usage data
storage and monitoring modules contained at a player station or in
a gaming device as shown in FIG. 31. For example, content usage
data updates that occur at steps 3232 and 3240 may also involve
updating content usage data 3106. In another example, when
determining whether a device is trusted at step 3208, certificate
3102 may be examined to obtain data on a particular gaming device.
In another example, token request and distribution steps 3220 and
3226, for example, and the usage updating steps described above may
be done for player stations at other game tables connected to the
game table system performing as a local licensing server for those
other tables. Such a connection to other game tables and gaming
machines may be implemented over a gaming network, such as casino
network 1300 described in FIG. 18.
[0438] Although the foregoing invention has been described in some
detail for purposes of clarity of understanding, it will be
apparent that certain changes and modifications may be practiced
within the scope of the appended claims. For instance, while the
gaming machines of this invention have been depicted as having top
box mounted on top of the main gaming machine cabinet, the use of
gaming devices in accordance with this invention is not so limited.
For example, a gaming machine may be provided without a top
box.
* * * * *
References