Gaming System, Method and Device for Generating Images Having a Parallax Effect Using Face Tracking
20180322728 ยท 2018-11-08
Inventors
- Bryan M. Kelly (Alamo, CA)
- Stephen Patton (Reno, NV)
- Sean Martin (Reno, NV)
- Martin Lyons (Henderson, NV)
- Rod ANG (Las Vegas, NV, US)
- Randy Hedrick (Reno, NV)
Cpc classification
G07F17/3267
PHYSICS
A63F2300/6661
HUMAN NECESSITIES
G07F17/34
PHYSICS
G07F17/3213
PHYSICS
A63F2300/1087
HUMAN NECESSITIES
A63F13/00
HUMAN NECESSITIES
H04N13/305
ELECTRICITY
International classification
A63F13/00
HUMAN NECESSITIES
Abstract
Gaming devices and methods are set forth which provide for determination of the movement of a player's face or body and to use the determination for providing a motion parallax effect to content provided from a remote source at a portion of a video display.
Claims
1. An electronic gaming device in a systems network, the network including a systems content source, the device comprising: a processor; a video display for displaying auto-stereoscopic images to a user at least at a first portion of the video display; an apparatus for acquiring data representing the relative position of at least a portion of the user's body relative to the video display; a memory storage device configured to store instruction which, when executed by the processor, cause the gaming device to perform operations for (a) displaying game content at the first portion of the video display, (b) processing the acquired data to determine the relative position of the user to the video display and (c) based upon the determined relative position of the user rendering the system content based upon motion parallax with a three-dimensional effect at a second portion of the video display.
2. The gaming device of claim 1 comprising said apparatus is an apparatus for generating data corresponding to position of the head of the player.
3. The gaming device of claim 1 comprising said apparatus is an apparatus for generating data corresponding to position of the eyes of the player.
4. The gaming device of claim 1 comprising said apparatus is an apparatus operative in the electromagnetic spectra.
5. The gaming device of claim 4 comprising said apparatus is selected from group consisting of a digital camera and infrared camera.
6. The gaming device of claim 1 comprising said apparatus is an apparatus operative to transmit and receive acoustic signals.
7. The gaming device of claim 1 comprising said processor configured to display said image in a first state representing the rendition of the image based upon motion parallax and a second state representing rendition of the image without consideration of the motion parallax.
8. The gaming device of claim 7 comprising said processor configured to change the display of the image between said first and second states in response to a command.
9. The gaming device of claim 1 comprising said video display includes a touch screen input device, said processor configured to coordinate the touch input locations of said touch screen input device in connection with the rendition of said system content at said display based upon the motion parallax.
10. The gaming device of claim 9 comprising said processor configured to render said image at said display based upon the motion parallax to display additional features of said system content and to coordinate the touch input locations to include the said one or more of said additional elements.
11. The gaming device of claim 1 comprising said processor is configured to include a first application applying a first motion parallax application effect to said rendition and a second application applying a lesser motion parallax effect to said rendition.
12. The gaming device of claim 11 comprising said processor configured to select between said first and second applications for at least some of said image to alter the motion parallax effect on the view of the image.
13. The gaming device of claim 12 comprising said processor configured to select between said first and second applications in response to a command.
14. A system for presenting auto-stereoscopic system content from a remote source on a gaming device which is adapted to provide game content to a player comprising: the gaming device including a video display and a processor; a remote server configured for delivering the system content to the gaming device; a communication network to provide communication between the gaming device and the remote server; apparatus at the gaming device for generating data corresponding to at least the approximate position correlated to the position of the player's head relative to the video display, changes to said relative position changeable during operation of the gaming device; one or more of the processor and server configured to cause the gaming device to perform operations for (a) displaying game content at a first portion of the video display, (b) processing the acquired data to determine the relative position of the user to the video display and (c) based upon the determined relative position of the user rendering the system content based upon motion parallax with a three-dimensional effect at a second portion of the video display.
15. The system of claim 14 comprising said apparatus is an apparatus for generating data corresponding to position of the eyes of the player.
16. The system of claim 14 comprising the server is configured to store data corresponding to player playing activity and the sever content relates to the activity.
17. A method for providing player gaming activity information to a player at a gaming device: acquiring data corresponding to the positions of the player's eyes relative to a video display; displaying at the video display game content; storing at a remote server data corresponding to the gaming activity of the player; controlling the video display to display at least one image related to the play of the game in a two-dimensional state, processing the acquired data to determine the relative position of the user to the video display and (c) based upon the determined relative position of the user rendering the system content based upon motion parallax with a three-dimensional effect at a second portion of the video display.
18. The method of claim 17 comprising acquiring data corresponding to the positions of the player's eyes with one of a digital camera and infrared camera.
19. The method of claim 17 comprising controlling the video display to display the system content in a first state representing the content based upon motion parallax and a second state representing rendition of the content without consideration of the motion parallax.
20. The method of claim 17 comprising changing the display of the system content between the first and second states in response to a command.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] These and other features and advantages of the present invention will become apparent with reference to description and drawings wherein:
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0053] Referring now to the drawings, wherein like reference numbers denote like or corresponding elements throughout the drawings, and more particularly referring to
[0054] The plurality of player-activated buttons 108 may be used for various functions such as, but not limited to, selecting a wager denomination, selecting a game to be played, selecting a wager amount per game, initiating a game, selecting the number of pay lines to enable (i.e. wager upon) or cashing out money from gaming device 100. Buttons 108 functions as input mechanisms and may include mechanical buttons, electromechanical buttons or touch screen buttons. Optionally, a handle 112 may be pulled by a player to initiate a game.
[0055] In other embodiments, buttons 108 may be replaced with various other input mechanisms known in the art such as, but not limited to, a touch screen system, touch pad, track ball, mouse, switches, toggle switches, control/joy stick or other input means used to accept player input. For example, one input means is a universal button module as disclosed in U.S. application Ser. No. 11/106,212, entitled Universal Button Module, filed on Apr. 14, 2005, which is hereby incorporated in its entirety by reference. Generally, the universal button module provides a dynamic button system adaptable for use with various games and capable of adjusting to gaming systems having frequent game changes. More particularly, the universal button module may be used in connection with playing a game on a gaming machine and may be used for such functions as selecting the number of credits to bet per hand. In other embodiments, a virtual button deck may be used to provide similar capabilities. An example of a virtual button deck is disclosed in U.S. application Ser. No. 11/938,203, entitled, Game Related Systems, Methods, and Articles That Combine Virtual and Physical Elements, filed on Nov. 9, 2007, hereby incorporated in its entirety by reference. As hereinafter described the buttons 108 may be replaced or augmented by data input apparatus and methods which detect gestures of a player such as nodding or shaking of the head or movement of the arms, hands or body.
[0056] The cabinet housing 102 may optionally include the top box 106 which contains top glass 114 comprising advertising or payout information related to the game or games available on gaming device 100. The glass 114 may be replaced by a video display configured to display the aforesaid advertising and payout information or to display one or more features of a game, progressive prize information of the like.
[0057] The player tracking module 110, as is known in the art, includes a player tracking card reader 116 and a player tracking display 118. A voucher printer 120 may be integrated into player tracking module 110 or installed elsewhere in cabinet housing 102 or top box 106. The player tracking module 110 also includes a system interface input device such as a keypad or as by including touch screen input functionality at the player tracking display 118. Functionally the player tracking module 108 provides a communication interface between the gaming device 100 and one or more systems such as the player tracking system and/or a slot accounting system. As is known in the art the player tracking module 108 may also provide or communicate data such as gaming device meter information (i.e. coin-in, coin-out), jackpots, or other selected and configured events including maintenance, progressive, community gaming or other events. It should be understood that some communications between the gaming device 100 and any connected system may or may not pass through or communicate with the player tracking module 100. Some functionality of the player tracking module 108 may include displays at all or a portion of the primary game display 104 and/or top glass 114 display.
[0058] The primary game display 104 presents a game of chance wherein, in response to a wager, a player receives one or more outcomes from a set of potential outcomes. Mechanical or video/mechanical embodiments may include game displays such as a window or glass for viewing a number of electro-mechanical stepper reels as is known in the art or employment of a wheel for displaying/selecting either a primary game outcome or a bonus game outcome. In a video embodiment, the primary game display 104 is, typically, a CRT or a flat-panel display in the form of, but not limited to, liquid crystal, plasma, electroluminescent, vacuum fluorescent, field emission, laser or any other type of panel display known or developed in the art. The primary game display 104 may be mounted in either a portrait or landscape orientation and be of standard or widescreen dimensions (i.e., a ratio of one dimension to another of at least 169). For example, a widescreen display may be 32 inches wide by 18 inches tall. A widescreen display in a portrait orientation may be 32 inches tall by 18 inches wide. Additionally, primary game display 104 as referenced above may include a touch screen or touch glass system (not shown). The touch screen functionality may be in lieu of or in addition to input buttons 108. An example of a touch glass system is disclosed in U.S. Pat. No. 6,942,571, entitled Gaming Device with Direction and Speed Control of Mechanical Reels Using Touch Screen, which is hereby incorporated by reference.
[0059] The primary game display 104 may is configured to present to a player wagering games such as a video or electro-mechanical reel slot game, a video keno game, a lottery game, a bingo game, a Class II bingo game, a roulette game, a craps game, a blackjack game, a mechanical or video representation of a wheel game, video Poker or other game. Additionally, the primary game display 104 alone or perhaps in conjunction with a top glass 114 video device may be configured to present one or more feature or additional games.
[0060] The primary game display 104 may also present information such as, but not limited to, player information, advertisements and casino promotions, graphic displays, news and sports updates, or even offer an alternate game. This information may be generated at the gaming device 100 or through a host computer networked with gaming device 100 on its own initiative or it may be obtained by request of the player using either one or more of the plurality of player-activated buttons 108; the primary game display 104 itself (if game display 104 comprises a touch screen or similar technology) buttons (not shown) mounted about primary game display 104 which may permit selections such as those found on an ATM machine (where legends on the screen are associated with respective selecting buttons) or any player input device that offers the required functionality.
[0061] The gaming device 100 also includes one or more apparatus for generating or acquiring data corresponding to at least the approximate position of the player's body relative to the primary game display 104. In a preferred embodiment this apparatus is one or digital cameras 122 disposed to acquire images of the player seated (or standing) during play of the gaming device 100. In most cases the gaming device 100 will be played by a seated player and therefore their body and more particularly their upper torso (arms, hands, shoulders) and head would be within a predictable field for view by the camera 122. The camera 122 may have a wide angle lens and selected focal point to acquire the images according to the present invention. For example the camera 102 may be from Videology Imaging Solutions, Inc. of Greenville, R.I. configured for 640480 digital video output at 30 frames/sec and set to a wide angle (similar to a 300 mm lens in a 35 mm system). The camera 102 may operate in the visual spectrum or infrared. Alternative apparatus may be employed such as apparatus operating in ultrasonic frequencies. While not preferable an alternative apparatus would be a transponder requiring that the player have a device mounted on their person. While the following description will refer to the use of one or more digital cameras 122 it should be understood that the position detection device can be the other devices referenced above which function in the electromagnetic or acoustical frequencies.
[0062] One function of the digital camera 122 is to acquire and provide data which corresponds to the position and movement of the player's torso and head for purposes of which will become evident. Based upon such data the position and movement of the eyes of the player can be determined or approximated. For this purpose face tracking software such FaceAPI face/head tracking software available from Seeing Machines, Inc., 39 Strawberry Hill Rd, Acton, Mass. 01720, USA may be used. This software is configured to provide 3D face tracking functionality as well as orientation and facial expression detection.
[0063]
[0064]
[0065]
[0066]
[0067] Turning to
[0068] Peripherals 551 connect through bus 553 to EGM Processor Board 503. The peripherals 551 include, but are not limited to the following and may include individual processing capability: bill/ticket acceptor to validate and accept currency and ticket vouchers, player loyalty card reader, the player interfaces including features to support the touch screen/gesture functionality such as buttons 106, primary game display 104, and secondary display (with or without touch screen functionality), monitors and lights, reel control units where the gaming terminal 100 is a stepper game and biometric reading (capturing) devices such as the digital camera(s) 122. For example, a bill/ticket acceptor is typically connected to the game input-output board of the EGM processing board 503 (which is, in turn, connected to a conventional central processing unit (CPU) board), such as an Intel Pentium microprocessor mounted on a gaming motherboard. The I/O board may be connected to CPU processor board by a serial connection such as RS-232 or USB or may be attached to the processor by a bus such as, but not limited to, an ISA bus. The gaming motherboard may be mounted with other conventional components, such as are found on conventional personal computer motherboards, and loaded with a game program which may include a gaming device operating system (OS), such as a Bally Alpha OS. EGM processor board 503 executes a game program that causes the gaming device 100 to display and play a game. The various components and included devices may be installed with conventionally and/or commercially available components, devices, and circuitry into a conventional and/or commercially available gaming device housing 102, examples of which are described above.
[0069] When a player has inserted a form of currency such as, for example and without limitation, paper currency, coins or tokens, cashless tickets or vouchers, electronic funds transfers or the like into the currency acceptor, a signal is sent by way of bus 553 to the I/O board and to EGM processor board 503 which, in turn, assigns an appropriate number of credits for play in accordance with the game program. The player may further control the operation of the gaming device 100 by way of other peripherals 551, for example, to select the amount to wager via a player interface such as the buttons 108. The game starts in response to the player operating a start mechanism such as the handle 112, button such as a SPIN/RESET button touch screen icon or depressing a button 108 or pulling the handle 112. The game program includes a random number generator to provide a display of randomly selected indicia on one or more of the primary and/or secondary displays. In some embodiments, the random number generator may be physically separate from gaming terminal 100; for example, it may be part of a central determination host system which provides random game outcomes to the game program. Finally, processor board 503 under control of the game program and OS compares the final display of indicia to a pay table. The set of possible game outcomes may include a subset of outcomes related to the triggering of a feature or bonus game. In the event the displayed outcome is a member of this subset, processor board 503, under control of the game program and by way of I/O Board 553, may cause feature game play to be presented on the primary game display 104 or a display constituting all or a portion of the top glass 114.
[0070] Predetermined payout amounts for certain outcomes, including feature game outcomes, are stored as part of the game program. Such payout amounts are, in response to instructions from processor board 503, provided to the player in the form of coins, credits or currency via I/O board and a pay mechanism, which may be one or more of a credit meter, a coin hopper, a voucher printer, an electronic funds transfer protocol or any other payout means known or developed in the art.
[0071] In various embodiments, the game program is stored in a memory device (not shown) connected to or mounted on the gaming motherboard. By way of example, but not by limitation, such memory devices include external memory devices, hard drives, CD-ROMs, DVDs, and flash memory cards. In an alternative embodiment, the game programs are stored in a remote storage device. In one embodiment, the remote storage device is housed in a remote server such as a downloadable gaming server. The gaming device 100 may access the remote storage device via a network connection, including but not limited to, a local area network connection, a TCP/IP connection, a wireless connection, or any other means for operatively networking components together. Optionally, other data including graphics, sound files and other media data for use with the gaming device 100 are stored in the same or a separate memory device (not shown). Some or all of the game program and its associated data may be loaded from one memory device into another, for example, from flash memory to random access memory (RAM).
[0072] In one or more embodiments, peripherals may be connected to the system over Ethernet connections directly to the appropriate server or tied to the system controller inside the gaming device 100 using USB, serial or Ethernet connections. Each of the respective devices may have upgrades to their firmware utilizing these connections.
[0073] GMU 507 includes an integrated circuit board and GMU processor and memory including coding for network communications, such as the G2S (game-to-system) protocol from the Gaming Standards Association, Las Vegas, Nev., used for system communications over the network. As shown, GMU 507 may connect to a player card reader 555 (component 116 in
[0074] PID 509 includes an integrated circuit board, PID processor, and memory which includes an operating system, such as Windows CE, a player interface program which may be executable by the PID processor together with various input/output (I/O) drivers for respective devices which connect to PID 509, such as player interface devices 511, and which may further include various games or game components playable on PID 509 or playable on a connected network server and PID 509 is operable as the player interface. PID 509 connects to card reader 555 through bus 523, player system interface display 24 through video decoder 561 and bus 521, such as an LVDS or VGA bus.
[0075] As part of its programming, the PID processor executes coding to drive system interface display 118 and provide messages and information to a player. Touch screen circuitry 563 interactively connects display 118 and video decoder 561 to PID 509; such that a player may input information and cause the information to be transmitted to PID 509 either on the player's initiative or responsive to a query by PID 509. Additionally soft keys 565 connect through bus 517 to PID 509 and operate together with the display 118 to provide information or queries to a player and receive responses or queries from the player. PID 509, in turn, communicates over the CMS/SMS network through Ethernet switch 531 and busses 535, 539 and with respective servers, such as a player tracking server.
[0076] Player interface devices 511, i.e. devices of the player tracking module 110, are linked into the virtual private network of the system components in gaming device 100. The system components include the iVIEW device (iView is a registered trademark of Bally Gaming, Inc.) processing board and game monitoring unit (GMU) processing board may provide the functionality of the player tracking module 110. These system components may connect over a network to the slot management system (such as a commercially available Bally SDS/SMS) and/or casino management system (such as a commercially available Bally CMP/CMS). The player interface devices 511 may also include the digital camera(s) 122 in lieu or in addition to providing the digital cameras on the gaming housing 102.
[0077] The GMU system component has a connection to the base game through a serial SAS connection and is connected to various servers using, for example, HTTPs over Ethernet. Through this connection, firmware, media, operating system software, gaming machine configurations can be downloaded to the system components from the servers. This data is authenticated prior to install on the system components.
[0078] In an alternative embodiment the player system interface including the player tracking display 118 may instead be presented, upon command or request by the player, as all or a portion of the primary game display 104 as what is referred to a system interface window or service window. Where the primary game display 104 has touch screen functionality, upon command or a request, the content at the primary game display 104 such as a video reel game display is sized to accommodate the service window display at the primary game display 104. The touch screen functionality for the primary game display 104 is configured to enable the player to interact with the interface through touch screen controls (buttons, sliders, arrows, etc.).
[0079] Turning to
[0080] As shown in the example, there are three layers: a hardware layer 605; an operating system layer 610, such as, but not limited to, Linux; and a game kernel layer 600 having game manager 603 therein. In one or more embodiments, the use of a standard operating system 610, such a UNIX-based or Windows-based operating system, allows game developers interfacing to the gaming kernel to use any of a number of standard development tools and environments available for the operating systems. This is in contrast to the use of proprietary, low level interfaces which may require significant time and engineering investments for each game upgrade, hardware upgrade, or feature upgrade. The game kernel layer 600 executes at the user level of the operating system 610, and itself contains a major component called the I/O Board Server 615. To properly set the bounds of game application software (making integrity checking easier), all game applications interact with gaming kernel 600 using a single API 602 in game manager 603. This enables game applications to make use of a well-defined, consistent interface, as well as making access points to gaming kernel 600 controlled, where overall access is controlled using separate processes.
[0081] For example, game manager 603 parses an incoming command stream and, when a command dealing with I/O comes in (arrow 604), the command is sent to an applicable library routine 612. Library routine 612 decides what it needs from a device, and sends commands to I/O Board Server 615 (see arrow 608). A few specific drivers remain in operating system 610's kernel, shown as those below line 606. These are built-in, primitive, or privileged drivers that are (i) general (ii) kept to a minimum and (iii) are easier to leave than extract. In such cases, the low-level communications is handled within operating system 610 and the contents passed to library routines 612.
[0082] Thus, in a few cases library routines may interact with drivers inside operating system 610, which is why arrow 608 is shown as having three directions (between library utilities 612 and I/O Board Server 615, or between library utilities 612 and certain drivers in operating system 610). No matter which path is taken, the logic needed to work with each device is coded into modules in the user layer of the diagram. Operating system 610 is kept as simple, stripped down, and common across as many hardware platforms as possible. The library utilities and user-level drivers change as dictated by the game cabinet or game machine in which it will run. Thus, each game cabinet or game machine may have an industry standard processor board 503 connected to a unique, relatively dumb, and as inexpensive as possible I/O adapter board, plus a gaming kernel 600 which will have the game-machine-unique library routines and I/O Board Server 615 components needed to enable game applications to interact with the gaming machine cabinet. Note that these differences are invisible to the game application software with the exception of certain functional differences (i.e., if a gaming cabinet has stereo sound, the game application will be able make use of API 602 to use the capability over that of a cabinet having traditional monaural sound).
[0083] Game manager 603 provides an interface into game kernel 600, providing consistent, predictable, and backwards compatible calling methods, syntax, and capabilities by way of game application API 602. This enables the game developer to be free of dealing directly with the hardware, including the freedom to not have to deal with low-level drivers as well as the freedom to not have to program lower level managers 630, although lower level managers 630 may be accessible through game manager 603's interface 602 if a programmer has the need. In addition to the freedom derived from not having to deal with the hardware level drivers and the freedom of having consistent, callable, object-oriented interfaces to software managers of those components (drivers), game manager 603 provides access to a set of high level managers 620 also having the advantages of consistent callable, object-oriented interfaces, and further providing the types and kinds of base functionality required in casino-type games. Game manager 603, providing all the advantages of its consistent and richly functional interface 602 as supported by the rest of game kernel 600, thus provides a game developer with a multitude of advantages.
[0084] Game manager 603 may have several objects within itself, including an initialization object (not shown). The initialization object performs the initialization of the entire game machine, including other objects, after game manager 603 has started its internal objects and servers in appropriate order. In order to carry out this function, the kernel's configuration manager 621 is among the first objects to be started; configuration manager 621 has data needed to initialize and correctly configure other objects or servers.
[0085] The high level managers 620 of game kernel 600 may include game event log manager 622 which provides, at the least, a logging or logger base class, enabling other logging objects to be derived from this base object. The logger object is a generic logger; that is, it is not aware of the contents of logged messages and events. The log manager's 622 job is to log events in non-volatile event log space. The size of the space may be fixed, although the size of the logged event is typically not. When the event space or log space fills up, one embodiment will delete the oldest logged event (each logged event will have a time/date stamp, as well as other needed information such as length), providing space to record the new event. In this embodiment, the most recent events will thus be found in the log space, regardless of their relative importance. Further provided is the capability to read the stored logs for event review.
[0086] In accordance with one embodiment, meter manager 623 manages the various meters embodied in the game kernel 600. This includes the accounting information for the game machine and game play. There are hard meters (counters) and soft meters; the soft meters may be stored in non-volatile storage such as non-volatile battery-backed RAM to prevent loss. Further, a backup copy of the soft meters may be stored in a separate non-volatile storage such as EEPROM. In one embodiment, meter manager 623 receives its initialization data for the meters, during start-up, from configuration manager 621. While running, the cash in 624 and cash out 625 managers call the meter manager's 623 update functions to update the meters. Meter manager 623 will, on occasion, create backup copies of the soft meters by storing the soft meters' readings in EEPROM. This is accomplished by calling and using EEPROM manager 631.
[0087] Progressive manager 626 manages progressive games playable from the game machine. Event manager 627 is generic, like log manager 622, and is used to manage various gaming device events. Focus manager 628 correlates which process has control of various focus items. Tilt manager 632 is an object that receives a list of errors (if any) from configuration manager 621 at initialization, and during game play from processes, managers, drivers, etc. that may generate errors. Random number generator manager 629 is provided to allow easy programming access to a random number generator (RNG), as a RNG is required in virtually all casino-style (gambling) games. RNG manager 629 includes the capability of using multiple seeds.
[0088] A credit manager object (not shown) manages the current state of credits (cash value or cash equivalent) in the game machine, including any available winnings, and further provides denomination conversion services. Cash out manager 625 has the responsibility of configuring and managing monetary output devices. During initialization, cash out manager 625, using data from configuration manager 621, sets the cash out devices correctly and selects any selectable cash out denominations. During play, a game application may post a cash out event through the event manager 627 (the same way all events are handled), and using a call back posted by cash out manager 625, cash out manager 625 is informed of the event. Cash out manager 625 updates the credit object, updates its state in non-volatile memory, and sends an appropriate control message to the device manager that corresponds to the dispensing device. As the device dispenses dispensable media, there will typically be event messages being sent back and forth between the device and cash out manager 625 until the dispensing finishes, after which cash out manager 625, having updated the credit manager and any other game state (such as some associated with meter manager 623) that needs to be updated for this set of actions, sends a cash out completion event to event manager 627 and to the game application thereby. Cash in manager 624 functions similarly to cash out manager 625, only controlling, interfacing with, and taking care of actions associated with cashing in events, cash in devices, and associated meters and crediting.
[0089] In a further example, in accordance with one or more embodiments, I/O server 615 may write data to the gaming machine EEPROM memory, which is located in the gaming machine cabinet and holds meter storage that must be kept even in the event of power failure. Game manager 603 calls the I/O library functions to write data to the EEPROM. The I/O server 615 receives the request and starts a low priority EEPROM thread 616 within I/O server 615 to write the data. This thread uses a sequence of 8 bit command and data writes to the EEPROM device to write the appropriate data in the proper location within the device. Any errors detected will be sent as IPC messages to game manager 603. All of this processing is asynchronous.
[0090] In accordance with one embodiment, button module 617 within I/O server 615, polls (or is sent) the state of buttons at the user interface 1018 every two milliseconds. These inputs are debounced by keeping a history of input samples. Certain sequences of samples are required to detect a button was pressed, in which case the I/O server 615 sends an inter-process communication event to game manager 603 that a button was pressed or released. In some embodiments, the gaming machine may have intelligent distributed I/O which debounces the buttons, in which case button module 617 may be able to communicate with the remote intelligent button processor to get the button events and simply relay them to game manager 603 via IPC messages. In still another embodiment, the I/O library may be used for pay out requests from the game application. For example, hopper module 618 (where a coin/token hopper is provided) must start the hopper motor, constantly monitor the coin sensing lines of the hopper, debounce them, and send an IPC message to the game manager 603 when each coin is paid.
[0091] Further details, including disclosure of lower level fault handling and/or processing, are included in U.S. Pat. No. 7,351,151 entitled Gaming Board Set and Gaming Kernel for Game Cabinets and provisional U.S. patent application No. 60/313,743, entitled Form Fitting Upgrade Board Set For Existing Game Cabinets, filed Aug. 20, 2001; said patent and provisional are both fully incorporated herein by explicit reference.
[0092] Turning to
[0093] As described in detail below when the 3D virtual reality functionality is enabled, the peripherals such as the primary game display 104, digital camera 122 and the touch screen may be configured to provide additional functionality to the game according to the present invention.
[0094] In many cases the gaming device 100 will be connected to one or more systems.
[0095] The gaming devices 100 are connected via a network to a network bridge 150, which is used for networking, routing and polling gaming devices, including slot machines. The network bridge 150 connects to the back end system 142. Optionally, the gaming devices 100 may connect to the network via a network rack 154, which provides for a few numbers of connections to the back end system 142. Both, network bridge 150 and network rack 154 may be classified as middleware, and facilitate communications between the back end system 142 and the GMUs 152. The network bridges 150 and network rack 154 may comprise data repositories for storing network performance data. Such performance data may be based on network traffic and other network related information. Optionally, the network bridge 804 and the network rack 806 may be interchangeable components. For example, in one embodiment, a casino gaming system may comprise only network bridges 150 and no network racks 154. Alternatively, in another embodiment, a casino gaming system may comprise only network racks 154 and no network bridges 150. Additionally, in an alternative embodiment, a casino gaming system may comprise any combination of one or more network bridges 150 and one or more network racks 154.
[0096] The back end system 142 may be configured to comprise one or more servers as hereinafter described. The type of server employed is generally determined by the platform and software requirements of the gaming system. In one embodiment, as illustrated in
[0097] Overall, the back end system 142 performs several functions. For example, the back end system 142 can collect data from the slot floor as communicated to it from other network components, and maintain the collected data in its database. The back end system 142 may use slot floor data to generate a report used in casino operation functions. Examples of such reports include, but are not limited to, accounting reports, security reports, and usage reports. The back end system 142 may also pass data to another server for other functions. Alternatively, the back end system 142 may pass data stored on its database to floor hardware for interaction with a game or game player. For example, data such as a game player's name or the amount of a ticket being redeemed at a game may be passed to the floor hardware. Additionally, the back end system 142 may comprise one or more data repositories for storing data. Examples of types of data stored in the system server data repositories include, but are not limited to, information relating to individual player play data, individual game accounting data, gaming terminal accounting data, cashable ticket data, sound data, and optimal display configurations for one or more displays for one or more system game. In certain embodiments the back end system 142 may include game download functionality to download and change the game played on the gaming devices 100, provide server based gaming or provide some or all of the data processing (including if desired graphics processing as described herein) to the gaming devices 100.
[0098] Of course, one will appreciate that a gaming system 140 may also comprise other types of components, and the above illustrations are meant only as examples and not as limitations to the types of components or games used in a casino gaming system.
[0099] According to a feature of the present invention the camera 122 is configured to capture the image of the player to determine or approximate the position of the player's eyes relative to the primary game display 104 for the purpose of rendering 3D graphical images. The camera 122 may be positioned at various locations on the gaming device 100; however in a preferred embodiment is offset from the center of the primary game display 104 as by being located between the display 104 and top glass 114 or to one side or the other of the primary game display 104 in the event the primary game display 104 is oriented in a portrait mode. As such the determination of the position of the player's eyes must take into account the offset from the center of the primary game display 104. This may be done by one or more of calculation or empirical alignment. For example, based upon the location the digital camera 122 measurements may determine the amount of offset. Preferably even though the compensation for offset can be mathematically calculated and accounted for empirical adjustment may be required to make sure the effect is not warped by misalignment and hence erroneous determination of the position of the player's eyes. For example, upon installation a standard target at a standard position corresponding to the position of a typical player's eyes may be used to configure the offset and focus the digital camera 122 to the desired field for the desired capture of data. It should be noted that this field may include a field to include other portions of the player's body where, for example, gesture input control is desired.
[0100]
[0101] According to the present invention inasmuch as the position of the player's head (and torso) is being detected by the digital camera 122 for the purpose of rendering certain images with a 3D effect, such detection can also be used to provide controlling input by the player. For example, and with reference to
[0102] Similarly other prompts may be provided to the player which can be responded to by traditional button or touch screen responses by nodding or shaking of the head or movement of the hands or arms. The responsive movement, i.e. gesture, is detected by the digital camera 122, converted to data and processed by the processor to convert the gesture into a response.
[0103]
[0104] Continuing with
[0105]
[0106] An example of the foregoing may be where the player has won an award and is then offered a choice to try to double the award through a display Hi-Lo card selection game. The prompt may be Do you want to Double Down? If the player nods their head Yes the win amount is staked as a wager and the double down game is played. If the player shakes their head No, the award is credited and the double down game is declined.
[0107]
[0108]
[0109] Turning to
[0110] Each gaming device 1400a, b includes a digital camera 1410a, b disposed to capture data corresponding to a scene 1412a, b as viewed from the gaming device 1400a, b. In the embodiment shown in
[0111]
[0112]
[0113] The play of the gaming devices 1400a, b may be as described above, i.e., each gaming device 1400a, b operates independently of the other. However, when an event occurs during play which entitles the gaming devices 1400a, b to offer a community gaming game certain displays and offerings are triggered. For example, the event may be after players have wagered a qualifying amount and have obtained a qualifying outcome, the community game is triggered. Assuming for purposes of discussing that the player of gaming device 1400a has qualified for the community game and a community gaming event has been triggered. In such a case the display of
[0114] In one embodiment the community game as between gaming devices 1400a, b may present content in a fashion to highlight the impression that the content is suspended between the players. For example, if both players of the gaming devices 1400a,b are qualified and the player of gaming device 1400a triggers a community gaming event the community game content may be a matrix of selections as shown in
[0115]
[0116] The feature of superimposition of the gaming content over scene images as described above can be provided on a routine basis which can be selectively enabled by the player. Further the scene to be used as the background can be imported such as a scene from the restaurant, pool area or any other real time or recorded scene.
[0117] Turning to
[0118]
[0119] Turning to
[0120] To overcome this drawback the present invention according to one or more embodiments applies a smoothing of such discontinuities. According to these various embodiments Slerp may be selectively used. Slerp is an animation algorithm developed by Ken Shoemake and a description of the mathematics can be found at, for example, http://en.wikiopedia.org/wiki/Slerp. Slerp is an algorithm that interpolates steps between two orientations of an object in a 3D generated scene-be it a virtual model, camera or light. Slerp is useful because it provided for constant speed motion which, when combined with interpolation of position, allows two arbitrary virtual cameral positions and orientations to be interpolated between over any given numbers of steps with a pleasing smooth effect.
[0121] While Slerp has been used for interpolating virtual cameral orientation in 3D PC and console games, i.e. the orientation of a viewed of the scene, it is believed that is have not been used before the present invention in conjunction with real time face tracking as a means for interpolating between virtual camera orientations because of the problem that Slerp, by its nature, is an interpolation and thus requires two endpoints to interpolate between a number of steps. It has been found that simply using Slerp to interpolate between virtual camera orientations produces a negative effect of adding latency of multiple frames of graphic rendering to the tracking. So while the player sees a smooth change of orientation of the 3D rendition, this change lags behind their head movement at least by one or two frames. This small delay is enough to ruin the 3D effect as the virtual camera no longer accurately reflects the position of the player's eyes. At worst the delay can be nauseating similar to the use of primitive virtual reality headsets that tracked with a similar latency.
[0122] To overcome these problems algorithms have been developed to use Slerp for only certain scenarios. Turning to
[0123] If at 2502 a face was previously detected at 2510 a determination is made if a face is still detected. If so, at 2512 the difference between the orientations (previous face detection and current face detection) is made. If the differences are small (determined by, for example, known methods such as the dot product between the two orientation quaternions) then no interpolation is used and the current orientation is used as the virtual camera orientation at 2514. This prevents any lag during normal face tracked play. It has been found that a 30 degree facial orientation different between the two image samples may qualify as a small difference. Other values may of course be used.
[0124] If at 2512 the difference is not small, such as where the player has looked away, than at 2516 a quick interpolation such as over 2-3 frames can be used. Tracking can still work with as much as a 45 degree variance from a head on view of the display.
[0125] If at 2510 no face is detected then a timeout period of, for example, ten seconds is initiated. At 2519 the software determines if a face has been re-acquired during the time out period. If at 2518 the time out period is reached with no re-acquisition of a face, then at 2520 a slow interpolation (using Slerp) is used from the previous orientation to the default orientation. If at 2519 before the time out period expires a face is re-acquired at 2522 a quick interpolation (again on the order of 2-3 frames) between the previous and current orientations is used. Ay 2524 the process is finished.
[0126] The foregoing description, for purposes of explanation, uses specific nomenclature and formula to provide a thorough understanding of the invention. It should be apparent to those of skill in the art that the specific details are not required in order to practice the invention. The embodiments have been chosen and described to best explain the principles of the invention and its practical application, thereby enabling others of skill in the art to utilize the invention, and various embodiments with various modifications as are suited to the particular use contemplated. Thus, the foregoing disclosure is not intended to be exhaustive or to limit the invention to the precise forms disclosed, and those of skill in the art recognize that many modifications and variations are possible in view of the above teachings.