Wagering game machines may be operated as a stand alone unit, or linked in a network of some type to a group of wagering game machines. As technology in the gaming industry progresses, more and more gaming services are being provided to wagering game machines via communication networks that link groups of wagering game machines to a remote central server computer that provides one or more gaming services. As an example, gaming services that may be provided by the remote computer to a wagering game machine via a communication network of some type include player tracking, accounting, cashless award ticketing, lottery, progressive games and bonus games. In addition, wagering game machines are evolving into gaming platforms where the gaming services and game play options provided on the wagering game machines may be dynamically configured. Thus, the number and type of game services and game play options offered on a particular wagering game machine may vary with time.
A gaming entity may operate hundreds, thousands or ten of thousands of wagering game machines. Since gaming is allowed in many locations throughout the world, casinos may have games distributed over a wide geographic area. Within casinos, the wagering game machines may be connected via one or more dedicated networks. Servers are usually located in a backroom of the casino away from the casino floor.
Current techniques for initially loading, modifying or replacing game software in wagering game machines are generally inconvenient, time-consuming, and expensive. In one technique, the entire wagering game machine is disconnected from the central server and replaced with a new machine. This involves the shipment of machines to and from a gaming establishment and requires the services of an appreciable number of skilled and semi-skilled service personnel. The service personnel must identify the machines to be replaced, locate the machines on the gaming establishment floor, and then replace the existing machines with the new machines. In another technique, the media containing the software is replaced with new media containing the new software. Again, the service personnel must identify the machines to receive the new software media, locate the machines on the gaming establishment floor, and then replace the existing media with the new media. In this case, media may be a hard disk, flash, various non-volatile media such as EEPROM, EPROM, etc.
In yet another technique, the new software can be downloaded to the wagering game machine from the central server linked to the wagering game machine. This downloading technique facilitates modifications to the game software in that it does not require removal of the wagering game machine and does not require service personnel to visit the wagering game machine site or the wagering game machine itself.
While providing software in a downloadable form may be convenient for gaming establishment operators, providing the ability to download game content can create several issues. For example, software that is in a format that is convenient to download to authorized machines may also be easily downloaded or otherwise transported to unauthorized machines. Similarly, it may be possible for unauthorized downloadable game content to be introduced onto a gaming system. Additionally, it may be difficult to determine a source or sources for software that has been downloaded.
Systems and methods embed watermark data into downloadable software components. A first aspect of the systems and methods includes embedding watermarks that may be used to indicate who created or who owns the software components.
A further aspect of the systems and methods includes inserting a watermark to indicate certain transactions have taken place with respect to the software component. For example, a transactional watermark may be embedded when a software component is downloaded from one system to another.
A still further aspect of the systems and methods includes extracting watermark data from a downloadable software component to determine an attribute of the component.
The downloadable software components may include banner content, advertising content, denomination data, pay table, language data, video content, audio content, episodic game data, wagering game software, operating system software, device driver software and device firmware.
The present invention describes systems, methods, and computer-readable media of varying scope. In addition to the aspects and advantages of the present invention described in this summary, further aspects and advantages of the invention will become apparent by reference to the drawings and by reading the detailed description that follows.
In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the scope of the present invention.
Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
In the Figures, the same reference number is used throughout to refer to an identical component which appears in multiple Figures. Signals and connections may be referred to by the same reference number or label, and the actual meaning will be clear from its use in the context of the description.
The description of the various embodiments is to be construed as exemplary only and does not describe every possible instance of the invention. Numerous alternatives could be implemented, using combinations of current or future technologies, which would still fall within the scope of the claims. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
The wagering game machine 100 includes a plurality of possible credit receiving mechanisms 114 for receiving credits to be used for placing wagers in the game. The credit receiving mechanisms 114 may, for example, include a coin acceptor, a bill acceptor, a ticket reader, and a card reader. The bill acceptor and the ticket reader may be combined into a single unit. The card reader may, for example, accept magnetic cards and smart (chip) cards coded with money or designating an account containing money.
In some embodiments, the wagering game machine 100 includes a user interface comprising a plurality of push-buttons 116, and other possible devices. The plurality of push-buttons 116 may, for example, include one or more “bet” buttons for wagering, a “play” button for commencing play, a “collect” button for cashing out, a help” button for viewing a help screen, a “pay table” button for viewing the pay table(s), and a “call attendant” button for calling an attendant. Additional game specific buttons may be provided to facilitate play of the specific game executed on the machine. A touch screen overlaying video display 112 may define touch keys for implementing many of the same functions as the push-buttons. Additionally, in the case of video poker, the touch screen may implement a card identification function to indicate which cards a player desires to keep for the next round. Other possible user interface devices include a keyboard and a pointing device such as a mouse or trackball.
In some embodiments, wagering game machine 100 includes a top box 140. Top box 140 may contain a video display, a mechanical display, or a diorama display that supplements display 112. For example, the display in top box 140 may be a wheel such as a rotating wheel, mechanical dice, a board for a board game, or other such display.
A processor controls operation of the wagering game machine 100. In response to receiving a wager and a command to initiate play, the processor randomly selects a game outcome from a plurality of possible outcomes and causes the display 112 to depict indicia representative of the selected game outcome. In the case of slots for example mechanical or simulated slot reels are rotated and stopped to place symbols on the reels in visual association with one or more pay lines. If the selected outcome is one of the winning outcomes defined by a pay table, the CPU awards the player with a number of credits associated with the winning outcome.
In some embodiments, wagering game machine 100 may include signage 120. Signage 120 may be a display device capable of displaying advertising, gaming information (e.g. type of game, denomination of game etc.) or other information to a player or potential player.
System memory 224 stores control software, operational instructions and data associated with the wagering game machine. In some embodiments, the system memory 224 comprises a separate read-only memory (ROM) and battery-backed random-access memory (RAM). However, it will be appreciated that the system memory 224 may be implemented on any of several alternative types of memory structures or may be implemented on a single memory structure. For example, memory 224 may comprise multiple banks of memory, including RAM, compact flash, hard drives, CD-ROM drives, DVD-ROM drives and combinations thereof.
A payoff mechanism 226 is operable in response to instructions from the processor 220 to award a payoff to the player. The payoff may, for example, be in the form of a number of credits. The number of credits is determined by one or more math tables stored in the system memory 224. As noted above with respect to
Network interface 228 operates to communicably couple system 200 in wagering game machine 100 to a network. The network may be any type of wired or wireless network and the network interface 228 may vary based on the type of network. In some embodiments, the network comprises a gaming establishment network such as a LAN (local area network). In alternative embodiments, the network may be an intranet linking multiple networks, for example, the networks of a gaming enterprise that operates multiple gaming establishments. In further alternative embodiments, the network may comprise the Internet.
Operating system 340 controls the execution of tasks, processes and applications (e.g. wagering game application 302) running on a wagering game machine, and provides interfaces between applications and the hardware present on a wagering game machine. The operating system may be proprietary to the wagering game machine manufacturer or owner, or the operating system may be provided by a third party. Examples of operating systems that may run within the wagering game machine environment include the Microsoft Windows family of operating systems, variants of the UNIX operating system, Linux, and real-time operating systems such as VRTX and QNX. The embodiments are not limited to any particular operating system.
Device driver 342 provides a software interface to hardware that may be present on a wagering game machine and software that desires to utilize such hardware, such as a wagering game application 302. Typically a device driver is a software component that is added to the operating system software, and must be designed to provide interfaces expected by the operating system. A different device driver 342 typically exists for each type of hardware present on a wagering game machine. For example, a ticket printer may have a device driver, a credit acceptor may have a different device driver etc.
Device firmware 350 comprises software that may be downloaded onto a persistent memory resident on a device that may be a component of wagering game machine 100. For example, a ticket printer may include an embedded processor that executes software or reads data from firmware on a flash memory resident on the ticket printer. Other devices that are part of wagering game machine 100 may also have firmware to control the operation and interface to the device.
Wagering game application 302 comprises software that controls the execution of a wagering game on wagering game machine 100. For example, the wagering game application may provide a slot machine application (video or mechanical), keno, card based wagering games (e.g. poker), dice based wagering games or other types of wagering games. The embodiments are not limited to a particular wagering game application.
Wagering game 302 may include one or more data or executable components. These components include denomination data 310, pay table 312, language data 314, video content 316, audio content 318, episode data 320, and configuration data 322. Denomination data 310 includes data that determines the denomination or denominations that the wagering game machine uses to determine the amount of a wager. For example, a wagering game machine may accept payment for credits in units of $0.25, $0.50, $1.00, $5.00 or other amounts. In addition, denomination data 310 also determines the currency for the wagered amount. For example, the currency may be United States dollars, French francs, Euros or other currency.
Pay table 312 may be used to determine which outcomes are winning outcomes and the amount to be credited or paid out for the various winning outcomes. Pay table 312 may be a single table in some embodiments. In alternative embodiments, multiple pay tables may be present on a wagering game machine and vary depending on which game or game version is currently in use.
Language data 314 comprises one or more data sets or files that contain text to be displayed on the wagering game machine. The use of language data 314 allows a wagering game application to display text in languages commonly used in the location where the wagering game machine is used without requiring customization of the wagering game application.
Video content 316 comprises video data that may be displayed by a wagering game application during the course of wagering game play or in an attract mode of the wagering game machine. For example, video content may comprise video clips that are displayed to the user during game play, during a bonus round, or while the wagering game machine is in attract mode.
Audio content 318 comprises audio data that may be played by the wagering game application during the course of wagering game play, bonus round play, or in an attract mode of the wagering game machine. In some embodiments, the audio content may be part of an audio program played on multiple wagering game machines to produce a surround-sound effect.
In some embodiments, a portion of video content 316 or audio content 318 may be provided by a gaming establishment and played during game play or in attract mode. This allows the gaming establishment to tailor a wagering game machine for their environment. For example, the gaming establishment may desire to provide video or audio content having a theme that is consistent with a theme within the gaming establishment as a whole.
Episode data 320 provides configuration data regarding episodes for a game. In some embodiments, the wagering game may be presented to the user in episodes. For example, bonus rounds may vary depending on the episode, or symbols and characters displayed during game play or game play rules may vary with each episode. Additionally, in some embodiments, some or all of video content 316 and audio content 318 may vary depending on the current episode. Episode data 320 may be used to determine which episode is currently presented to the user.
Configuration data 322 represents other types of configuration data related to the operation of a wagering game machine or a group of wagering game machines. Examples of such data include the uses for buttons present on the wagering game machine.
In addition to wagering game application related configuration elements, a wagering game machine may have other types of configuration components. In some embodiments, these components include security data 304, banner content 306 and advertising content 308. Security data 304 may be any type of security data related to the operation of a wagering game machine or group of wagering game machines. In some embodiments, the security data comprises user identification and/or password data. In alternative embodiments, the security data may comprise public key/private key encryption data. In further alternative embodiments, the security data may comprise key ring data for a group of keys. In still further embodiments, the security data may comprise biometric data. Additionally, the security data may comprise authentication and/or authorization data.
Banner content 306 comprises content intended to be displayed on a secondary display or overhead sign for a wagering game machine. The banner content may be displayed on a single wagering game machine, or it may be content designed to be displayed as part of the content for multiple wagering game machines. For example, the content may be displayed in a manner such that the content appears to travel from one machine to the next. Alternatively, the content may be one portion of a message that is displayed across multiple wagering game machines.
Advertising content 308 comprises advertising video, audio, or text data that may be played or displayed on a wagering game machine.
Various combinations of the above-described configuration elements may be downloaded onto a wagering game machine. It should be noted that no embodiment requires that all of the above-described configuration elements be downloadable, rather varying embodiments will provide for the download of varying combinations of one or more of the above-described configuration elements.
Further, the above described configuration elements may be downloaded at different times. For example, it may be desirable to download wagering game applications components, operating system components, device driver components and the like when the machine is idle (i.e. not in use). However, other configuration elements such as episode data, banner content and advertising content may be downloaded at any time, including during wagering game play.
Additionally, some or all of the above-described configuration elements may have different versions. For example, the operating system 340, device driver 342, device firmware 350, or wagering game application 302 may exist in differing versions, with each version having differing combinations of features and/or updates to fix problems with previous versions. Typically a version will have a version identifier associated with it to indicate the software version for the configuration element.
Operator host system 424 may be used to store downloadable gaming components for downloading onto one or more wagering game machines 100. As an example, operator host system 424 may be a server system maintained on behalf of a gaming entity that operates wagering game machines 100 within a domain. In some embodiments, operator host system 424 is operable to store downloadable wagering game components 300 that have been purchased or licensed for use on one or more wagering game machines 100.
In some embodiments, system 400 further includes a software creator/distributor system 402. System 402 may serve as a source for downloadable game components 300 that are purchased or licensed by a gaming establishment. After purchase or license, game components 300 may be downloaded from system 402 to operator host system 424 over a network 412. Network 412 may be any type of wired or wireless network capable of communicably coupling system 402 with operator host system 424. In some embodiments, network 412 may be the Internet.
Any or all of software creator/distributor system 402, operator host system 424 and wagering game machines 100 may include a watermark component 404. Watermark component 404 operates to insert a digital watermark into a downloadable software component. In some embodiments, watermark component 404 may extract watermark data from a downloadable software component 300.
Digital watermark data may be inserted into a downloadable software component at multiple points in a download path 410, where download path 410 comprises a set of network connected machines that receive a particular downloadable software component. For example, a watermark may be inserted when a software creator/distributor system sends a downloadable software component to an operator host system 424 via network 412 (download path segment 410.1). In addition, a watermark may be inserted when the downloadable software component is subsequently sent to a wagering game machine 100.3 over network 422 (download path segment 410.2).
In some embodiments, a peer to peer delivery mechanism may be used to deliver downloadable content to wagering game machines 100. In these embodiments, a wagering game machine 100 receives all or a portion of the desired software components from one or more other peer systems that have previously downloaded all or a portion of the software component. For example, the other peer systems may be other wagering game machines 100 within domain 420. Various peer to peer delivery methods are possible. Examples of such peer to peer delivery methods include the Gnutella protocol, the BitTorrent protocol, Morpheus software, or Grokster software. For example, wagering game machine 100.3 may participate in a peer to peer network with wagering game machines 100.1 and 100.2 and operator host system 424. In some embodiments, a watermark component 404 on a wagering game machine may insert a watermark onto downloadable software component 300 before sending it to peer wagering game machine 100.2 over network 422 (download path segment 410.3)
Various methods exist to embed watermark data into image and/or audio data. A first technique involves altering the least significant of the image or audio data. Another technique is to provide a key or seed to a random number generator, whose output is then used to select bits in the image or audio data to be used to hold the watermark data. A watermark extracting component on a receiving system must then use the same key or seed in order to determine which bits comprise the watermark data. A further technique comprises using correlation data between a pseudo-randomly generated noise pattern and the image or audio data to determine watermark data. A still further technique is to alter selected bits of a DCT (Discrete Cosine Transformation) block used in processing many types of image and audio data. Further techniques exist and may be developed in the future. The embodiments of the invention are not limited to any particular technique for embedding watermark data into a downloadable software component.
In some embodiments, the watermark data may comprise a creator watermark 502, an owner watermark 504 or a transactional watermark 506. Creator watermark 502 comprises watermark data that identifies the creator of the software component 300. Such data may include the name of the creator, the date the component was created or modified, a version identification for the component, or any other data regarding the creation of the component.
Owner watermark 504 comprises watermark data that identifies the owner or other rights holder for the component. The owner watermark data may include the name of the owner, the particular ownership rights (e.g. right to display, copy, alter, use, transfer etc.), the date that the rights are valid (e.g. a rights expiration date) or any other data relevant to ownership of rights in the software component.
Transactional watermark 506 comprises a watermark that is embedded into a component upon the occurrence of a transaction. For example, in some embodiments, a transactional watermark is inserted into a software component 300 each time it is downloaded to a system. The watermark may be inserted by the sending system prior to initiating the download. Thus multiple transactional watermarks may exist depending on how many times the software component has been downloaded. The transactional watermark data may include the type of transaction, the date and/or time of the transaction, or any other data relevant to the transaction.
A transactional watermark may also include data indicating a winning outcome of a wagering game. For example, a transactional watermark may be embedded in an image that is displayed on a wagering game machine. The transaction watermark may be used to determine that the winning outcome was generated by the machine, rather than a third party downloading a counterfeit winning image onto a wagering game machine in order to falsely claim that a winning outcome was obtained.
It should be noted that a software component 300 may include multiple watermarks as described above, and that the watermarks in a particular software component 300 may be generated using differing techniques.
Next, in some embodiments, the software component is downloaded to a gaming system (block 602). The gaming system may be a wagering game machine 100, and operator host system 424, or other gaming related system (e.g. back office server, progressive server, banner content server etc.).
Other watermarks may be subsequently added to the software component (block 606). As described above, an owner watermark may be added after a creator watermark has been added, or a transactional watermark may be added after an owner or creator watermark has been added.
In some embodiments, the software component may be downloaded to an additional gaming system (block 608). For example, a software component may be initially downloaded from a creator/distributor system to an operator host system, and then further downloaded from the operator host system to one or more wagering game machines. A transactional watermark containing data regarding each download may be inserted at each download step. As an additional example, the wagering game machines in a gaming establishment may participate in a peer to peer network in which software components may be exchanged between arbitrary pairs of wagering game machines or gaming systems. In these embodiments, a transactional watermark may be inserted upon each download. Thus the transactional watermarks may provide an audit trail of download activity maintained in the software component itself.
Next, the software component is analyzed to determine whether or not a watermark is present (block 704). The method or methods used to analyze whether or not a watermark is present will depend on the technique expected to be used to embed the watermark data. If a watermark is not present, the method ends in some embodiments. However, it should be noted that lack of a watermark may be used to determine that the component is not authorized or valid. For example, a malicious user may download an image to a wagering game machine that would seem to indicate that the user has won a large amount of money or credit. A subsequent test for a watermark on the image that determines a watermark is not present may be used to indicate the image is not valid and that the user has falsified the results.
If a watermark is detected at block 704, the system then proceeds to extract the watermark data (block 706). The method used to extract the watermark data will depend upon the method originally used to embed the watermark data into the component.
Finally, the watermark data may be used to determine one or more attributes of the software component (block 706). For example, the watermark data may be used to determine the creator identity, creation date, download date, ownership rights, ownership dates, or other attributes for the component.
In addition, the watermark may be used to resolve ownership disputes. For example, assume that someone purchases (legitimately or illegitimately) a wagering game machine having downloadable components. The downloadable components may be improperly transferred to other wagering game machines. The presence of a watermark in the components may be used to establish that the components have been improperly transferred, and to prove ownership of the improperly transferred components.
It should be noted that inventive concepts may exist in subsets of the actions illustrated within
Systems and methods for embedding and extracting watermarks in software components that may be downloaded to wagering game machines have been described. Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of the inventive subject matter.
The terminology used in this application is meant to include all of these environments. It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. Therefore, it is manifestly intended that this invention be limited only by the following claims and equivalents thereof.
The Abstract is provided to comply with 37 C.F.R. §1.72(b) to allow the reader to quickly ascertain the nature and gist of the technical disclosure. The Abstract is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
This application claims priority under 35 U.S.C. 119(e) from U.S. Provisional Application Ser. No. 60/700,582 filed Jul. 19, 2005, which application is incorporated herein by reference.
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.
Number | Date | Country | |
---|---|---|---|
60700582 | Jul 2005 | US |