A portion of the disclosure of this patent document contains material to which the claim of copyright protection is made. The copyright owner has no objection to the facsimile reproduction by any person of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office file or records, but reserves all other rights whatsoever. Copyright 2005, 2006 WMS Gaming, Inc.
This invention relates generally to the field of wagering gaming devices and more particularly to the field of wagering game devices capable of using user-configured networking protocols.
A wide variety of computerized wagering game machines (a.k.a. gaming machines) are now available to casino operators and players. Computerized gaming machines range from slot machines to games that are traditionally played live, such as poker, blackjack, roulette, etc. These computerized gaming machines provide many benefits to game owners and players, including increased reliability over mechanical machines, greater game variety, improved sound and animation, and lower overall management cost.
When technicians initially deploy gaming machines for use in casinos, they typically manually wire the gaming machines into gaming networks and manually configure numerous gaming machine settings. For example, the technicians may configure settings such as currency denominations for bill validators, screen resolution for video displays, volume for an audio devices, etc. Additionally, the technicians may also configure wagering game settings, such as pay lines, jackpot limits, betting limits, bonus game settings, and the like. Technicians traditionally configure gaming machine settings by toggling DIP switches, moving expansion board jumpers, setting various dials and knobs, and paging through complicated set-up menus. Because manually configuring gaming machines on the casino floor can be an expensive and laborious process, there is a need for new ways for configuring gaming machines.
Methods and systems for using user-configured networking protocols in wagering game networks are described herein. In one embodiment, a computer-implemented method for using user-configured networking protocols includes receiving values for one or more user-specified options associated with a gaming device and receiving a network address request originating from the gaming device. The computer-implemented method can also include transmitting a reply destined for the gaming device, wherein the reply includes a network address and the values for the one or more user-specified options.
The present invention is illustrated by way of example and not limitation in the Figures of the accompanying drawings in which:
This description of the embodiments describes wagering game devices that are capable of using user-configured networking protocols. This description of the embodiments is divided into four sections. The first section describes an example gaming network and gaming device architectures, while the second section describes example operations performed by some embodiments of the gaming network and gaming device architectures. The third section describes embodiments of a gaming machine and the fourth section provides some general comments.
This section provides an example gaming network in which embodiments of the invention can be practiced. This section also provides example architectures for embodiments of a Dynamic Host Configuration Protocol (DHCP) server and a gaming machine. Operations for these and other embodiments will be described in the next section.
One of the relay agents 106 is connected to another relay agent 116. The relay agent 116 is connected to a community presentation device 112, a community game server 110, and a plurality of gaming machines 118.
In one embodiment, the DHCP server 102 can provide Internet Protocol (IP) addresses and other gaming configuration information to the gaming machines 108 and 100, community game servers 110 and 120, and community presentation devices 112 and 122. In one embodiment, the policy/configuration store stores gaming configuration information for configuring the gaming devices. The gaming configuration information can include gaming content, such as audio, video, pay tables, gaming software updates, and any other suitable electronic data useful for configuring gaming devices. In one embodiment, the gaming configuration information can include URLs with which gaming devices can retrieve gaming content or additional configuration information. The gaming configuration information can also indicate a game type, such as slots, video poker, video black jack, etc. Additionally, the type can indicate a theme, such as Monopoly® or Hollywood Squares®. Operations for disseminating IP addresses and configuration information are described in more detail below, in the next section.
The policy/configuration store 114 can store the gaming configuration information and user-specified (i.e., vendor-specific) DHCP server policies. In one embodiment, the policy/configuration store can be a database.
In one embodiment, the relay agents 106 and 116 can forward DHCP requests to the DHCP server 102. For example, in one embodiment, the relay agent 116 can forward DHCP requests from the gaming machines 118 to the relay agent 106, which in turn can forward the DHCP requests to the DHCP server 102. The relay agents 106 and 116 can also return DHCP replies from the DHCP server 102 to the gaming machine 118.
The community game servers 110 and 120 can conduct community games in which a plurality of gaming machines can participate. For example, the community game server 120 can conduct a community game for the gaming machines 118. The community presentation devices 112 and 122 can present the community games on large-screen display devices (e.g., plasma displays, digital light processor displays, etc.).
While
In one embodiment, the configuration unit 232 requests and receives IP addresses and configuration settings and/or values. The configuration unit 232 can use this information for configuring the gaming machine 206 for operation in a gaming network (e.g., gaming network 100).
The CPU 226 is also connected to a network interface unit 224, which is connected to a gaming network 204. Additionally, the CPU 226 is connected to an input/output (I/O) bus 222. The I/O bus 222 is connected to a payout mechanism 208, secondary display 210, primary display 212, money/credit detector 214, touchscreen 216, push-buttons 218, and information reader 220. The I/O bus 222 facilitates communication between the system components and the CPU 226.
According to some embodiments, the gaming machine 206 can include additional peripheral devices and/or more than one of each component shown in
According to some embodiments, the gaming machine 206 includes tangible machine-readable media including instructions for conducting basic wagering games, conducting bonus games, and configuring gaming machines. According to embodiments of the invention, the gaming machine 206 and other components of the gaming network can include other types of logic (e.g., digital logic) for executing the operations described herein.
According to embodiments, the gaming machine 206 can conduct any suitable casino-style wagering game, such as video poker, video blackjack, video slots, etc. Additional details about gaming machines used in conjunction with embodiments of the invention are described below, in the discussion of
The memory unit 340 includes a DHCP unit 330, which can cause the gaming device 300 to operate as a DCHP server or DHCP relay agent. Acting as a DHCP server, the DHCP unit 340 can provide Internet Protocol (IP) addresses and other configuration information to gaming devices in a gaming network. Acting as a DHCP agent, the DHCP unit 340 can pass DHCP requests to and from DHCP servers. Operations of the DHCP unit are described in greater detail below, in the next section.
The memory unit 340 can also store data and/or instructions, and can comprise any suitable memory, such as a dynamic random access memory (DRAM). The gaming device 300 also includes IDE drive(s) 308 and/or other suitable storage devices. The graphics controller 304 controls the display of information on a display device 306, according to embodiments of the invention.
The input/output controller hub (ICH) 324 provides an interface to I/O devices or peripheral components for the gaming device 300. The ICH 324 may comprise any suitable interface controller to provide for any suitable communication link to the processor(s) 302, memory unit 340 and/or to any suitable device or component in communication with the ICH 324. For one embodiment of the invention, the ICH 324 provides suitable arbitration and buffering for each interface.
In one embodiment, the ICH 324 provides an interface to one or more suitable integrated drive electronics (IDE) drives 308, such as a hard disk drive (HDD) and to suitable universal serial bus (USB) devices through one or more USB ports 310. In one embodiment, the ICH 324 also provides an interface to a keyboard 312, mouse 314, CD-ROM drive 318, or other suitable devices through one or more firewire ports 316. In one embodiment, the ICH 324 also provides a network interface 330 though which the gaming device 300 can communicate with gaming machines, configuration devices, and other gaming network devices. The network interface 330 can employ any suitable wireless technology (e.g., 802.11b, 802.11g, etc.) for wirelessly connecting to gaming networks.
In one embodiment, the gaming device 300 includes a machine-readable medium that stores a set of instructions (e.g., software) embodying any one, or all, of the methodologies for configuring gaming machines, as described herein. Furthermore, software can reside, completely or at least partially, within memory unit 340 and/or within the processor(s) 302. This description continues with a discussion of example gaming machines.
This section describes operations performed by embodiments of the invention. In the discussion below, the flow diagrams will be described with reference to the block diagrams presented above. In certain embodiments, the operations are performed by instructions residing on machine-readable media (e.g., software), while in other embodiments, the operations are performed by hardware and/or other logic (e.g., digital logic).
This section includes subsections which describe embodiments performing general DHCP operations, DHCP authentication operations, and DHCP relay agent operations.
This subsection presents
At block 402, the DHCP server presents a DHCP configuration interface. For example, the DHCP server 102 presents a DHCP configuration interface (e.g., a graphical user interface) to a system administrator. The DHCP configuration interface can include selectable/programmable options for configuring the DHCP server 102. The flow continues at block 404.
At block 404, the DHCP server receives values for one or more user-specified DHCP options through the DCHP configuration interface. In one embodiment, the user-specified DHCP options include gaming configuration information including gaming software updates, URLs, pay tables, game-up/game-down times, IP address lease times, or other gaming content. In one embodiment, the user-specified DHCP options include vendor-specific information. Other embodiments include any suitable user-specified configuration information. The flow continues at block 406.
At block 406, the DHCP server receives one or more DHCP policies through the DHCP configuration interface. For example, the system administrator enters or selects DHCP policies using the DHCP configuration interface. In one embodiment, the DHCP policies include policies related to the user-specified DHCP options and gaming device security. In one embodiment, there can be policies governing specific IP addresses or specific gaming devices. The flow continues at block 408.
At block 408, the DHCP server stores the DHCP policies and/or the user-specified DHCP options in the policy/configuration store 114. From block 408, the flow ends.
After the DHCP server is configured, the DHCP server is ready to respond to IP address requests and to disseminate its user-specified configuration information.
At block 502, the DHCP server 102 receives an IP address request from a gaming device (e.g., gaming machine 108). In one embodiment, the IP address request includes information identifying the gaming device. For example, the identification information can include the gaming device's media access control address, hash values, etc. The flow continues at block 504.
At block 504 the DHCP server 102 determines whether there is a policy associated with the IP address request. In one embodiment, the DHCP server 102 searches the policy/configuration store 114 for policies associated with the gaming device's identification and/or the gaming device's location. Policies can affect whether the DHCP server 102 replies to IP address requests. For example, a policy may prevent the DHCP server 102 from providing an IP address after a certain date (e.g., after a field trial). If there is a policy associated with the IP address request, the flow continues at block 506. Otherwise, the flow continues at block 508.
At block 506, the DHCP server 102 determines whether the policy allows for transmission of a reply. If the policy allows for transmission of a reply, the flow continues at block 508. Otherwise the flow ends. In one embodiment, the policy precludes replies based on the requester's identifier, time of day, requestor's location, or any other suitable reason.
At block 508, the DHCP server 102 retrieves user-specified information associated with the IP address request. In one embodiment, the DHCP server 102 retrieves the user-specified information from policy/configuration store 114. The user-specified information can include gaming configuration information, such as an address of a streaming audio/video server, an address of a gaming content server, audio, video, pay tables, gaming software updates, and any other suitable electronic data useful for configuring gaming devices. The flow continues at block 510.
At block 510, the DHCP server 102 transmits to the requester (e.g., gaming machine 108) a reply including user-specified information. From block 510, the flow ends.
While
At block 602, a gaming device (e.g., gaming machine 104) transmits to the DHCP server 102 a request for an IP address. In one embodiment, the request includes an identification of the gaming device. In one embodiment, the request includes location information associated with the gaming device. The flow continues at block 604.
At block 604, the gaming device determines whether a DHCP reply was received, where the reply includes user-specified gaming information. If a reply was not received, the flow ends. If a reply was received, but it does not include user-specified gaming information, the flow ends. Otherwise, the flow continues at block 606.
At block 606, the gaming device performs gaming device operations associated with the user-specified information. For example, the gaming device configures its game to use pay tables or gaming content included in the reply's user-specified information. Additionally, the gaming device can install software updates or fetch gaming content/configuration information from a URL included in the reply's user-specified content. From block 606, the flow ends.
This subsection presents
At block 702, a gaming device (e.g., gaming machine 108) transmits a DHCP discover message that includes an authentication request and a gaming device identifier. In one embodiment, the authentication request is an option included in a DHCP message. In one embodiment, the discover message is a broadcast intended for any DHCP server in the gaming network. The flow continues at block 704.
At block 704, the gaming device receives one or more DHCP offer messages, each including a key identifier and a message authentication code. In one embodiment, the key identifier identifies an encryption key used to generate the message authentication code. In one embodiment, the network includes multiple DHCP servers, so the gaming device receives a plurality of offer messages. From block 704, the flow continues at block 706.
At block 706, the gaming device performs validation tests on the one or more DHCP offer messages to determine whether they are valid. This operation will be discussed in more detail below, in the discussion of
At block 708, the gaming device determines whether some of the DHCP offer messages are valid. For example, based on the validation tests, the gaming device determines whether the offer messages are valid. If there are some valid offer messages, the flow continues at block 710. Otherwise, the flow continues at block 718.
At block 710, the gaming device chooses one of the DHCP offer messages. In one embodiment, each offer message indicates how long an associated IP address will be valid (i.e., each offer includes a lease term). In one embodiment, the gaming device chooses the offer message whose IP address will be valid the longest. The flow continues at block 712.
At block 712, the gaming device generates a DHCP request message that includes the key identifier and a second message authentication code. This operation is described in more detail in the discussion of
At block 714, the gaming device transmits the DHCP request message to the sender of the chosen offer message. For example, the gaming device transmits the request to DHCP server 102. The flow continues at block 716.
At block 716, the gaming device receives, validates, and transmits other messages to and from the sender of the chosen offer message. In one embodiment, the other messages include acknowledgement messages, verify messages, rebind messages, inform messages, and release messages. From block 716, the flow ends.
At block 718, the gaming device determines whether unauthenticated DHCP servers can be used. In one embodiment, the gaming device looks up DHCP policies in the policy/configuration store 114 to determine whether use of an unauthenticated DHCP server is allowed. If unauthenticated servers can be used, the flow continues at block 712. Otherwise, the flow ends.
The operation at block 706 is described in greater detail below, in the discussion of
In one embodiment, the operations of the flow 800 are performed in response to receiving a DHCP message from a DHCP server (see blocks 704 and 706). As noted above, the DHCP message can include a key identifier and message authentication code. The flow 800 commences at block 802.
At block 802, the gaming device computes a second message authentication code using a key associated with a DHCP message's key identifier. In one embodiment, the gaming device first finds the DHCP message's message authentication code. Next, the gaming device computes another message identification code using a key associated with the DHCP message's key identifier.
In one embodiment, the gaming device computes the message authentication code using the HMAC generation algorithm and the MD5 hash function. The entire DHCP message, including the DHCP message header and options field, is used as input to the HMAC-MD5 computation function. The “secret ID” field can be set to the identifier of the secret used to generate the message authentication code. Additional details for computing message authentication codes can be found in: Request For Comment 3118—Authentication for DHCP Messages; Network Working Group; R. Droms, Editor; W. Arbaugh, Editor; University of Maryland, June 2001.
The flow continues at block 804.
At block 804, the gaming device compares the computed message authentication code to the DHCP message's authentication code. The flow continues at block 806.
At block 806, the gaming device determines whether the computed message authentication code matches the DHCP message's authentication code. If the message authentication codes match, the flow continues at block 808. If they do not match, the flow continues at block 810.
At block 808, the gaming device determines that the message is valid. In one embodiment, the message is valid because the computed message authentication code matches the DHCP message's message authentication code. From block 808, the flow ends.
At block 810, the gaming device or the DHCP server determines that the message is not valid. From block 810, the flow ends. In one embodiment, the operations of
While
At block 902, the DHCP server 102 receives a DHCP discover message that includes an authentication request and a gaming device identifier. In one embodiment, the authentication request is an option included in the DHCP discover message. In one embodiment, the gaming device identifier is a media access control address. From block 902, the flow continues at block 904.
At block 904, the DHCP server 102 selects a key for the gaming device. In one embodiment, the key is selected based on the gaming device identifier. In one embodiment, the key is randomly selected. The flow continues at block 906.
At block 906, the DHCP server 102 generates a DHCP offer message that includes the key identifier and a message authentication code. In one embodiment, the message authentication code is created using the DHCP offer message and the key identifier. This operation will be further discussed in the description of
At block 908, the DHCP server 102 transmits the DHCP offer message to the gaming device. The flow continues at block 910.
At block 910, the DHCP server 102 receives a DHCP request message. In one embodiment, the DHCP server 102 receives a request message from the gaming device. The flow continues at block 912.
At block 912, the DHCP server 102 performs validation tests on the request message to determine whether it is valid (see discussion of
At block 914, the DHCP server 102 determines whether the DHCP request message is valid. If the DHCP request message is valid, the flow continues at block 918. Otherwise, the flow continues at block 916.
At block 916, the DHCP server 102 drops the DHCP request message. For example, the DHCP server does not respond to the DHCP request message. In another embodiment, the DHCP server responds to the sender with an indication that the DHCP request message was not valid. From block 916, the flow ends.
At block 918, the DHCP server 102 transmits, receives, and validates other messages to and from the gaming device. In one embodiment, the other messages include acknowledgement messages, verify messages, rebind messages, inform messages, and release messages. From block 918, the flow ends.
At block 1002, the gaming device (e.g., gaming machine 108) generates a message that includes a key identifier. The flow continues at block 1004.
At block 1004, the gaming device generates a message authentication code using the key identifier and the message (i.e., the message generated at block 1002). In one embodiment, the gaming device generates the message authentication code by using a key associated with the key identifier. The flow continues at block 1006.
At block1006, the gaming device adds the message authentication code to the message. From block 1006, the flow ends. In one embodiment, the DHCP server can perform the operations of
This subsection describes
At block 1102, the relay agent 114 receives a gaming device-originated message. For example, the relay agent receives a DHCP message destined for DHCP server 102, where the DHCP message originated at gaming machine 116. The flow continues at block 1104.
At block 1104, the relay agent 114 inserts relay agent information into the gaming device-originated message. In one embodiment, the relay agent information can include an IP address of the relay agent 114, a media access control address of the relay agent 114, and location information of the relay agent 114.
In one embodiment, the gaming device-originated message can pass through more than one relay agent on its way to the DHCP server. For example, a DHCP message originating at gaming machine 124 might pass through relay agent 122 and then through relay agent 114 before reaching the DHCP server 102. In this case, both relay agents 122 and 114 insert relay agent information into the message.
The flow continues at block 1106.
At block1106, the relay agent 114 forwards the gaming device-originated message to DHCP server 102. The flow continues at block 1108.
At block 1108, the relay agent 114 receives a server-originated message including relay agent information, where the server-originated message is associated with the gaming device-originated message forwarded at block 1106. For example, the relay agent 114 receives a response DHCP message from the DHCP server 102. The flow continues at block 1110.
At block 1110, the relay agent 114 removes relay agent information from the server-originated message. In one embodiment, the message includes relay agent information from more than one relay agent. In this case, the relay agent only removes its own relay agent information. The flow continues at block 1112.
At block 1112 the relay agent 114 forwards the server-originated message to the gaming device. In one embodiment, the server-originated message may pass through another relay agent before reaching the gaming device. From block 1112, the flow ends.
At block 1202, a DHCP server 102 receives a gaming device-originated message that includes relay agent information. The gaming device-originated message originating from a gaming device in the gaming network 100. To the flow continues at block 1204.
At block 1204, the DHCP server 102 determines gaming configuration information for the gaming device and it determines the gaming device's location based on the relay agent information. For example, the DHCP server 102 can fetch configuration information relevant to the gaming device's location. The DHCP server 102 can fetch the gaming configuration information from the policy/configuration store. The flow continues at block 1206.
At block 1206 the DHCP server 102 generates a message that includes the gaming configuration information and relay agent information. The flow continues at block 1208.
At block 1208, the DHCP server 102 transmits the message. In one embodiment, the DHCP server 102 transmits the message to a relay agent associated with the relay agent information. From block 1208, the flow ends.
As illustrated in
As shown in
A player may “cash out” by pressing a cash out button 1318. When a player cashes out, the gaming machine 1300 dispenses a voucher or currency corresponding to the number of remaining credits. The gaming machine 1300 may employ other payout mechanisms such as credit slips (which are redeemable by a cashier) or electronically recordable cards (which track player credits), or electronic funds transfer.
The gaming machine also includes a primary display unit 1304 and a secondary display unit 1310 (also known as a “top box”). The gaming machine may also include an auxiliary video display 1340. In one embodiment, the primary display unit 1304 displays a plurality of video reels 1320. According to embodiments of the invention, the display units 1304 and 1310 can include any visual representation or exhibition, including moving physical objects (e.g., mechanical reels and wheels), dynamic lighting, and video images. In one embodiment, each reel 1320 includes a plurality of symbols such as bells, hearts, fruits, numbers, letters, bars or other images, which correspond to a theme associated with the gaming machine 1300. Furthermore, as shown in
In one embodiment, the gaming machine 1300 can operate in a gaming network in which DHCP servers provide gaming machines with IP addresses and other configuration information, as described herein.
In this description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description. Note that in this description, references to “one embodiment” or “an embodiment” mean that the feature being referred to is included in at least one embodiment of the invention. Further, separate references to “one embodiment” in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive, unless so stated and except as will be readily apparent to those of ordinary skill in the art. Thus, the present invention can include any variety of combinations and/or integrations of the embodiments described herein. Each claim, as may be amended, constitutes an embodiment of the invention, incorporated by reference into the detailed description. Moreover, in this description, the phrase “example embodiment” means that the embodiment being referred to serves as an example or illustration.
Herein, block diagrams illustrate example embodiments of the invention. Also herein, flow diagrams illustrate operations of the example embodiments of the invention. The operations of the flow diagrams are described with reference to the example embodiments shown in the block diagrams. However, it should be understood that the operations of the flow diagrams could be performed by embodiments of the invention other than those discussed with reference to the block diagrams, and embodiments discussed with references to the block diagrams could perform operations different than those discussed with reference to the flow diagrams. Additionally, some embodiments may not perform all the operations shown in a flow diagram. Moreover, although the flow diagrams depict serial operations, certain embodiments could perform certain of those operations in parallel.
This application claims the priority benefit of U.S. Provisional Application Ser. No. 60/715,997, filed Sep. 9, 2005, the contents of which are incorporated herein by reference.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US06/34727 | 9/6/2006 | WO | 00 | 3/6/2008 |