U.S. patent application number 11/502270 was filed with the patent office on 2007-03-15 for game machine software and communications for community bonus round gaming.
This patent application is currently assigned to Spectre Gaming, Inc.. Invention is credited to Braun Martin.
Application Number | 20070060331 11/502270 |
Document ID | / |
Family ID | 46325867 |
Filed Date | 2007-03-15 |
United States Patent
Application |
20070060331 |
Kind Code |
A1 |
Martin; Braun |
March 15, 2007 |
Game machine software and communications for community bonus round
gaming
Abstract
A software product for operating a game with a community bonus
round includes software and a storage medium. The software is
operational when executed by a processor to direct the processor to
receive a game play event from an interface of a game machine and
transmit the game play event to a game system. The software is also
operational when executed by the processor to direct the processor
to process the game play event to determine a state of the game
with the community bonus round and transmit the state to the game
system for synchronization. The storage medium stores the
software.
Inventors: |
Martin; Braun; (Auburn,
CA) |
Correspondence
Address: |
CARR & FERRELL LLP
2200 GENG ROAD
PALO ALTO
CA
94303
US
|
Assignee: |
Spectre Gaming, Inc.
|
Family ID: |
46325867 |
Appl. No.: |
11/502270 |
Filed: |
August 9, 2006 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11202483 |
Aug 11, 2005 |
|
|
|
11502270 |
Aug 9, 2006 |
|
|
|
60707048 |
Aug 9, 2005 |
|
|
|
Current U.S.
Class: |
463/29 |
Current CPC
Class: |
G07F 17/3276 20130101;
G07F 17/32 20130101 |
Class at
Publication: |
463/029 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A software product for operating a game with a community bonus
round, the software product comprising: software operational when
executed by a processor to direct the processor to receive a game
play event from an interface of a game machine, transmit the game
play event to a game system, process the game play event to
determine a state of the game with the community bonus round, and
transmit the state to the game system for synchronization; and a
storage medium configured to store the software.
2. The software product of claim 1 wherein the game play event
indicates a user interaction with the game machine.
3. The software product of claim 1 wherein the game machine
comprises another game machine.
4. The software product of claim 1 wherein the game machine
comprises a server.
5. The software product of claim 1 wherein the state indicates a
condition of hardware in the game machine.
6. The software product of claim 1 wherein the state indicates a
transaction in the game.
7. The software product of claim 1 wherein the software comprises
game client software operational when executed by the processor to
direct the processor to receive the game play event from the
interface of the game machine and transmit the game play event to a
game system.
8. The software product of claim 1 wherein the software comprises
state manger software operational when executed by the processor to
direct the processor to process the game play event to determine a
state of the game with the community bonus round and transmit the
state to the game system for synchronization
9. The software product of claim 1 wherein the software comprises
state manager software operational when executed by the processor
to direct the processor to process communications between the game
machine and the game system.
10. The software product of claim 1 wherein the software is
operational when executed by the processor to direct the processor
to receive a message indicating an offer to join the community
bonus round.
11. A system for operating a game with a community bonus round, the
system comprising: a user interface configured to generate a game
play event based on user input; and a processor configured to
receive the game play event from the user interface, transmit the
game play event to a game system, process the game play event to
determine a state of the game with the community bonus round, and
transmit the state to the game system for synchronization.
12. The system of claim 11 wherein the game play event indicates a
user interaction with the game machine.
13. The system of claim 11 wherein the game machine comprises
another game machine.
14. The system of claim 11 wherein the game machine comprises a
server.
15. The system of claim 11 wherein the state indicates a condition
of hardware in the game machine.
16. The system of claim 11 wherein the state indicates a
transaction in the game.
17. The system of claim 11 wherein the processor is configured to
receive a message indicating an offer to join the community bonus
round.
18. A method for operating a game with a community bonus round, the
method comprising: in a user interface, generating a game play
event based on user input; receiving the game play event from the
user interface; transmitting the game play event to a game system;
processing the game play event to determine a state of the game
with the community bonus round; and transmitting the state to the
game system for synchronization.
19. The method of claim 18 wherein the game play event indicates a
user interaction with the game machine.
20. The method of claim 18 wherein the game machine comprises
another game machine.
21. The method of claim 18 wherein the game machine comprises a
server.
22. The method of claim 18 wherein the state indicates a condition
of hardware in the game machine.
23. The method of claim 18 wherein the state indicates a
transaction in the game.
24. The method of claim 18 further comprising receiving a message
indicating an offer to join the community bonus round.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S.
application Ser. No. 11/202,483 titled "Community Bonus Round
Gaming" filed Aug. 11, 2005, and claims the priority of U.S.
Provisional Application Ser. No. 60/707,048 titled "Community Bonus
Round Gaming," filed Aug. 9, 2005, which are both hereby
incorporated by reference.
BACKGROUND
[0002] 1. Field of the Invention
[0003] The present invention relates generally to gaming, and more
particularly, to game machine software and communications for
community bonus round gaming.
[0004] 2. Description of the Prior Art
[0005] With the continued expansion of casino gambling, casino
companies must compete more than ever for gambling dollars. To
attract customers, casino companies are avoiding the traditional
short-term, stop-gap solutions (e.g. increasing the buffet
offering, giving rooms away, advertising double and triple points)
and focusing on improving the guest's overall casino
experience.
[0006] One technique to improve the guest's casino experience is to
implement a bonus game in slot machines. A bonus game may be
triggered during normal game play on a slot machine and offers
players a new game. For example, a video poker slot machine offered
International Game Technology (IGT) triggers a bonus game when
certain conditions are met. Once bonus game play is complete, the
IGT video poker slot machine resumes normal game play.
[0007] Another example of improving the casino experience is a slot
machine with progressive payouts. As each individual slot machine
plays a game, the progressive payout increases. The slot machine
displays the progressive payout on a large screen to encourage
other players to participate. The server collects information
regarding the income received from the different slot machines and
creates a jackpot. When the specific slot machine "hits the
jackpot" such as triples sevens, the specific slot machine wins the
progressive payout. An example of the slot machine with progressive
payouts is the "Wheel of Fortune" slot machine.
[0008] There are approximately 754,000 slot machines currently
installed in North America. This represents a 400% increase from
the number of machines installed in 1991. Although many of these
slot machines appear to have different games, operate as slot
machines with progressive payouts, or offer a bonus game, the vast
majority of slot machines operate extremely similarly. For example,
the "Terminator" slot machine plays the same game as the "I Love
Lucy" slot machine. Aside from slight differences in graphics and
sound, game play has not significantly changed.
SUMMARY OF THE INVENTION
[0009] A software product for operating a game with a community
bonus round includes software and a storage medium. The software is
operational when executed by a processor to direct the processor to
receive a game play event from an interface of a game machine and
transmit the game play event to a game system. The software is also
operational when executed by the processor to direct the processor
to process the game play event to determine a state of the game
with the community bonus round and transmit the state to the game
system for synchronization. The storage medium stores the
software.
[0010] The game play event may indicate a user interaction with the
game machine. The game machine may include another game machine or
a server. The state may indicate a condition of hardware in the
game machine or a transaction in the game. The software may
comprise game client software and state manager software. The
software may be operational when executed by the processor to
direct the processor to receive a message indicating an offer to
join the community bonus round.
[0011] A system for operating a game with a community bonus round
includes a user interface and a processor. The user interface
generates a game play event based on user input. The processor
receives the game play event from the user interface and transmits
the game play event to a game system. The processor also processes
the game play event to determine a state of the game with the
community bonus round and transmits the state to the game system
for synchronization.
[0012] A method for operating a game with a community bonus round
includes the steps of in a user interface, generating a game play
event based on user input and receiving the game play event from
the user interface. The method also includes the steps of
transmitting the game play event to a game system, processing the
game play event to determine a state of the game with the community
bonus round, and transmitting the state to the game system for
synchronization.
[0013] By allowing game machines to play bonus rounds within a
community, new games may be offered to players. The players within
the community may directly compete with each other, work together,
or experience new forms of entertainment that were previously
unavailable. The casino may utilize community bonus round gaming to
encourage groups, friends, associations, and clubs to game together
or create excitement in a casino to entice other people to
participate in community bonus round gaming. The software product
advantageously provides game play events to another game system
such as a bonus server or another game machine to provide
communications in order to execute a community bonus round. The
community bonus round requires communications between the game
machine and another game system to generate the community
excitement and interaction to encourage greater player
participation. The software product also provides synchronization
between the game machine and game system to ensure proper execution
of the community bonus round.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] FIG. 1 is an illustration of a system for gaming in one
embodiment of the invention.
[0015] FIG. 2 is an illustration of a game machine in one
embodiment of the invention.
[0016] FIG. 3 is a flow chart depicting the initiation and play of
a community bonus round in one embodiment of the invention.
[0017] FIG. 4 is a flow chart depicting the initiation and play of
a community bonus round in another embodiment of the invention.
[0018] FIG. 5 is a block diagram of the game machine in one
embodiment of the invention.
[0019] FIG. 6 is a block diagram of a game machine module in one
embodiment of the invention.
[0020] FIG. 7 is a block diagram of a bonus server module in one
embodiment of the invention.
[0021] FIG. 8 is a block diagram of a system for community bonus
round gaming in one embodiment of the invention.
[0022] FIG. 9 is a flow chart for a game client in one embodiment
of the invention.
[0023] FIG. 10 is a block diagram of a system for community bonus
round gaming in one embodiment of the invention.
[0024] FIG. 11 is a flow chart for state managers in one embodiment
of the invention.
[0025] FIG. 12 is an illustration of communications layers and a
communications protocol in an embodiment of the invention.
[0026] FIG. 13 is an illustration of a communication protocol
header in one embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0027] The embodiments discussed herein are illustrative of one
example of the present invention. As these embodiments of the
present invention are described with reference to illustrations,
various modifications or adaptations of the methods and/or specific
structures described may become apparent to those skilled in the
art. All such modifications, adaptations, or variations that rely
upon the teachings of the present invention, and through which
these teachings have advanced the art, are considered to be within
the scope of the present invention. Hence, these descriptions and
drawings should not be considered in a limiting sense, as it is
understood that the present invention is in no way limited to only
the embodiments illustrated.
[0028] Community bonus round game play across multiple game
machines allows multiple players to participate in the same game. A
game machine is a machine that allows a player to input data and/or
money into the game machine to play a game for the opportunity to
win points, currency, awards, or prizes. One example of the game
machine is a slot machine.
[0029] In one embodiment, the game machine allows the player to
play games much like a traditional slot machine. However, a
community bonus round may be triggered to engage the game machine
in a community bonus round. Simultaneously, or soon thereafter, one
or more other game machines may be invited to join the community
bonus round thereby allowing other players to participate within
the same community bonus round. In one example, players cooperate
within the community bonus round to maximize scores for all
participants. Alternatively, the community bonus round may allow
multiple players to compete with each other for points, currency,
awards, or prizes. In another example, players may receive a bonus
by merely playing within the community bonus round.
[0030] FIG. 1 is an illustration of a system for gaming 100 in one
embodiment of the invention. The system for gaming 100 comprises
the bonus server 110, the game machines 120, 130, and 140, and the
communications network 150. The communications network 150 is
coupled to the bonus server 110 and the game machines 120, 130, and
140.
[0031] The communications network 150 may comprise a single device
or multiple devices. In one embodiment, the communications network
150 is a router that routes data to a limited number of devices. In
another embodiment, the communications network 150 comprises
multiple routers, bridges, and hubs that couple a larger number of
devices. A communications network 150 may be a local area network
(LAN), a wide area network (WAN), a globally accessible network,
such as the Internet, or any other network that allows devices to
communicate and transmit data to each other.
[0032] Although the communications network 150 illustrated within
FIG. 1 appears to be a "star" topology (i.e. each device
communicates to a central hub), the communications network 150 may
be any topology. In one example, the communications network 150
comprises a peer-to-peer network wherein the devices connect
directly to each other in a "ring" topology.
[0033] The bonus server 110 is any device or system configured to
generate and transmit an initiation message to the game machines
120, 130, and 140, to initiate the community bonus round, receive
game information from the game machines 120, 130, and 140, and
determine a result for the community bonus round.
[0034] The initiation message is any signal, message, or
instruction that directs the game machines 120, 130, or 140 to
activate the community bonus round. The initiation message may
further comprise a message to the players of the game machines 120,
130, and 140, notifying the players of the impending community
bonus round and requesting further input.
[0035] The community bonus round is any extra, special, premium, or
bonus mode that follows a normal gaming mode and may be played by
two or more game machines 120, 130, and/or 140. In one embodiment,
the community bonus round is triggered upon the occurrence of some
preset condition on one of the game machines 120, 130, or 140.
[0036] In some embodiments, the community bonus round is
collaborative, competitive, or associative. In one example, when
the community bonus round is collaborative, the players of the
first game machine 120 and the other participating game machines
130 and 140 will play together to achieve a bonus goal during the
round. For example, the goal of the community bonus round is to
score more points than some preset limit. If, at the end of the
community bonus round play, the sum of all of the players' points
total more than the preset limit, the bonus server 110 awards
points, currency, awards, or prizes to the players of the
participating game machines 120, 130, and 140. The end of the
community bonus round may be triggered by time expiring, a maximum
number of spins engaged, the sum of the players' scores reaching a
preset limit, or the success of achieving the goal.
[0037] In another example, the community bonus round is
competitive; In this example, the players of the first game machine
120 and the other participating game machines 130 and 140 play
against each other for points, currency, awards, or prizes. The
bonus server 110 may monitor and calculate the individual scores
for the different participating game machines 120, 130, and 140.
When the community bonus round ends, the bonus server 110
determines the winner of the community bonus round. In one example,
the winner of the community bonus round is the first player to
achieve some preset goal. In another example, the winner is the
player who scored the most points within a given time. The
community bonus round may end when time expires, a maximum number
of spins are engaged, or the preset goal is achieved.
[0038] In another example, the community bonus round is
associative. In this example, the players of the first game machine
120 and the other participating game machines 130 and 140 join the
community bonus round and are awarded points, currency, awards, or
prizes for merely participating. For example, the community bonus
round may comprise the first game machine 120 displaying a golfer
hitting a golf ball. Subsequently, the golf ball may be depicted as
bouncing by the participating game machines 130. The golf ball may
also be depicted landing close or into a hole on another
participating game machine 140. The bonus server 110 may then
calculate the scores and results of the community bonus round. For
example, the bonus server 110 may award a higher number of points
to the game machines 120 and 140 that depict the golfer's swing or
the golf hole. The bonus server 110 may award a different number of
points to every participating game machine 130 that depicted the
golf ball bouncing or rolling. The community bonus round ends when
some condition is met. In this example, the community bonus round
ends when the golf ball is depicted as coming to a halt.
[0039] The game information is any information or data that
indicates metrics or results from a game. Some examples of game
information are a state of play of the game machine 120, 130,
and/or 140, player information, status of the community bonus
round, game machine data, a request to join the community bonus
round, a refusal to join the community bonus round, and/or an
acceptance to join the community bonus round.
[0040] The state of play of the game machine 120, 130, and/or 140
comprises the current activity of the game machine 120, 130, and/or
140. States of play may include, but are not limited to, waiting
for a player to initiate game play, normal game play, activating
the community bonus round, playing the community bonus round, or
transitioning from normal game play to the community bonus
round.
[0041] The game information may also comprise the request to join
the community bonus round, the refusal to join the community bonus
round, and/or the acceptance to join the community bonus round. In
one example, the player receives a request to join the community
bonus round on the game machine 120. The player subsequently inputs
the acceptance or refusal to join the community bonus round. The
game machine 120 transmits the acceptance or refusal to the bonus
server 110. In one example, the bonus server 110 or other game
machines 130 or 140 receive the acceptance and then adds the game
machine 120 to an existing community bonus round. In another
example, the game machine 120 performs at least some of the logic
to activate the community bonus round. In this example, the game
machine 120 initiates the community bonus round. The game machine
120 then transmits the request to join the community bonus round to
the bonus server 110, which, in turn, transmits the request to the
other game machine 130 or 140 to join the community bonus
round.
[0042] In one embodiment, the bonus server 110 controls at least
some of the game play on the game machines 120, 130, and/or 140.
For example, the player engages the game machine 120 to play a
game, while the bonus server 110 performs the game logic that
controls the parameters and game execution.
[0043] The game machines 120, 130, and 140 are devices or systems
that are configured to activate the community bonus round and
transmit game information in the community bonus round.
[0044] Although the bonus server 110 is illustrated in FIG. 1 as a
separate device from the game machines 120, 130, or 140, some or
all of the functions of the bonus server 110 may be contained
within a software module of one of the game machines 120, 130, or
140.
[0045] Optionally, an administrative server and a marketing server
(not shown in FIG. 1) may be devices or systems on the
communications network 150. An administrative server maintains
information relating to game play and community bonus round play as
well as metrics from the bonus server 110 and the game machines
120, 130, and 140. In one example, the administrative server
receives and stores scores, player information, wins, losses,
currency received, and the currency paid out by each game machine
120, 130, and 140. The administrative server may perform
calculations to determine the relative success of each game machine
120, 130, and 140. The administrative server may also perform
calculations to determine the relative success of individual games
on the game machines 120, 130, and 140, as well as the outcome of
community bonus rounds. These functions may also be performed by
the bonus server 110. A marketing server may store advertisements
or marketing information. In one example, the marketing server
sends advertisements and/or marketing information to the game
machine 120, 130, and 140 to be displayed.
[0046] FIG. 2 is an illustration of a game machine 200 in one
embodiment of the invention. The game machine 200 comprises a bonus
display 210, a primary display 220, a programmable button panel
230, a ticket printer 240, a bill/ticket acceptor 250, a player
loyalty system 260, a coin tray 270, and a candle 280.
[0047] The bonus display 210 and the primary display 220 are any
devices configured to visually interact with the player of the game
machine 200. For example, the bonus display 210 and/or the primary
display may be a television screen, a monitor, a touch-screen, a
tablet display, a liquid crystal display (LCD), a plasma device, a
cathode-ray tube (CRT) screen, a flat panel device, a terminal
display, or a rear projection device. In other embodiments, the
bonus display 210 and the primary display 220 are the same display.
The bonus display 210 may be configured to show the game play of
the game machine 200. In one example, the bonus display 210
displays the same game play as the primary display 220 thereby
allowing spectators to view the game play.
[0048] The bonus display 210 may be configured to display
information associated with a community bonus round,
advertisements, games, or player information. In one example, the
bonus display 210 displays information associated with the
community bonus round such as how to play the community bonus
round, when the community bonus round will begin, an offer to join
the community bonus round, community bonus round play or scores.
The primary display 220 may also be configured to display
information associated with the community bonus round.
[0049] In another example, the bonus display 210 is configured to
display advertisements. Advertisements may contain information
selling the functions of the game machine 200, games offered by the
game machine 200, services offered by the owner or leaser of the
game machine, or any other advertisements. The bonus display 210
may also be configured to display available games. In another
embodiment, the bonus display 210 displays scores or gaming results
of the player of the game machine 200. The primary display 220 may
also be configured to display advertisements, available games,
scores, and/or gaming results.
[0050] The programmable button panel 230 is configured to accept
input from the player of the game machine 200. In one example, each
individual buttons on the programmable button panel 230 may be
programmed to perform certain functions. Although ten buttons are
depicted, the programmable button panel 230 may comprise any number
of buttons, joysticks, or switches. The programmable button panel
230 may also comprise a touch screen or other device capable of
accepting player input.
[0051] The ticket printer 240 is any printer capable of printing
receipts, tickets, or other documents for the player or game
machine 200 technician. In some embodiments, the ticket printer 240
may print advertisements or coupons that are redeemable by the
player.
[0052] The bill/ticket acceptor 250 is any device capable of
receiving and reading currency, tokens, or tickets. The bill/ticket
acceptor 250 may comprise a card reader configured to receive and
read credit cards, debit cards, or stored value cards.
[0053] The player loyalty system 260 is any device capable of
receiving player information from the player of the game machine
200. In one embodiment, the player loyalty system 260 comprises a
card reader that may receive and read player information from a
player loyalty card. In some embodiments, the player loyalty system
260 comprises a keypad or touch screen with which the player may
enter a password, input player information, and/or request
services.
[0054] Player information may comprise player identification, game
preferences, time spent playing each game, casino preference, drink
preference, associated friends, family members, clubs, hobbies,
money spent, and winnings. The player information may be stored on
a player loyalty card, bonus server 110 (FIG. 1), and/or game
machine 200. The player loyalty card is any card that may be
carried by a player that contains at least some player
information.
[0055] The status of the community bonus round may indicate the
game machine 200's activation of the community bonus round, the
preparation to begin the community bonus round, or the community
bonus round game play. Game machine data comprises resident games,
software versions, firmware versions, audit history, diagnostic
history, and the amount of currency available in the game machine
200.
[0056] The coin tray 270 is a tray configured to hold coins or
tokens that are issued from the game machine 200. The candle 280 is
a reflector and/or light. In some embodiments, the candle 280
indicates that the game machine 200 requires service or is in a
tilt condition.
[0057] FIG. 3 is a flow chart depicting the initiation and play of
a community bonus round in one embodiment of the invention. FIG. 3
begins with step 300. In step 310, the first game machine 120 (FIG.
1) transmits game information to the bonus server 110. In one
example, a player inputs currency into the first game machine 120.
The first game machine 120 transmits a message to the bonus server
110 indicating that currency has been received and game play has
been initiated.
[0058] In step 320, the bonus server 110 determines a community
bonus round activation on the first game machine 120. In some
embodiments, the bonus server 110 monitors the first game machine
120 or the game logic to determine if the conditions are met. For
example, the bonus server 110 may determine which conditions are
necessary to trigger the community bonus round such as hitting a
jackpot. Accordingly, if the game logic determines that this
condition is to occur, then the bonus server 110 triggers the
community bonus round.
[0059] In step 330, the bonus server 110 generates an initiation
message to the first game machine 120 and one or more other game
machines 130 and/or 140 to initiate the community bonus round. In
some embodiments, the bonus server 110 generates messages to invite
the players on the game machines 120, 130, and 140 to participate
in the community bonus round. The bonus server 110 then generates a
command to prepare the game machines 120, 130, and/or 140 that
accepted joining the community bonus round. In one example, the
bonus server 110 generates a command to the game machines 120, 130
and/or 140 participating within the community bonus round to
display the name and location of each player. In another example,
the bonus server 110 generates a command to the participating game
machines 120, 130 and/or 140 to display rules of the community
bonus round or a count-down of when the community bonus round is to
begin. In a further example, the bonus server 110 downloads
software or data to prepare the game machines 120, 130, and/or 140
to play the community bonus round.
[0060] In step 340, the bonus server 110 activates the community
bonus round on the first game machine 120. In one example, the
bonus server 110 generates a command to activate the community
bonus round to the first game machine 120. The first game machine
120 receives the command, generates the necessary graphics, and
prepares to receive input from the player. In some embodiments, the
bonus server 110 performs the necessary community bonus round logic
and processes player inputs received from the first game machine
120 and other game machines 130 and/or 140.
[0061] In step 350, the bonus server 110 determines results for the
community bonus round. In one example, the bonus server 110
collects scores from the first game machine 120 and the other
participating game machines 130 and/or 140. The final scores may be
calculated by the bonus server 110 as the community bonus round is
played or the final scores may be calculated by the participating
game machines 120, 130, and/or 140. Once the play of the community
bonus round is completed, the bonus server 110 proceeds to
calculate final results depending on the rules of the community
bonus round. FIG. 3 ends in step 360.
[0062] FIG. 4 is a flow chart depicting the initiation and play of
a community bonus round in another embodiment of the invention.
FIG. 4 begins in step 400. In step 405, the player initiates game
play. In one example, the player inputs currency, tokens, or
tickets into the bill/ticket acceptor 250 (FIG. 2) of the game
machine 120 (FIG. 1).
[0063] In step 410, the game machine 120 sends a game play event to
the bonus server 110. In one example, the game machine 120 tracks
the amount of currency received and prepares to initiate a game.
The game machine 120 notifies the bonus server 110 that the player
initiated game play. In some embodiments, the bonus server 110
directs the game machine 120 to display a selection of games to the
player and prepare to receive a player selection. The player may
input the selection with the programmable button panel 230 or
through the touch-screen primary display 220. The game machine 120
directs the game selection to the bonus server 110 which then
generates a control signal to the game machine 120 to display
necessary graphics and program the appropriate inputs to play the
selected game. The bonus server 110 also performs the game logic
necessary to play the game. While the game is played, the game
machine 120 transmits player inputs to the bonus server 110 which
generates appropriate commands depending on the game logic.
[0064] In step 415, the bonus server 110 determines if the
community bonus round is triggered. The bonus server 110 monitors
the game play and the state of the game machine 120 to determine if
those conditions are met. If the conditions are not met, FIG. 4
ends in step 450.
[0065] If the conditions are met, then FIG. 4 continues to step 420
where the bonus server 110 selects game machines 120, 130, and/or
140 and determines the bonus messages.
[0066] The bonus server 110 selects game machines 200 to join the
community bonus round. The bonus server 110 may determine if any
conflicts or game incompatibilities exist within each possible game
machine 120, 130, and/or 140. In some embodiments, the bonus server
110 reviews player information to determine if any players are
associated with each other. If there are available players or club
members associated with the player playing the game machine 120
that has begun the community bonus round, the bonus server 110 may
determine bonus messages. In one example, the bonus server 110
generates a command to display an invitation for the community
bonus round to those players.
[0067] In one example, the bonus server 110 notifies the select
game machines 120, 130, and/or 140 that a community bonus round has
been triggered. The bonus server 110 commands the select game
machines 120, 130, and/or 140 to display messages and graphics to
the player on the game machines' primary display 220 or bonus
display 210.
[0068] In other embodiments, the bonus server 110 contacts other
bonus servers 110 to coordinate community bonus round logic between
a plurality of game machines 120, 130, and 140.
[0069] In step 425, the bonus server 110 sends a start community
bonus round signal to the select game machines 120, 130, and/or 140
identified in step 420 and begins timing. In one example, bonus
server 110 generates commands to the select game machines 120, 130,
and/or 140 to load a game interface, display necessary graphics,
and program the respective programmable button panels 230 to play
the community bonus round. In another example, the bonus server 110
generates a signal to the select game machines 120, 130, and/or 140
to display a countdown on the respective bonus displays 210 to
herald the beginning of the community bonus round.
[0070] In step 430, the select game machines 120, 130, and/or 140
begin the community bonus round. Any graphics and community bonus
round play may be depicted on the select game machines' bonus
display 210, the primary display 220, or both.
[0071] In step 435, the select game machines 120, 130, and/or 140
send scores to the bonus server 110. In some embodiments, the bonus
server 110 monitors the select game machines 120, 130, and/or 140
while directing community bonus round logic. In one example, the
bonus server 110 tallies and calculates the scores of the select
game machines 120, 130, and/or 140 during community bonus round
play.
[0072] In step 440, the bonus server 110 calculates and transmits
the community bonus round results to the select game machines 120,
130, and/or 140. In step 445, the bonus server 110 transmits
messages to select game machines 120, 130, and/or 140. In some
embodiments, the bonus server 110 directs the'select game machines
120, 130, and/or 140 to display the results of the community bonus
round play, award points, currency, awards, or prizes, and print
tickets or receipts. The bonus server 110 then directs the select
game machines 120, 130, and/or 140 to return to normal game play.
FIG. 4 ends in step 450.
[0073] FIG. 5 is a block diagram of the game machine 200 in one
embodiment of the invention. The game machine 200 includes a system
bus 580 coupled to a processor 510, memory system 520, storage
system 530, input/output (I/O) interface 540, communications (com.)
network interface 550, primary display 220, and the bonus display
210. The communications network interface 550 is further coupled to
an external communications link 590.
[0074] The processor 510 is configured to execute software or
instructions. The memory system 520 is any memory device configured
to hold data, either permanently or temporarily, to make the data
available to any components connected to the system bus 580. The
memory system 520 may comprise battery-backed random access memory
or read-only memory (ROM).
[0075] The storage system 530 is any storage device or group of
storage devices configured to store data permanently or
temporarily. In one embodiment, the storage system 530 implements a
Read/Verify-after-Write (RVAW) policy where data is verified after
being stored within the storage system 530. Further, the storage
system 530 may comprise a storage device configured to receive and
read external media.
[0076] The I/O interface 540 is any interface or device configured
to provide input or output to the player of the game machine 200.
For example, the I/O interface 540 may comprise a video interface,
audio interface, a remote control, a keypad, joystick,
touch-screen, or buttons. In another embodiment, the I/O interface
540 is coupled to the programmable button panel 230, the ticket
printer 240, the bill/ticket acceptor 250, and the player loyalty
system 260 which are each depicted in FIG. 2.
[0077] The communications network interface 550 is any
communication interface configured to transfer data between any
components connected to the system bus 580 and any network over the
external communications link 590. The external communications link
590 couples the game machine 200 to any communications network.
[0078] FIG. 6 is a block diagram of the game machine module 600 in
one embodiment of the invention. The game machine module 600 is
software or hardware that is resident on the game machine 200 (FIG.
2). The game machine module 600 comprises a game client 610, client
manager 620, client tilt engine 630, client state manager 640,
client diagnostic module 650, client communication manager 660,
client administrative console module 670, and game machine device
drivers 680.
[0079] The game client 610 is an application configured to perform
standard functions on the game machine 200. In some embodiments,
the game client 610 processes game machine 200 inputs (e.g. a
button press), communicates game events to the bonus server 110
(FIG. 1), controls output to the bonus display 210 (FIG. 2),
controls output to the primary display 220, and/or maintains the
game machine 200 state. In some embodiments, the game client 610
relies on data libraries, such as tilt and bonus server libraries,
to perform standard functions.
[0080] The client manager 620 may function as the software
controller for the game machine 200. The client manager 620 manages
the game machine 200 configuration, loads games, unloads games and
manages the display of marketing events.
[0081] The client manager 620 may also control the display of
advertisements. In some embodiments, the client manager 620 may
receive advertisements from a marketing server. When an
advertisement is received by the client manager 620, the client
manager 620 passes the advertisement to the game client 610 to be
displayed.
[0082] The client tilt engine 630 generates tilts on error
conditions in order to prevent cheating and flag errors in game
play. For example, the client tile engine 630 triggers tilt
conditions by errors associated with money, tampering with the game
machine 200, alterations with software and/or firmware, or the
behavior of third party systems.
[0083] The client state manager 640 monitors the operation and
state of the game machine 200. The client state manager 640 is a
repository of the current and past data for the game machine 200
and may function to maintain the data for the game machine's 200
hardware and software components.
[0084] The client diagnostic module 650 provides hardware and
software diagnostic tests. For example, the client diagnostic
module 650 checks the components of the game machine module 600 and
the game machine 200. Regulatory requirements may require that
gaming devices employ mechanisms to verify that game components are
authentic and have not been corrupted or tampered with. The client
diagnostic module 650 may perform a diagnostic test to verify and
authenticate each component of the game machine module 600.
[0085] The client communication manager 660 controls the
communication from the game machine 200 to the communications
network. In one embodiment, the client communication manager 660
encrypts and decrypts communications to and from the communications
network.
[0086] The client administrative console module 670 controls the
function and display of the administrative console to the player or
technician of the game machine 200. The administrative console is
an interface configured to receive input from the technician. The
game client 610 may trigger an administrative mode within the game
machine 200 to display the administrative console.
[0087] The administrative console comprises options for configuring
the game machine 200 and/or the game machine module 600. Further,
the administrative console comprises options for diagnostic
testing, viewing game information, viewing game machine 200
information, or viewing game machine module 600 information.
[0088] The game machine device drivers 680 are used to control and
configure the components of the game machine 200. There may be a
separate game machine device driver 480 for each component
including the bonus display 210, the primary display 220, the
programmable button panel 230, the ticket printer 240, the
bill/ticket acceptor 250, the player loyalty system 260, the coin
tray 270, and the candle 280 (FIG. 2). In one embodiment, one or
more of the game machine device drivers 680 may be configured to
generate reports or events that are received by the game client 610
or the bonus server 110 (FIG. 1).
[0089] For example, the game machine device driver 680 for the
programmable button panel 230 may control the button background
color, button text, button text color, and button value. In another
example, when a button on the programmable button panel 230 is
depressed, the appropriate game machine device driver 680 generates
an event which identifies the button pressed and the button value.
The game machine device driver 680 for the programmable button
panel 230 may reprogram the buttons and button values as a game is
played or when a community bonus round is activated.
[0090] FIG. 7 is a block diagram of a bonus server module 700 in
one embodiment of the invention. The bonus server module 700 is
software that is resident on the bonus server 110 (FIG. 1) and
controls the community bonus round. The bonus server module 700
comprises a server module 705, a platform manager 710, a server
tilt engine 715, a server state manager 720, a server communication
manager 725, a synchronization agent 730, a game matrix module 735,
a rules engine 740, a server diagnostic module 745, a server
administration console module 750, and server device drivers
755.
[0091] The server module 705 interacts with the game client 610
(FIG. 6) within the game machine module 600 to control game play
and the community bonus round. In some embodiments, the server
module 705 controls all of the game logic while the game client 610
controls and records player inputs and graphics on the game
machine's primary display device 210 (FIG. 2). In one example, the
server module 705 manages the game state (e.g. number of credits in
the game machine 200), determines outcomes, controls overall game
behavior, and controls the community bonus round. The game client
610 is responsible for processing the game machine 200 input events
(i.e. button press) and displays results (e.g. spinning and
stopping wheels).
[0092] In other embodiments, the game logic is split between the
server module 705 and the game client 610. For example, the server
module 705 may control overall game behavior while the game client
610 determines outcomes. In further embodiments, the game client
610 performs all of the game logic and the server module 705
collects statistics and monitors performance of the game machine
200.
[0093] The server module 705 may control the community bonus round
and game levels. In one example, the server module 705 controls
community bonus round gaming between two or more game machines 200.
For example, the server module 705 may set the condition necessary
for the player of one game machine 200 to trigger a community bonus
round. When that condition is met, the server module 705 determines
which game machines 200 are active on the network, which game
titles are loaded on each active game machine, which of the loaded
games are compatible with the community bonus round, and if the
games are in a state to participate in the community bonus round.
The server module 705 extends invitations to the players which
satisfy all conditions to play within the community bonus round.
The server module 705 initiates a community bonus round with those
which accept the invitation and then controls the community bonus
round logic. It is appreciated that the server module 705 can
simultaneously control game logic of multiple game machines 200 and
community bonus round logic from multiple community bonus
rounds.
[0094] During community bonus round play, the server module 705
returns play results and community bonus round updates to the
participating game machines 200. The outcome of the community bonus
round is also sent to the participating game machines 200. For
example, each game machine receives the player's score or credits
won in the community bonus round which may be displayed on the game
machine's bonus display device 210 (FIG. 2). The process of
community bonus round play is further described herein.
[0095] The server module 705 may also be configured to interact
with other bonus servers 110 or other server modules 705 when
controlling the community bonus round. For example, multiple server
modules 705 may coordinate a community bonus round between many
game machines 200. Each server module 705 may handle a specific
number of game machines 200 thereby allowing the casino to provide
for community bonus round gaming among any number of game machines
200 in any location (e.g. between different floors of the casino or
between different casinos.) It is appreciated that the server
modules 705 allow for any amount of scaling to control and
coordinate community bonus round game play.
[0096] In another embodiment, the server module 705 controls game
levels. Game levels are similar to console video games where game
play on the game machine 200 progresses from one level to the next.
The determination of the triggering event that controls the
transition from one level to another may be determined by the game
developer. The server module 705 monitors the game machine 200 to
determine if the triggering event is met and then controls the game
logic that instructs the game machine 200 accordingly. It is
appreciated that the server module 705 may control both community
bonus rounds and game levels simultaneously.
[0097] In another example, the server module 705 may also store
each player's top score and highest level achieved. This
information may be stored on the game machine 200, the bonus server
110 (FIG. 1), and/or on the player loyalty card. As a result, the
player may return, input the player loyalty card and resume playing
at a different game machine 200 at the last level attained.
[0098] In further embodiments, the server module 705 is configured
to load and unload games from the game machines 200. For example,
the server module 705 may generate a command to remove or otherwise
delete an existing game from the game machine 200. The server
module 705 then downloads and loads client software, graphics,
video data and sound data to the same game machine 200.
[0099] The platform manager 710, similar to the client manager 620
(FIG. 6) on the game machine 200, controls the software of the
bonus server 110 (FIG. 1). In some embodiments, the platform
manager 710 initiates the server module 705, loads and unloads
games, coordinates the transmission of marketing events to the game
machines 200, monitors maintenance, manages server configuration,
controls the output of audit data, and processes events received
from third-party systems.
[0100] The server tilt engine 715 monitors the operating state of
the bonus server 110 and generates tilts on error conditions in
order to prevent cheating.
[0101] The server state manager 720 monitors the operation of the
bonus server 110. The server state manager 720 is a repository of
the current and past data for data received from one or more of the
game machines 200, the current and past data of the bonus server
110, and may function to maintain the data for the bonus server's
110 hardware and software components. The server state manager 720
also tracks the state of the bonus server 110 including, but not
limited to, bonus server 110 undergoing maintenance, controlling
one community bonus round, controlling multiple community bonus
rounds, or communicating with other bonus servers 110.
[0102] The server communication manager 725 controls the
communications from the bonus server 110 to and from the
communications network. In one embodiment, the server communication
manager 725 controls system authentication, communication channel
termination, and processes asynchronous requests from external
systems for data (e.g. meters, tilts, marketing). The platform
manager 710 may control the server communication manager 725.
[0103] The synchronization agent 730 determines that at least one
bonus server 110 is operating and processing game machine 200
requests. If a failure of the system should occur (e.g. there is no
active bonus server 110 on the network), the synchronization
agent.730 transitions all devices on the network to a failover
state. For example, the synchronization agent 730 may send a signal
to the client manager 620 to initiate a shut down of the game
machine 200.
[0104] The game matrix module 735 is a data structure that defines
relationships that are determined prior to activation of the gaming
system. For example, the game matrix module 735 contains data that
describes compatibility between games, compatibility of games and
community bonus rounds, game functionality at different game
machine 200 states, game functionality at different regions, and
game licensing restrictions.
[0105] The rules engine 740 is a data structure containing
conditions upon which events are triggered. In one example, the
rules engine 740 may contain every game event that triggers a
community bonus round. In some embodiments, the rules engine 740
also contains contingency conditions as well as events.
[0106] The server diagnostic module 745 provides hardware and
software diagnostic checks of the bonus server 110 and the bonus
server module 700. Regulatory requirements may require that the
bonus server 110 employ mechanisms that verify that server
components are authentic and have not been corrupted or tampered
with. As a result, a diagnostic test is used to verify and
authenticate each component of the bonus server 110 and the bonus
server module 700.
[0107] The server administrative console module 750 controls the
function and display of the administrative console to the player or
technician of the bonus server 110. The server module 705 may
trigger an administrative mode within the bonus server 110 to
display a server administrative console.
[0108] The server administrative console comprises options for
configuring the bonus server 110 and/or the bonus server module
700. Further, the server administrative console comprises options
for server setup, security, game machines 200 settings, tilts,
games, network setup, diagnostic tests, and marketing.
[0109] The server device drivers 755 are used to control and
configure the components of the bonus server 110. There may be a
separate server device driver 755 for each component of the bonus
server 110. The components of the bonus server 110 may comprise a
smart card reader, enclosure sensors, video display, network
interface card, local storage system, I/O interface, and a memory
system.
[0110] The bonus server module 700 and/or the game machine module
600 (FIG. 6) may have a marketing engine and a security module. In
one example, the marketing engine manages the transmission and
coordination of electronic marketing messages. Electronic marketing
material, including advertisements and banners, may displayed by
the game machine 200.
[0111] The security manager may control access to the game machine
200 and/or the bonus server 110. In one example, the security
manager controls access to the client administration console 670
(FIG. 6) or the server administration console 750. In another
example, the security manager may define access rights associated
with different passwords. In other embodiments, the security
manager may limit physical access to the inside of the game machine
200 or the bonus server 110. In one example, the security manager
requires the technician to enter a smart card and input a password
before allowing the technician to perform certain tasks on the game
machine 200 or the bonus server 110.
[0112] The market for slot machines and game machines is
dramatically increasing. As a consequence, casinos may lose players
to an increasing number of competitors. In response, casinos are
increasingly concerned with fostering player loyalty and improving
profitability.
[0113] By allowing game machines 200 to play bonus rounds within a
community, new games may be offered to players. The players within
the community may directly compete with each other, work together,
or experience new forms of entertainment that were previously
unavailable. The casino may utilize community bonus round gaming to
encourage groups, friends, associations, and clubs to game together
or create excitement in a casino to entice other people to
participate in community bonus round gaming. Community bonus round
gaming may also be used by the casino to customize the gaming
experience for different players by tracking their preferences,
identities, associations, scores, and attained levels. In a
marketplace where players are increasingly distracted by the number
of slot machines, community bonus round gaming may be a new
paradigm that refocuses player attention and increases the level of
player service the casino can provide.
Game Machine Software and Communications--FIGS. 8-13
[0114] A software product for operating a game with a community
bonus round includes software and a storage medium. The software is
operational when executed by a processor to direct the processor to
receive a game play event from an interface of a game machine and
transmit the game play event to a game system. The software is also
operational when executed by the processor to direct the processor
to process the game play event to determine a state of the game
with the community bonus round and transmit the state to the game
system for synchronization. The storage medium stores the
software.
[0115] The software product advantageously provides game play
events to another game system such as a bonus server or another
game machine to provide communications in order to execute a
community bonus round. The community bonus round requires
communications between the game machine and another game system to
generate the community excitement and interaction to encourage
greater player participation. The software product also provides
synchronization between the game machine and the game system to
ensure proper execution of the community bonus round.
[0116] The software may be divided into multiple software or even
hardware modules to perform specific functions. In this example, a
game client is loaded onto a game machine and handles the game play
with communications with a bonus server. A communications manager
handles the communications within and between game machines. A
state manager manages the local states of the game machine and
synchronization with other game machines and the bonus server.
There are numerous variations in how software may be split up into
different modules. However, one example is described below for the
sake of clarity.
[0117] FIG. 8 depicts a block diagram of a system 800 for community
bonus round gaming in one embodiment of the invention. FIG. 8
depicts the data flow between functional elements in the system 800
for community bonus round gaming. The functional elements in the
system 800 can be hardware and/or software modules. The system 800
includes a game machine 810, platform libraries 820, a machine
manager 830, a state manager 840, a client tilt engine 850, and a
game server 860. The platform libraries 820 include a game client
822. The platform libraries 820 include libraries required for
processing a community bonus round. Some examples of libraries are
communication libraries for exchanging network messages and tilt
libraries for generating tilt conditions when errors occur.
[0118] The game machine 810 transmits game play events to the game
client 822. The game client 822 may process inputs from the game
machine 810, communicate game play events to a game server 860,
control outputs to the game machine 810's video displays, and
maintain game state. A game play event is any event, condition, or
transaction from a game. Some examples of game play events are
button events, touch screen events, bill acceptor events, ticket
input events, players card events, and enclosure events. The game
client 822 transmits game command events to the game machine 810.
Some examples of game command events are screen updates and ticket
outputs. The game client 822 may handle asynchronous game machine
810 inputs using event handlers and callback functions.
[0119] The machine manager 830 handles the management functions of
the game machine. The machine manager 830 may control games outside
of normal game play such as game play (start, stop, and suspend),
signal the game client 822 of a pending community bonus round, and
send advertisements or community attract mode events. The machine
manager 830 transmits machine commands to the game client 822. Some
examples of machine commands are game changes, tilts, clear tilts,
community play events, and advertisement events. The game client
822 exchanges game state information with the state manager 840.
Some examples of game state information are meters, game
transactions, and game states.
[0120] The game client 822 also transmits game play information to
the game server 860. The game server 860 is located within the
bonus server as disclosed in FIG. 10 below. Some examples of game
play information are game play events and bonus play events. The
game server 860 transmits bonus game information to the game client
822. Some examples of bonus game information are called game
graphics, game results, and bonus results.
[0121] The game client 822 may transition to an attract mode to
entice users into playing the game. The game client 822 may
automatically spin wheels or display examples of community bonus
rounds.
[0122] FIG. 9 depicts a flow chart for the game client 822 in one
embodiment of the invention. FIG. 9 begins in step 900. In step
902, the client software including the game client 822, the
graphics, and video are downloaded onto the game machine 810. In
step 904, the game client 822 initializes itself to prepare for
game play. This initialization process may include initializing
memory, opening communications channels, registering for game play
events, and loading graphics.
[0123] In step 906, the game client 822 receives and processes game
play events from the game machine 810. In step 908, the game client
822 then logs and transfers the game play events to the bonus
server for further processing. In step 910, the game client 822 may
receive and display results and/or replies from the bonus
server.
[0124] In step 912, the game client 822 determines whether to
activate the community bonus round. The game client 822 may receive
an invitation to join a community bonus round game from the bonus
server or another game machine. The game client 822 may also
determine to activate the community bonus round based on the game
play of the game machine 810. For example, if the game machine 810
hits 3 cherries or bonus bars, the game machine 822 may want to
trigger a community bonus round that includes other game machines.
In step 914, the game client 822 also determines whether the state
of the game on the game machine 810 allows for an interruption for
the community bonus round.
[0125] If the community bonus round is not activated or the state
of the game does not allow for an interruption of the community
bonus round, the process ends in step 920. If the community bonus
round is activated and the state of the game does allow for an
interruption, the game client 822 displays community bonus round
screens in step 916. The game client 822 also performs community
bonus round functions in step 918. The game client 822 may transfer
user inputs from the game machine 810 to the bonus server that
executes the community bonus round. The game client 822 may also
execute some or all of the community bonus round logic. FIG. 9 ends
in step 920.
[0126] FIG. 10 depicts a block diagram of a system 1000 for
community bonus round gaming in one embodiment of the invention.
FIG. 10 depicts the data flow between functional elements in the
system 1000. FIG. 10 focuses on the architecture of state managers
in the system 1000. Each of the state managers in the system 1000
manages the state in their respective machine or server and then
synchronizes with the bonus server or other game machines. A state
is any condition, status, or situation of a game. A game typically
transitions through different states as the game executes. The
transitions may be based on user interactions, communications from
other machines, and status of hardware and/or software. Some
examples of states are game states, game machine states, bonus
states, diagnostic states, cluster operating states, server
operating states, network states, switch states, and tilt
states.
[0127] The system 1000 includes a primary bonus server 1010, a
secondary bonus server 1030, and a game machine 1050. The primary
bonus server 1010 includes a server tilt engine 1011, a system
administrator 1012, a communications manager 1013, a game server
1014, a state manager 1015, a synchronization agent 1016, and a
server diagnostics 1017. The secondary bonus server 1030 includes a
synchronization agent 1031 and a state manager 1032. The game
machine 1050 includes a game client 1051, a client tilt engine
1052, a slot duration diagnostic 1053, a players club 1054, a
graphics manager 1055, a slot station manager 1056, a
communications manager 1057, and a state manager 1058.
[0128] The server tilt engine 1011 transmits tilt conditions to the
state manager 1015. The state manager 1015 transmits meters, system
state, and cluster configurations to the system administrator 1012.
The system administrator 1012 transmits the cluster configuration
to the state manager 1015. The communications manager 1013
transmits the network state to the state manager 1015. The game
server 1014 transmits game transactions to the state manager 1015.
The state manager 1015 exchanges station configuration, station
states, game configurations, and player information with the state
manager 1058. The state manager 1015 transmits cluster
configurations, system states, and game transactions from the game
machine 1050 to the state manager 1032.
[0129] The state manager 1032 transmits secondary server state and
communication status inquiries to the state manager 1015. The
synchronization agent 1016 transmits operating states to the state
manager 1015. The server diagnostics 1017 transmits the diagnostic
results to the state manager 1015.
[0130] The state manager 1032 transmits secondary server state and
command status inquires to the state manager 1015. The state
manager 1032 also exchanges station configuration, station state,
game configurations, and player information with the state manager
1058. The synchronization agent 1016 exchanges heartbeats with the
synchronization agent 1031.
[0131] The game client 1051 transmits game play events to the game
server 1014. The game server 1014 transmits next game states to the
game client 1051. The game client 1051 transmits meters, game
states, and game transactions to the state manager 1058. The state
manager 1058 transmits game state and meters to the game client
1051. The client tilt engine 1052 transmits tilt conditions to the
state manager 1058. The slot station diagnostic 1053 transmits
diagnostic results to the state manager 1058. The players club 1054
transmits player information to the state manager 1058. The
graphics manager 1055 transmits game graphics to the state manager
1058. The slot station manager 1056 transmits station
configurations and game configurations to the state manager 1058.
The communications manager 1057 transmits network states to the
state manager 1058.
[0132] FIG. 11 depicts a flow chart for state managers in one
embodiment of the invention. FIG. 11 begins in step 1100. In step
1102, the state manager 1058 receives updates from the local
processes running on the game machine 1050. Some examples of the
local processes are game client 1051, client tile engine 1052, slot
station diagnostics 1053, players club 1054, graphics manager 1055,
slot station manager 1056, and communications manager 1057. The
local processes can transmit data as depicted in FIG. 10. The state
manager 1058 maintains the state information for the game machine
1050 by receiving updates from the local processes over
communications channels. In one example, the game client 1051 has a
state change due to a game play event. The game client 1051 then
notifies the state manager 1058 of the state change. The state
manager 1058 may store the state information in memory.
[0133] In step 1104, the state manager 1058 synchronizes with the
state manager 1015 of the primary bonus server 1010. The state
manager 1058 can synchronize by exchanging station configuration,
station state, game configurations, and player information. The
state manager 1058 may also synchronize with the state manager 1032
of the secondary bonus server 1030.
[0134] In step 1106, the state manager 1015 synchronizes with the
state manager 1032. The state manager 1015 may synchronize by
exchanging cluster configurations, system state, game transactions
(from the game machine 1050), secondary server states, and command
status inquiries. FIG. 11 ends in step 1108.
[0135] The communications manager 1013 and the communications
manager 1057 handle the communications for the bonus server 1010
and the game machine 1050. The communications may be between
machines or within processes of the machine. The communications
managers 1013 and 1057 provide a messaging layer that enables
application software to send and receive messages regardless of the
technology used to transport the message. The communications
managers 1013 and 1057 handle message validation, forwarding, and
logging. The communications managers 1013 and 1057 can handle
routing messages between hardware and/or software components for
inter- and intra-machine communications, logging message traffic,
handling message based on priority, implementing communication
protocols, and handling message detours in the event of
communications failures.
[0136] FIG. 12 depicts an illustration of communications layers and
a communications protocol in an embodiment of the invention. An
Open Systems Interconnection (OSI) model 1210 includes an
application layer 1211, a presentation layer 1212, a session layer
1213, a transport layer 1214, a network layer 1215, a data link
layer 1216, and a physical layer 1217. A Transmission Control
Protocol (TCP) model 1220 includes an application layer 1221, a
transport layer 1222, a security layer 1223, an Internet network
layer 1224, and a network access layer 1225.
[0137] The header and trailer data 1231-1235 and 1237-1238 is
appended to the application data 1236 based on layers in the OSI
model 1210 and the TCP model 1220. The frame header 1231 is
appended at the physical layer 1217 and the network access layer
1225. The IP header 1232 is appended at the network layer 1215 and
the internet network layer 1224. The ESP header 1233, the ESP
trailer 1237, and the ESP authentication 1238 are appended at the
network layer 1215 and the security layer 1223. The TCP header 1234
is appended at the transport layer 1214 and the transport layer
1222. The network bonus server (NBS) header 1235 is then appended
to the application data 1236 above the transport layer 1214 and the
transport layer 1222.
[0138] FIG. 13 depicts an illustration of a communication protocol
header 1300 in one embodiment of the invention. In this example,
the communication protocol header is a fixed length 24 byte header.
The protocol version 1311 is the version of the communication
protocol. The data length 1312 is the length of the packet
including the communication protocol header 1300. The priority 1313
is the message priority as defined by an application. The options
field 1314 is a 4 bit options field. The lower order bit is used to
indicate the type of message validation (e.g. 0--checksum, 1 CRC).
The communication sequence 1321 is the communication level sequence
number. The sender ID 1331 and the receiver ID 1332 are unique
process identifiers for each application. The sender ID 1331 and
the receiver ID 1332 are used to route messages. The timestamp 1341
is the time of message transmission in HH:MM:SS format. The message
sequence 1351 is the application level sequence number managed by
the sending applications. The message length 1361 is the length of
the application message. The message validation 1362 is the
checksum or CRC validation field. The message data 1371 is the
application data.
[0139] The above-described functions can be comprised of
instructions that are stored on a storage medium. The instructions
can be retrieved and executed by a processor. Some examples of
instructions are software, program code, and firmware. Some
examples of storage medium are memory devices, tape, disks,
integrated circuits, and servers. The instructions are operational
when executed by the processor to direct the processor to operate
in accord with the invention. Those skilled in the art are familiar
with instructions, processor(s), and storage medium.
[0140] In the foregoing specification, the invention is described
with reference to specific embodiments thereof, but those skilled
in the art will recognize that the invention is not limited
thereto. Various features and aspects of the above-described
invention may be used individually or jointly. Further, the
invention can be utilized in any number of environments and
applications beyond those described herein without departing from
the broader spirit and scope of the specification. Accordingly, the
specification and drawings are to be regarded as illustrative
rather than restrictive.
* * * * *