A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
Over the years, gaming machines have grown in both sophistication and gaming features to maintain player interest. Gaming machines have gone from relatively simple devices providing a player with an opportunity to win cash awards to sophisticated, multi-media devices. Even more, the games presented on the gaming machines have become increasing intricate. For example, slot-style games include may include five or more reels with twenty or more paylines. Furthermore, games may include one or more bonus games or different game modes that allow a player to participate in a community game or a tournament. While current gaming machines are successful, there is a continuing need for slot machines variants that provide a player with enhanced excitement without deviating from the traditional slots game.
Briefly, and in general terms, various embodiments are directed to changing gaming machine hardware while maintaining the software component of the gaming machine. In one embodiment, a video-based slots gaming machine is reconfigured into a gaming machine having physical, spinning stepper reels with a flexible display affixed to the each reel. In another embodiment, a conventional mechanical reel-based gaming machine is reconfigured into a gaming machine in which conventional reel strips are upgraded to flexible displays affixed to the periphery of the reels.
For example, one embodiment of a gaming machine includes a plurality of mechanical reels each operatively coupled to a stepper motor. Each mechanical reel further includes a flexible video display affixed to an outer circumference of the mechanical reel. The gaming machine also has a main central processing unit for executing instructions for a native mechanical reel game, and a multiplexer engine that is in communication with the main central processing unit. The multiplexer engine intercepts and converts the native signals into video images for presentation on the flexible displays on the plurality of mechanical reels. The gaming machine also includes a display control system in communication with the flexible video display. The control board system has a central processing unit for decoding and transmitting processed video-based reel game data for display on the flexible video display.
In addition to gaming machines and mechanical reel structures, various methods for presenting an upgraded stepper reel games are disclosed herein. According to one method, an upgraded mechanical reel game is presented on a gaming machine, and the method includes sending a native signal for spinning a plurality of mechanical reels in response to player input initiating game play. Further, the method includes intercepting the native signal and converting the native signal into a video signal, and spinning the mechanical reels while presenting the video signal on the flexible video displays of the spinning mechanical reels.
Other features and advantages will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, which illustrate by way of example, the features of the various embodiments.
Other features and advantages will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, which illustrate by way of example, the features of the various embodiments.
Various embodiments and methods are directed to repurposing a conventional reel-based gaming machine presenting a slots-style game. In one embodiment, a video-based slots gaming machine is reconfigured into a gaming machine having physical, spinning stepper reels having a flexible display affixed to the each reel. In another embodiment, a conventional mechanical reel-based gaming machine is reconfigured into a gaming machine in which conventional reel strips are upgraded to flexible displays affixed to the periphery of the reels. While the hardware for the gaming machine has been altered, the underlying software running the video game has not been changed. Consequently, the gaming machine may be upgraded and used without further regulatory approval.
Referring now to the drawings, wherein like reference numerals denote like or corresponding parts throughout the drawings and, more particularly to
More specifically,
In another embodiment, a reel (not shown) has a plurality of flexible displays applied to the periphery of the reel. The flexible displays are mounted end to end so the flexible displays wrap completely around the physical reel. In one embodiment, there are flexible displays for each symbol position on the reel. In another embodiment, a reel has a plurality of flexible displays layered on top of each other. The layering of the plurality of displays generates a three-dimensional effect to the symbols displayed on the displays. In this embodiment, the displays may be transmissive (i.e., opaque in a first state and transparent in a second state).
As shown in
Power for the rotating portion 122 of the control circuitry 118 and the display 106 is transferred across a slip ring from the fixed control board 120. In another embodiment, a commutator transfers power to the control circuitry 118 and display 106. Alternatively, power may be supplied to the rotating portion 122 of the control circuitry 118 and the display 106 through inductance methods know or developed in the art.
As shown in
As shown in
As shown in
The video cut up and multiplexer engine 210 is able to process video outputs 204, 208 for presentation on the reconfigurable displays 106. The video cut up and multiplexer engine 210 receives the video output 208 from the original video reel spin game and divides the video into individual spinning reel portions for display on the displays of the separate physical reels. By way of example and not of limitation, if the original video reel spin game is a three-reel game, the engine 210 divides the original image into three separate video streams and each video stream is presented on a flexible display 106.
Additionally, the video cut up and multiplexer engine 210 also receives video output from the player tracking system 202. As shown in
Referring back to
As shown in
As shown in
In one embodiment, standard MPEG, MPEG2 or MPEG4 encoders and decoders (such as the DaVinci TMS320DM355) are modified to only generate I and P frames and eliminate the use of bidirectional encoding (i.e., B frames which are generally used to increase the perceived visual quality for a given bitrate). Bi-directional encoding is not used because it typically introduces a delay of anywhere up to 15 frames (which could be as much as half a second) in video passing through the encoder/decoder. That is, when using B-frames, each group of pictures (GOP) is encoded and decoded out of order—frame 15 of a GOP may be decoded before it is possible to decode frame 1. A potential delay of half a second would be unacceptable to a player of a slot machine because the delay would be introduced at the point when the player presses the “spin” button and before the video images are presented on the video display to the player. The delay may create apprehension in the player that the game is not properly operating properly.
The Video Cut Up and Multiplexer engine 210 takes the output from a video reel spin game 206 and cuts out the spinning reel portions for display on the separate physical reels. The Video Cut Up and Multiplexer engine 210 also receives a spin button signal 226 along with the video reel spin game, which allows the multiplexer engine to stay in sync with the video output from the video reel spin game. As a spin button is pressed, the multiplexer 210 is immediately able to change state to anticipate the movement of video reels.
In
If an external system such as the central management system 230 wishes to take control of one or more video stepper reels 102, the external system needs to further perform a negotiation process with the associated multiplexer 210 so that only one video content is shown at one time. Alternatively, a priority system within the video stepper reel software that prioritizes video content from the multiplexer or an external system so that video content from one source is presented at one time.
Data is transmitted via the infra-red link 432 from the encoder 418 on the stepper control/Ethernet interface board 402 to the infra-red decoder 420 on the video decoder and display control board 404. As shown in
In use, the sensing device (not shown) first determines the location of the player's eyes. According, to one method, the CPU of the gaming device computes a ray from the located eye through the point touched on the touchscreen to a point on the video stepper reel. In an alternate method, the CPU first computes a ray from the player's eye location to the point touched on the touch screen. Next, the CPU determines the point at which the ray contacts the video stepper reel. In either method, a more accurate position on the video stepper reel is determined because the height and distance of the player from the point of contact is accounted for. As a result, the gaming machine is able to use smaller contact areas. Alternatively, these methods provide for finer gesture control, which can lead to a plurality of games.
Conversion of Existing Stepper Game/Cabinet to Video Stepper
In another embodiment, the physical stepper reels in an existing are upgraded to a stepper reels having one or more flexible displays applied to the circumference of the reels. That is, the static reel strips are replaced with one or more flexible displays. The displays may be layered one on top of the other, end to end so that the entire circumference of the reel is covered, or a combination thereof. In this embodiment, the original signals may be repurposed and/or supplemented to provide an enhanced gaming experience. For example, the original stepper motor signals may be supplemented so that the artwork of the original stepper game is enhanced by downloading a new symbol bitmap images into the video memory associated with the CPU. Accordingly, when the original stepper motor signal is sent, the new symbol bitmap images are presented on the flexible displays. Optionally, new mathematics and other control logic may be incorporated into the game without swapping out the physical reels.
Generally, the CPU intercepts the various signals sent by the native/original program, and the CPU may send new or supplemental images, sound effects, or any combination thereof. Alternately, the original signal may be passed through the CPU without any decoding. Examples of these originals include, but are not limited to, stepper motor signals may be sent to the stepper motors, the original game signals that drive the light sources (e.g., lamps or LEDs) used to backlight a reel, and/or to highlight a winning payline are repurposed as inputs for the flexible displays.
As shown in
By way of example but not of limitation, the reel symbol illumination signals are used to illustrate the conversion of illumination signals into video output signals for the flexible displays. Each visible symbol on the reels of a reel stepper game is associated with a reel symbol illumination signal. In a five-reel game in which three symbols from each reel are visible, there is a total of 15 reel illumination signals. In one embodiment, the CPU includes decoding software having tables associated with each possible payline. The following tables are provided by way of example but not of limitation:
Line 1:
Line 2:
Line 3:
Line 4:
Line 5:
At the end of each reel spin, the inputs are interpreted, and the appropriate payline graphic image(s) 150 are overlaid on the video stepper reels 102a-e as shown in
This condition being met would result in the control logic retrieving the overlay images for payline 5. The overlay image 150 is then delivered to each of the video stepper reels 102a-e as shown in
Referring back to
As shown in
As shown in
In some embodiments, the flexible display is an electronic paper (e-paper) display. Various methods are contemplated to account for the comparatively long refresh times associated with e-paper displays. According to one method, a portion of the e-paper display is updated rather than updating the entire display. For example, a portion of the display corresponding to one, two, or three game symbols on the display is only updated. In yet another method, the portion of the display that is directly below the visible portion is refreshed. Because this portion of the reel has to travel the longest distance, the e-paper is given the maximum time to refresh before it becomes visible to the player.
Refreshing the portion of the video display that has just left the player's view is useful for those games having a “virtual reel,” which includes more symbol positions than physical spaces for such symbols. That is, a physical reel may have, for example, twenty-two spaces for game symbols, yet the “virtual reel” includes, for example, 100 symbols. The CPU includes an algorithm that allows an e-paper display to refresh itself during the spin cycle of the reel. Using the above reel configuration, if symbol positions 9-11 are currently visible, then the spin algorithm would (1) determine the final stopping position of the reel; (2) determine the number of symbols to be rotated through and reel spin speed (e.g., if the reel spin speed is one rotation per second, and the spin time is three seconds, the number of symbols to be rotated would be 66); (3) start spinning the reel; (4) replace the lowest symbol with the final stopping position symbol (e.g., the symbol from position 11 moves downward as the reel spins and is replaced with the symbol from the “from” position, which is initially the (final stopping position 47)); (5) increment the “from” position in the reel by one; (6) repeat steps (4) and (5) for 66 iterations; and (7) end with the correct final position. In this example, the final stopping position 47 is calculated by taking the number of symbols to rotate (66) and subtracting one revolution (22) and adding the number of visible symbols (3).
In another method, the reels are programmed to spin faster so that the symbols on the display are not discernable so that the display has adequate time to refresh to the image to be shown to the player when the reels stop. In another method, the reels spin slower in order to provide the maximum time for the display to refresh.
When implemented as a replacement output for a stepper game, the images displayed on the reels 102 can use the video methods described above, or alternatively static bitmap images 618 can be sent once to the video steppers over the infra red link. In another embodiment, a preferred solution is to use a hybrid approach; each video stepper has static symbol bitmaps drawn over the whole of the OLED display 106. When rotating, this appears to a player as very similar to a conventional stepper reel display. Once stopped, however, the reel displays are fed MPEG streams so that system and/or player tracking content may be rendered onto the reels and/or more animation may be shown on the display as compared to a conventional reel.
Additionally, the transducers 708 are able to adhere to the skin of the glass-like materials of the touch panel 702 sufficiently to pass around curves. This allows a curved touch panel (not shown) to be utilized without detrimental effects. Accordingly, in one embodiment, the touch panel 702 has a radius of curvature similar to the reels 102. Also, one of ordinary skill in the art will appreciate that while the touch panel 702 is shown to be rectangular in shape with respect to
As shown in
In one embodiment, the microprocessor 710 runs an application that translates the touch panel controller 704 serial touch information into reel control commands for a GDCU reel controller 712. The application uses drivers to communicate with the GDCU 712 which controls the projection of the image onto the OLED display 106 of the reels 102. The GDCU 712 is a communications portion of the gaming machine 100 which “talks” to the different components of the gaming machine.
As shown in
The touchscreen receives various inputs (e.g., single touch, multi-touch, single or multi-touch gesturing, or any combination thereof) that correspond to coordinates on the LCD display. The input from the touchscreen corresponds to a selection of games for play, number of games to play, paylines, bonus symbols, wager amounts, wager denominations, spinning one or more reels, stopping one or more reels, or any other input associated with the game. For example, the coordinates of the touchscreen portion overlaying the reels is mapped to the underlying physical video stepper reels. As a result, the touchscreen is able to receive player input that will cause the reel and/or symbols on the reels to change in appearance.
For example,
Optionally, the “slide up” or “slide down” gesture may be used after the reels have stopped. The player may select one or more reels and attempt to nudge or move the reels one or more positions so that a game symbol appears or is removed from a payline. These gestures may be provided to the player (for purchase, as a bonus, or in response to particular game outcome) so that the player may attempt to improve the game outcome.
As shown in
Those video stepper reels that are not used in
As shown in
In various embodiments, the ability to swap symbols may be a feature of the game or the player must have satisfied some predefined criteria to permit this feature of the game. For example, the predefined criteria may be one or more maximum wagers, a predefined period of continuous play, a particular player club level, accrual of a particular number of player club points, or any other trigger events known or developed in the art. As those skilled in the art will appreciate, the game may be limited to only allow the player to swap certain game indicia. Alternatively, the game may allow any swapping of game indicia between reels or on the same reel. Optionally, the game may allow more than one swap per game.
In yet another embodiment, the touch screen is configured to accept touch data that allows a player to add game indicia onto one or more reels or remove one or more indicia from a reel as shown in
In another embodiment, the touch screen is configured to accept touch data that allows a player to define a pay line. Accordingly, a player may drag a finger across the screen to connect a number of positions on one or more reels to form a pay line. For example, in a three-reel game having three pay lines (i.e., display shows three symbols on each reel), the player may define a pay line that is composed of two symbol positions on the first reel and one symbol position on the second reel. These symbol positions are generally composed of three adjacent symbol positions. Alternatively, the pay line is composed of three non-adjacent symbol positions. In another embodiment, the pay line may be composed of merely three symbol positions on any number of the reels. As those skilled in the art will appreciate, a five-reel game having a touch screen may also allow a player to define pay lines.
In various embodiments, the gesturing feature may be a standard feature of the game or the player must have satisfied some predefined criteria to permit this feature of the game. For example, the predefined criteria may be one or more maximum wagers, a predefined period of continuous play, a particular player club level, accrual of a particular number of player club points, or any other trigger events known or developed in the art. Alternatively, the player may need to purchase the ability to use the touch gesturing. In yet another embodiment, touch gesturing may be activated in response to a particular game outcome such as, but not limited to, a particular game symbol appearing on a payline.
For the purposes of this disclosure, a conventional video gaming machine presents a five reel game in which three symbol positions from each reel are visible to the player when the reels are stopped. However, those skilled in the art will appreciate the conventional video game may have any number of reels, wheel, or any combination thereof.
The following is one method for reconfiguring a convention video slots machine into a mechanical stepper motor game having reconfigurable displays. First, the areas of the video screen occupied by the video reels are identified.
At step 902, video reel spin is started by either manual intervention or via a signal from the video capture software. Once the video reel spin is initiated, the video images are read from the frame buffer at step 904. For the required number of N frames, a video image is captured every time the video screen updates. Screen updates occur at a rate of either 30 Hz or 60 Hz, depending upon the game. The captured image is stored and an image counter (I) is incremented at step 906. At step 908, this process continues until the required number of video images are captured. In this example, thirty images would need to be captured and stored in memory.
Once the N frames, thirty frames in this example are captured, the differences between the frames are calculated. Steps 910-922 provide an overview of one method of calculating the differences between the frames. By calculating frame differences, the parts of the image that have changed from frame to frame are isolated and stored.
Referring back to
Then the top left pixel in the mask would be:
0 OR 0 OR 1 OR 0 OR 0=1
And the mask for all 4 pixels would therefore be:
1 0
1 1
Optionally, when the mask image is complete, an operator can review the mask image and to mark off areas that are not part of the reels. For example, if the game display presents incrementing progressive values, the operator can manually intervene to mask these changing pixels. Alternatively, after the mask image is complete, a process automatically filters the inputs to only sensible values. For example, the process discards rows of less than 20 pixels.
Once the mask images are completed, the mask image data is processed to identify reel positions. The reel positions and extents may be identified using the method shown in
The next task is to find each of the reels in this row. Each pixel in the row is tested at step 958 in turn again to see if X=0. If X is zero for a pixel row, X is incremented until the first 1 is found at step 960. At this point, the top left hand corner of the Rth reel has been found (R initially being zero). X and Y are stored for this reel at step 962. The incrementing of X and pixel testing continues until a zero is found at step 964. This indicated the top right hand corner of the Rth reel at step 966. The width of the reel is therefore set to be the current X minus the X coordinate of the top left hand corner of the reel. After incrementing R to identify that a reel has been successfully found, iteration continues across the row with these comparisons to identify the top corners of each of the reels.
The final parameter needed to identify the size and extents of the video reels is the height, which is identified by setting X to be in the top middle of the first reel found at step 968. Next, each row of pixels at this position is read 970, determining whether the pixel is a 1 at step 922, and incrementing Y between each read 974, until a pixel with a zero value is found. The zero value indicates the bottom row of the reels at step 976. The height of the reel is computed by subtracting the Y coordinate for the top of the reel from the Y coordinate for the bottom of the reel.
Having identified the number of reels (R) and the coordinates and extents of these reels, an image is generated showing these identified reels and presenting it to the operator as shown in
For each reel on the screen, the analysis process works by setting the reel number to zero at step 1006. At step 1008, the middle row of the reel is set, which is the row that is half way between the top and bottom of the reel. Y1, Y2, and Y3 are set to the middle row. At step 1010, the row of pixels in the reel indicated by Y1 in frame N is compared to those indicated by Y2. The row of pixels in reel Y1 in frame N is also compared to the row of pixels in Y3 in frame N−1 at step 1012. If the rows of pixels are not identical, Y2 is incremented and Y3 are decremented at step 1014. If the row at Y2 in frame N−1 is the same as the row at Y1 in frame N, the image has moved by (Y2−Y1) pixels. This result is then stored as a delta for frame N at step 1016. If the row at Y3 in frame N−1 is the same as the row at Y1 in frame N, then the image has moved by (Y3−Y1) pixels and this result is stored as a delta for frame N at step 1018.
In the event of a correct match of the row at Y2 or Y3 with the row at Y1, further checks are made that the rows below Y2 or Y3 are also identical to the corresponding rows below Y1 (e.g., row (Y2+1)=row (Y1+1) or row (Y3+1)=row (Y1+1)). These comparisons continue for a suitable number of rows to ensure that correct decisions have been made with regard to the delta. In one method, the comparisons are continued for twenty rows, but any number rows may be used for comparisons. The comparison loop is performed for each of the reels in turn, and then N is incremented and the process repeats until all deltas are 0 (i.e., all of the reels have stopped spinning). The output from this process is a set of deltas indicating the movement profile of each reel as it spins from start to finish.
For each reel, the previous reel position is read in pixels at step 1108. At the same time, the position on the physical reel to draw the video image is determined by adding the delta for the reel to the previous Y position at step 1110. For example, if the previous Y position was 0 and the delta is 100, the video reel is drawn at Y position 100. At step 1112, the reel is rendered by copying the video data from the previously determined positions and extents to the correct position on the OLED screen. Using the previous example, the rendered video image is presented at (0,100). Optionally, the video image would be stretched horizontally across the full width of the OLED screen attached to the reel. At step 1114, N is incremented by one (1), and the process waits until the next video frame has been drawn in the conventional video game at step 1116. If any deltas are non-zero values, the process continues reading and drawing until all deltas are zero (i.e., until all the reels have stopped spinning at step 1118).
At step 1154, a decision is made whether or not the image should be split into two parts (i.e., is Y<(DH−RH)?). If Y is less than (DH−RH), then the MPEG encodes the image RH lines from reel as M at step 1156. The values M, RH, and Y are transmitted over the IR link to the MPEG decoder so that the image may be displayed on the OLED at step 1158. Because the OLED display is wrapped around the physical reel, the top and the bottom of the OLED display are joined together. While the reel is spinning, this joint is part of the display that is visible to the player. Accordingly, a video image may be rendered on the OLED display that will span across the joint of the display. That is, a first portion of the video image is presented on the bottom of the display and a second portion of the video image is presented on the top of the OLED display. As shown in
In an alternative method, data for the whole OLED reel image is sent to the MPEG decoder (i.e., disregarding the Y value). In this method, the MPEG encoder would fill the remainder of the image with zeroes and send a fixed size image for the whole of the OLED display. In this method, the MPEG decoder requires less understanding of the data. That is, for example, every frame would consist of an image of 2000 pixels high (for a 2000 pixel high OLED display) with the image to be visible correctly positioned within the display. With this method, it is possible that the previously rendered image is not cleared in the decoding phase. Because the player may see a portion of the previously rendered image through the window onto the reel, the player may see near misses below the active play lines.
In either method, the encoded image(s) are sent over the infra red link and received by the MPEG decoder. The MPEG decoder decodes and places the decoded image into video memory accessible by the VGA, DVI or LVDS encoder for transfer to the OLED display.
For the sake of brevity, the interpolation process of
At step 1304, the delta for the first frame is read, and the video image for this reel from the video game is read at step 1306. In the first iteration of the loop, no further processing takes place as the image is stored for interpolating to the second frame because N is zero at step 1308 and N is incremented at step 1310. On the second iteration of the loop, the second video image is received and interpolation process can begin. The delta (i.e. the vertical movement between the first and second video image) is noted. If the delta is greater than zero at step 1312a, the image has a downward vertical movement and the composite images according to steps 1314a, 1316a, and 1320a. Otherwise, the vertical movement is upwards and the images are rendered according to steps 1314b, 1316b, and 1320b.
For a number of intermediate frames, a composite image is generated from the two video images—the last received (Image N) and the one received prior to the last received (Image N−1) at step 1314a. In the case of a downward vertical movement, most of the composite image is copied from image (N−1), with a small amount taken from the Image N placed at the top of the composite image. For example, if a downwardly-moving reel image has a height of 200 rows, a delta of 50 rows, and the interpolation amount is ⅕th of the delta (i.e., 10 rows), the composite image is composed of 10 rows from row 40 of Image N, followed by 190 rows from the top of Image (N−1).
After the interpolated image is generated, the physical reel motor is used to rotate the reel by a calculated amount. The composition image is positioned and drawn according to the method disclosed in
Returning to the method shown in
In accordance with one or more embodiments,
The plurality of player-activated buttons 1460 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, or cashing out money from gaming machine 1400. Buttons 1460 function as input mechanisms and may include mechanical buttons, electromechanical buttons or touch screen buttons. Optionally, a handle 1485 may be rotated by a player to initiate a game.
In other embodiments, buttons 1460 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, 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.
Cabinet housing 1420 may optionally include top box 1450 which contains “top glass” 1452 comprising advertising or payout information related to the game or games available on gaming machine 1400. Player tracking panel 1436 includes player tracking card reader 1434 and player tracking display 1432. Voucher printer 1430 may be integrated into player tracking panel 1436 or installed elsewhere in cabinet housing 1420 or top box 1450.
Game display 1440 presents a game of chance wherein a player receives one or more outcomes from a set of potential outcomes. For example, one such game of chance is a video slot machine game. In other aspects of the invention, gaming machine 1400 may present a video or mechanical reel slot machine, 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 primary wheel game or the like.
Mechanical or video/mechanical embodiments may include game displays such as mechanical reels, wheels, or dice as required to present the game to the player. In video/mechanical or pure video embodiments, game display 1440 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, or any other type of panel display known or developed in the art. Game display 1440 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 16×9). 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.
Game display 1440 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 through a host computer networked with gaming machine 1400 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 1460; the game display itself, if game display 1440 comprises a touch screen or similar technology; buttons (not shown) mounted about game display 1440 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.
Cabinet housing 1420 incorporates a single game display 440. However, in alternate embodiments, cabinet housing 1420 or top box 1450 may house one or more additional displays 1453 or components used for various purposes including additional game play screens, animated “top glass,” progressive meters or mechanical or electromechanical devices (not shown) such as, but not limited to, wheels, pointers or reels. The additional displays may or may not include a touch screen or touch glass system.
Referring to
Peripherals 1551 connect through bus 1553 to EGM Processor Board 1503. For example, a bill/ticket acceptor is typically connected to a game input-output board 1553 which is, in turn, connected to a conventional central processing unit (“CPU”) board 1503, such as an Intel Pentium microprocessor mounted on a gaming motherboard. I/O board 1553 may be connected to CPU processor board 1503 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 machine operating system (OS), such as a Bally Alpha OS. Processor board 1503 executes a game program that causes processor board 1503 to play a game. In one embodiment, the game program provides a slot machine game having an interactive wheel feature 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 machine cabinet, examples of which are described above.
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 I/O board 1553 to processor board 1503 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 machine by way of other peripherals 1551, for example, to select the amount to wager via electromechanical or touch screen buttons. The game starts in response to the player operating a start mechanism such as a handle or touch screen icon. The game program includes a random number generator to provide a display of randomly selected indicia on one or more displays. In some embodiments, the random generator may be physically separate from gaming machine 1400; for example, it may be part of a central determination host system which provides random game outcomes to the game program. Thereafter, the player may or may not interact with the game through electromechanical or touch screen buttons to change the displayed indicia. Finally, processor board 1503 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 game. In the event the displayed outcome is a member of this subset, processor board 1503, under control of the game program and by way of I/O Board 1553, may cause feature game play to be presented on a feature display.
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 1503, provided to the player in the form of coins, credits or currency via I/O board 1553 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.
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. The gaming machine 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 EGM 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).
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 EGM using USB, serial or Ethernet connections. Each of the respective devices may have upgrades to their firmware utilizing these connections.
GMU 1507 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 1507 may connect to card reader 1555 through bus 1557 and may thereby obtain player card information and transmit the information over the network through bus 1541. Gaming activity information may be transferred by the EGM Processor Board 1503 to GMU 1507 where the information may be translated into a network protocol, such as S2S, for transmission to a server, such as a player tracking server, where information about a player's playing activity may be stored in a designated server database.
PID 1509 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 1509, such as player interface devices 1511, and which may further include various games or game components playable on PID 1509 or playable on a connected network server and PID 1509 is operable as the player interface. PID 1509 connects to card reader 1555 through bus 1523, display 1559 through video decoder 1561 and bus 1521, such as an LVDS or VGA bus.
As part of its programming, the PID processor executes coding to drive display 1559 and provide messages and information to a player. Touch screen circuitry interactively connects display 1559 and video decoder 1561 to PID 1509, such that a player may input information and cause the information to be transmitted to PID 1509 either on the player's initiative or responsive to a query by PID 1509. Additionally soft keys 1565 connect through bus 1517 to PID 1509 and operate together with display 1559 to provide information or queries to a player and receive responses or queries from the player. PID 1509, in turn, communicates over the CMS/SMS network through Ethernet switch 1531 and busses 1535, 1539 and with respective servers, such as a player tracking server.
Player interface devices 1511 are linked into the virtual private network of the system components in gaming machine 1501. The system components include the iVIEW processing board and game monitoring unit (GMU) processing board. 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 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.
The system components include the iVIEW processing board and game monitoring unit (GMU) processing board. The GMU and iVIEW can combined into one like the commercially available Bally GTM iVIEW device. This device may have a video mixing technology to mix the EGM processor's video signals with the iVIEW display onto the top box monitor or any monitor on the gaming device.
In accordance with one or more embodiments,
As shown in the example, there are three layers: a hardware layer 1605; an operating system layer 1610, such as, but not limited to, Linux; and a game kernel layer 1600 having game manager 1603 therein. In one or more embodiments, the use of a standard operating system 1610, 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 1600 executes at the user level of the operating system 1610, and itself contains a major component called the I/O Board Server 1615. To properly set the bounds of game application software (making integrity checking easier), all game applications interact with gaming kernel 1600 using a single API 1602 in game manager 1603. This enables game applications to make use of a well-defined, consistent interface, as well as making access points to gaming kernel 1600 controlled, where overall access is controlled using separate processes.
For example, game manager 1603 parses an incoming command stream and, when a command dealing with I/O comes in (arrow 1604), the command is sent to an applicable library routine 1612. Library routine 1612 decides what it needs from a device, and sends commands to I/O Board Server 1615 (see arrow 1608). A few specific drivers remain in operating system 1610's kernel, shown as those below line 1606. 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 1610 and the contents passed to library routines 1612.
Thus, in a few cases library routines may interact with drivers inside operating system 1610, which is why arrow 1608 is shown as having three directions (between library utilities 1612 and I/O Board Server 1615, or between library utilities 1612 and certain drivers in operating system 1610). 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 1610 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 1505 connected to a unique, relatively dumb, and as inexpensive as possible I/O adapter board 1540, plus a gaming kernel 1600 which will have the game-machine-unique library routines and I/O Board Server 1615 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 1602 to use the capability over that of a cabinet having traditional monaural sound).
Game manager 1603 provides an interface into game kernel 1600, providing consistent, predictable, and backwards compatible calling methods, syntax, and capabilities by way of game application API 1602. 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 1630, although lower level managers 1630 may be accessible through game manager 1603's interface 1602 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 1603 provides access to a set of upper level managers 1620 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 1603, providing all the advantages of its consistent and richly functional interface 1602 as supported by the rest of game kernel 1600, thus provides a game developer with a multitude of advantages.
Game manager 1603 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 1603 has started its internal objects and servers in appropriate order. In order to carry out this function, the kernel's configuration manager 1621 is among the first objects to be started; configuration manager 1621 has data needed to initialize and correctly configure other objects or servers.
The upper level managers 1620 of game kernel 1600 may include game event log manager 1622 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 (1622) 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.
In accordance with one embodiment, meter manager 1623 manages the various meters embodied in the game kernel 1600. 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 1623 receives its initialization data for the meters, during startup, from configuration manager 1621. While running, the cash in (1624) and cash out (1625) managers call the meter manager's (1623) update functions to update the meters. Meter manager 1623 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.
In accordance with still other embodiments, progressive manager 1626 manages progressive games playable from the game machine. Event manager 1627 is generic, like log manager 1622, and is used to manage various gaming machine events. Focus manager 1628 correlates which process has control of various focus items. Tilt manager 1632 is an object that receives a list of errors (if any) from configuration manager 1621 at initialization, and during game play from processes, managers, drivers, etc. that may generate errors. Random number generator manager 1629 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 1629 includes the capability of using multiple seeds.
In accordance with one or more embodiments, 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 1625 has the responsibility of configuring and managing monetary output devices. During initialization, cash out manager 1625, using data from configuration manager 1621, 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 1627 (the same way all events are handled), and using a callback posted by cash out manager 1625, cash out manager 1625 is informed of the event. Cash out manager 1625 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 1625 until the dispensing finishes, after which cash out manager 1625, having updated the credit manager and any other game state (such as some associated with meter manager 1623) that needs to be updated for this set of actions, sends a cash out completion event to event manager 1627 and to the game application thereby. Cash in manager 1624 functions similarly to cash out manager 1625, only controlling, interfacing with, and taking care of actions associated with cashing in events, cash in devices, and associated meters and crediting.
In a further example, in accordance with one or more embodiments, I/O server 1615 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 1603 calls the I/O library functions to write data to the EEPROM. The I/O server 1615 receives the request and starts a low priority EEPROM thread 1616 within I/O server 1615 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 1603. All of this processing is asynchronous.
In accordance with one embodiment, button module 1617 within I/O server 1615, polls (or is sent) the state of buttons 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 1615 sends an inter-process communication event to game manager 1603 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 1617 may be able to communicate with the remote intelligent button processor to get the button events and simply relay them to game manager 1603 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 1618 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 1603 when each coin is paid.
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 Kemal 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.
Referring to
Gaming machines 1803 include various peripheral components that may be connected with USB, serial, parallel, RS-485 or Ethernet devices/architectures to the system components within the respective gaming machine. The GMU has a connection to the base game through a serial SAS connection. The system components in the gaming cabinet may be connected to the servers using HTTPs or G2S over Ethernet. Using CMS 1807 and/or SMS 1305 servers and devices, firmware, media, operating systems, and configurations may be downloaded to the system components of respective gaming machines for upgrading or managing floor content and offerings in accordance with operator selections or automatically depending upon CMS 1807 and SMS 1805 master programming. The data and programming updates to gaming machines 1803 are authenticated using conventional techniques prior to install on the system components.
In various embodiments, any of the gaming machines 1803 may be a mechanical reel spinning slot machine, video slot machine, video poker machine, video bingo machine, keno machine, or a gaming machine offering one or more of the above described games including an interactive wheel feature. Alternately, gaming machines 1803 may provide a game with an accumulation-style feature game as one of a set of multiple primary games selected for play by a random number generator, as described above. A gaming system of the type described above also allows a plurality of games in accordance with the various embodiments of the invention to be linked under the control of a group game server (not shown) for cooperative or competitive play in a particular area, carousel, casino or between casinos located in geographically separate areas. For example, one or more examples of group games under control of a group game server are disclosed in U.S. application Ser. No. 11/938,079, entitled “Networked System and Method for Group Gaming,” filed on Nov. 9, 2007, which is hereby incorporated by reference in its entirety for all purposes.
It should be noted that the term gaming machine is intended to encompass any type of gaming machine, including hand-held devices used as gaming machines such as cellular based devices (e.g. phones), PDAs, or the like. The gaming machine can be represented by any network node that can implement a game and is not limited to cabinet based machines. The system has equal applicability to gaming machines implemented as part of video gaming consoles or handheld or other portable devices. In one embodiment, a geo-location device in the handheld or portable gaming device may be used to locate a specific player for regulatory and other purposes. Geo-location techniques that can be used include by way of example, and not by way of limitation, IP address lookup, GPS, cell phone tower location, cell ID, known Wireless Access Point location, Wi-Fi connection used, phone number, physical wire or port on client device, or by middle tier or backend server accessed. In one embodiment, GPS and biometric devices are built within a player's client device, which in one embodiment, comprises a player's own personal computing device, or provided by the casino as an add-on device using USB, Bluetooth, IRDA, serial or other interface to the hardware to enable jurisdictionally compliant gaming, ensuring the location of play and the identity of the player. In another embodiment, the casino provides an entire personal computing device with these devices built in, such as a tablet type computing device, PDA, cell phone or other type of computing device capable of playing system games.
One of ordinary skill in the art will appreciate that not all gaming machines have all these components and may have other components in addition to, or in lieu of, those components mentioned here. Furthermore, while these components are viewed and described separately, various components may be integrated into a single unit in some embodiments.
The various embodiments described above are provided by way of illustration only and should not be construed to limit the claimed invention. Those skilled in the art will readily recognize various modifications and changes that may be made to the claimed invention without following the example embodiments and applications illustrated and described herein, and without departing from the true spirit and scope of the claimed invention, which is set forth in the following claims.