The present disclosure is related to presenting games on gaming machines such as reel-type slot machines, video poker machines, etc.
Various presentation techniques for gaming machines have been previously described. For example, U.S. Pat. No. 5,788,573 to Baerlocher et al. describes a computer-implemented electronic game. A gaming terminal is configured to display a screen with a number of areas including a puzzle completion area and a slot machine area. The slot machine area includes a number of simulated slot machine reels. In one example, multiple symbols on multiple reels are displayed. In this example, multiple possible paylines are provided. Payline indicators are displayed to indicate the various paylines. In one example, a payline indicator includes a number indicative of the payline, and a lighted portion adjacent to the symbol positions included in the payline.
U.S. Pat. No. 6,050,895 to Luciano, Jr. et al. describes a gaming device for a hybrid game including a coordination/dexterity portion and/or a traditional game portion. A screen that may be displayed on a display device includes a plurality of screen portions. In one portion, a representation of a golf course is displayed in connection with a simulated golf game. In another portion, a traditional game such as an electronic slot machine game is depicted.
Miguel A. Sepulveda, “What is OpenGL?,” LinuxFocus, Vol. 2 (January 1998) describes an application programming interface, known as “OpenGL,” for developing three dimensional (3D) graphical applications. With OpenGL, a programmer may construct mathematical descriptions of objects, and arrange the objects in a 3D scene. Additionally, the programmer can select a desired vantage point for viewing the scene, provide lighting to the scene, and color to the objects. Additionally, the programmer can use “texture mapping” to render images of realistic looking surfaces on to objects in the 3D scene.
In one embodiment, a gaming apparatus is provided. The gaming apparatus may comprise a display unit, a value input device, and a controller operatively coupled to the display unit and the value input device. The controller may comprise a microprocessor and a memory operatively coupled to the microprocessor. The controller may be configured to generate a representation of a game display in a three dimensional (3D) graphics space, and to convert a view of the 3D graphics space into display data for display on the display unit, the view including the game display. The controller may also be configured to cause the display unit to display the display data, the display data including the view of the 3D graphics space, and to allow a person to make a wager. The controller may additionally be configured to cause the display unit to display a secondary display, the secondary display overlapping, at least in part, the game display, wherein the secondary display appears at least partially transparent.
In another embodiment, another gaming apparatus is provided. The gaming apparatus may comprise a display unit, a value input device, and a controller operatively coupled to the display unit and the value input device. The controller may comprise a microprocessor and a memory operatively coupled to the microprocessor. The controller may be configured to allow a person to make a wager, and to generate a representation of a game display on a first plane in a three dimensional (3D) graphics space. The controller may additionally be configured to generate display data for the display unit, the display data corresponding to a view in the 3D graphics space, and to determine, after the display data has been displayed, a value payout associated with an outcome of the game represented by the display data. The controller may also be configured to cause the display unit to display a secondary display, the secondary display overlapping, at least in part, the game display, wherein the secondary display appears at least partially transparent.
In a further embodiment, still another gaming apparatus is provided. The gaming apparatus may comprise a display unit, a value input device, and a controller operatively coupled to the display unit and the value input device. The controller may comprise a microprocessor and a memory operatively coupled to the microprocessor. The controller may be configured to generate a representation of a game display in a three dimensional (3D) graphics space, the game display corresponding to a game, and to cause the display unit to display a view of the game display in the 3D graphics space. The controller may also be configured to allow a person to make a wager, and to determine the outcome of the game. The controller may additionally be configured to determine a value payout associated with the outcome of the game, and to cause the display unit to display a secondary display, the secondary display overlapping, at least in part, the view of the game display, wherein the secondary display appears at least partially transparent.
In yet another embodiment, a gaming method is provided. The gaming method may comprise generating a representation of a game display in a three dimensional (3D) graphics space, and converting a view of the representation of the game display into display data for display on a display unit. The gaming method may additionally comprise determining a value payout associated with an outcome of associated with the game display, and displaying a secondary display on the display unit, the secondary display overlapping, at least in part, the view of the game display, wherein the secondary display appears at least partially transparent.
In still another embodiment, a memory having a computer program stored therein is provided, the computer program being capable of being used in connection with a gaming apparatus. The memory may comprise a first memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to allow a person to make a wager, and a second memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to convert a view of a three dimensional (3D) graphics space into display data for display on a display unit, the 3D graphics space including a representation of a game. The memory may also comprise a third memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to display the display data on the display unit, and a fourth memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to determine a value payout associated with an outcome of a game corresponding to the game display. The memory may further comprise a fifth memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to display a secondary display on the display unit, the secondary display overlapping, at least in part, the view of the game display, wherein the secondary display appears at least partially transparent.
In yet another embodiment, a gaming apparatus is provided. The gaming method may comprise a display unit, a value input device, and a controller operatively coupled to the display unit and the value input device. The controller may comprise a microprocessor and a memory operatively coupled to the microprocessor. The controller maybe configured to cause the display unit to display a game display, and to allow a person to make a wager. The controller may additionally be configured to cause the display unit to display a secondary display, the secondary display overlapping, at least in part, the game display, wherein the secondary display appears at least partially transparent.
Additional aspects of the invention will be apparent to those of ordinary skill in the art in view of the detailed description of various embodiments, which is made with reference to the drawings, a brief description of which is provided below.
Although the following text sets forth a detailed description of numerous different embodiments of the invention, it should be understood that the legal scope of the invention is defined by the words of the claims set forth at the end of this patent. The detailed description is to be construed as exemplary only and does not describe every possible embodiment of the invention since describing every possible embodiment would be impractical, if not impossible. Numerous alternative embodiments could be implemented, using either current technology or technology developed after the filing date of this patent, which would still fall within the scope of the claims defining the invention.
It should also be understood that, unless a term is expressly defined in this patent using the sentence “As used herein, the term ‘______’ is hereby defined to mean . . . ” or a similar sentence, there is no intent to limit the meaning of that term, either expressly or by implication, beyond its plain or ordinary meaning, and such term should not be interpreted to be limited in scope based on any statement made in any section of this patent (other than the language of the claims). To the extent that any term recited in the claims at the end of this patent is referred to in this patent in a manner consistent with a single meaning, that is done for sake of clarity only so as to not confuse the reader, and it is not intended that such claim term by limited, by implication or otherwise, to that single meaning. Finally, unless a claim element is defined by reciting the word “means” and a function without the recital of any structure, it is not intended that the scope of any claim element be interpreted based on the application of 35 U.S.C. § 112, sixth paragraph.
The first network 12 of gaming units 20 may be provided in a first casino, and the second network 26 of gaming units 30 may be provided in a second casino located in a separate geographic location than the first casino. For example, the two casinos may be located in different areas of the same city, or they may be located in different states. The network 40 may include a plurality of network computers or server computers (not shown), each of which may be operatively interconnected. Where the network 40 comprises the Internet, data communication may take place over the communication links 42, 44 via an Internet communication protocol.
The network computer 22 may be a server computer and may be used to accumulate and analyze data relating to the operation of the gaming units 20. For example, the network computer 22 may continuously receive data from each of the gaming units 20 indicative of the dollar amount and number of wagers being made on each of the gaming units 20, data indicative of how much each of the gaming units 20 is paying out in winnings, data regarding the identity and gaming habits of players playing each of the gaming units 20, etc. The network computer 32 may be a server computer and may be used to perform the same or different functions in relation to the gaming units 30 as the network computer 22 described above.
Although each network 12, 26 is shown to include one network computer 22, 32 and four gaming units 20, 30, it should be understood that different numbers of computers and gaming units may be utilized. For example, the network 12 may include a plurality of network computers 22 and tens or hundreds of gaming units 20, all of which may be interconnected via the data link 24. The data link 24 may provided as a dedicated hardwired link or a wireless link. Although the data link 24 is shown as a single data link 24, the data link 24 may comprise multiple data links.
Referring to
If provided on the gaming unit 20, the ticket reader/printer 56 maybe used to read and/or print or otherwise encode ticket vouchers 60. The ticket vouchers 60 may be composed of paper or another printable or encodable material and may have one or more of the following informational items printed or encoded thereon: the casino name, the type of ticket voucher, a validation number, a bar code with control and/or security data, the date and time of issuance of the ticket voucher, redemption instructions and restrictions, a description of an award, and any other information that may be necessary or desirable. Different types of ticket vouchers 60 could be used, such as bonus ticket vouchers, cash-redemption ticket vouchers, casino chip ticket vouchers, extra game play ticket vouchers, merchandise ticket vouchers, restaurant ticket vouchers, show ticket vouchers, etc. The ticket vouchers 60 could be printed with an optically readable material such as ink, or data on the ticket vouchers 60 could be magnetically encoded. The ticket reader/printer 56 may be provided with the ability to both read and print ticket vouchers 60, or it may be provided with the ability to only read or only print or encode ticket vouchers 60. In the latter case, for example, some of the gaming units 20 may have ticket printers 56 that may be used to print ticket vouchers 60, which could then be used by a player in other gaming units 20 that have ticket readers 56.
If provided, the card reader 58 may include any type of card reading device, such as a magnetic card reader or an optical card reader, and may be used to read data from a card offered by a player, such as a credit card or a player tracking card. If provided for player tracking purposes, the card reader 58 may be used to read data from, and/or write data to, player tracking cards that are capable of storing data representing the identity of a player, the identity of a casino, the player's gaming habits, etc.
The gaming unit 20 may include one or more audio speakers 62, a coin payout tray 64, an input control panel 66 and a display unit 70 for displaying display data relating to the game or games provided by the gaming unit 20. The audio speakers 62 may generate audio representing sounds such as the noise of spinning slot machine reels, a dealer's voice, music, announcements or any other audio related to a casino game. The input control panel 66 may be provided with a plurality of pushbuttons or touch-sensitive areas that may be pressed by a player to select games, make wagers, make gaming decisions, etc. The display unit 70 may be two dimensional display unit such as a color video display unit displaying images. Additionally, the display unit 70 may include a three dimensional display unit such as a holographic display, a stereoscopic display, a three dimensional display volume, etc.
If the gaming unit 20 provides a slots game having a plurality of reels and a plurality of paylines which define winning combinations of reel symbols, the control panel 66 may be provided with a plurality of selection buttons 76, each of which allows the player to select a different number of paylines prior to spinning the reels. For example, five buttons 76 may be provided, each of which may allow a player to select one, three, five, seven or nine paylines.
If the gaming unit 20 provides a slots game having a plurality of reels, the control panel 66 may be provided with a plurality of selection buttons 78 each of which allows a player to specify a wager amount for each payline selected. For example, if the smallest wager accepted by the gaming unit 20 is a quarter ($0.25), the gaming unit 20 may be provided with five selection buttons 78, each of which may allow a player to select one, two, three, four or five quarters to wager for each payline selected. In that case, if a player were to activate the “5” button 76 (meaning that five paylines were to be played on the next spin of the reels) and then activate the “3” button 78 (meaning that three coins per payline were to be wagered), the total wager would be $3.75 (assuming the minimum bet was $0.25).
The control panel 66 may include a “Max Bet” button 80 to allow a player to make the maximum wager allowable for a game. In the above example, where up to nine paylines were provided and up to five quarters could be wagered for each payline selected, the maximum wager would be 45 quarters, or $11.25. The control panel 66 may include a spin button 82 to allow the player to initiate spinning of the reels of a slots game after a wager has been made.
In
Although one possible control panel 66 is described above, it should be understood that different buttons could be utilized in the control panel 66, and that the particular buttons used may depend on the game or games that could be played on the gaming unit 20. Although the control panel 66 is shown to be separate from the display unit 70, it should be understood that the control panel 66 could be generated by the display unit 70. In that case, each of the buttons of the control panel 66 could be a colored area generated by the display unit 70, and some type of mechanism may be associated with the display unit 70 to detect when each of the buttons was touched, such as a touch-sensitive screen.
Although the program memory 102 is shown in
As shown in
The graphics processor 107 may be a processor, such as a conventional graphics processor, configured to convert graphical primitives into display information that can be shown on the display unit 120. Graphical primitives may include, for example, points, lines, polygons, etc. The graphics processor 107 maybe a KYRO II® or KYRO III® graphics and video accelerator commercially available from STMICROELECTRONICS®, Inc, a GEFORCE2® graphics processing unit commercially available from NVIDIA® Corporation, a RADEON® 7000 graphics processor commercially available from ATI Technologies Inc., etc.
Although the microprocessor 104 and the graphics processor 107 are shown as separate devices in
In a system employing 3D graphics, a scene to be displayed may be composed in a 3D model space (also referred to herein as “3D graphics space”). The scene may include a plurality of 3D objects. These 3D objects may be composed of a plurality of geometric primitives that help define the object's surface. Such primitives may include, for instance, points, lines, polygons, etc. As an example, the OpenGL graphics application programming interface, promulgated by OpenGL Architecture Review Board, provides various types of primitives that may be employed such as points, lines, line strips, line loops, polygons, quadrilaterals, polygon strips, triangles, triangle strips, and triangle fans.
A 3D cube may comprise, for example, of six quadrilateral primitives, corresponding to the six surfaces of the cube. A polygon that is extensively used in typical 3D graphics systems is the triangle. Thus, as another example, the 3D cube may comprise 12 triangle primitives, where each of the six surfaces of the cube comprises two triangles. By using an appropriate number of primitives, such as triangles, objects may be made to appear round, spherical, tubular, etc. Complex objects, such as a human body, may be composed of numerous primitives.
Primitives in the 3D model space may be indicated by the coordinates of their vertices. For example, a point may be indicated by its 3D coordinates. Also, a line may be indicated by two sets of 3D coordinates corresponding to its two endpoints. Similarly, a triangle may be indicated by three sets of 3D coordinates corresponding to its three comers. Primitives in the 3D model space may also be indicated by a primitive type (e.g., point, line, triangle, quadrilateral, etc.). The 3D model space may be described using a rectangular coordinate system or another coordinate system such as a spherical coordinate system or a cylindrical coordinate system.
Attributes may be assigned to objects or primitives in the 3D model space. Attributes may include color, pattern, reflectance, transparency, translucency, animation, texture, etc. Textures may include smoothness, surface irregularities such as bumps, craters, etc., and may also include the mapping of text, an image, bitmap, animation, video, etc., onto the object or primitive.
Model space 100 can be viewed from various viewpoints such as viewpoints 122, 124, and 126. To display a depiction of model space 100 on a display unit, a view point maybe chosen, and a depiction of the model space 100 as viewed from that viewpoint may be generated.
A typical technique for generating a depiction of the model space 100 from a particular viewpoint is to “project” the model space 100 onto a virtual display. For example, if the viewpoint is to be viewed on a 2D display such as a monitor, the model space 100 (or a portion thereof) may be “projected” onto a virtual 2D display.
The Transform and Lighting processing step generally may produce data including information relating to 2D primitives. This data relating to a 2D primitive may include the 2D coordinates of its vertices, the primitive's color, luminance, etc.
The data may also include depth information of the primitive in terms of the 3D model space and the viewpoint. This depth information can help determine whether a particular primitive, or part of the primitive, is blocked from view by another primitive. Referring again to
The data relating to a 2D primitive may also include transparency information, such as a value that indicates the degree of transparency of the primitive. In some typical 3D graphic systems, a primitive's “alpha value” indicates the degree of the primitive's transparency. Frequently, the alpha value may be between the values 0 and 1, inclusive, where, for example, a 0 indicates the primitive is completely transparent and a 1 indicates the primitive is completely opaque. In other 3D graphics systems, the transparency information, may merely include a flag that indicates whether or not the primitive is transparent, and the degree of transparency is the same for all transparent primitives. For example, the degree of transparency may be fixed at 50% for transparent objects. In 3D graphics systems that employ “alpha values,” a technique often referred to as “alpha blending” may be used to generate a display in which an object appears to be transparent when viewed on the display unit.
Referring now to
Details of 3D graphical techniques that may be used are described in “OpenGL Reference Manual: The Official Reference Document to Open GL, Version 1.2,” 3rd edition, Dave Shreiner (editor), OpenGL Architecture Review Board, Addison-Wesley Publishing, Co., 1999, ISBN: 0201657651 and “OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.2,” 3rd edition, Mason Woo et al. (editors), OpenGL Architecture Review Board, Addison-Wesley Publishing Co., 1999, ISBN: 0201604582, which are hereby incorporated by reference in their entirety for all purposes.
Additional detail pertinent to 3D graphics is available in commonly assigned U.S. patent application Ser. No. 09/927,901 (Client Reference No. P-557), entitled “Virtual Cameras and 3-D Gaming Environments in a Gaming Machine,” filed Aug. 9, 2001, which is hereby incorporated by reference in its entirety for all purposes.
One manner in which one or more of the gaming units 20 (and one or more of the gaming units 30) may operate is described below in connection with a number of flowcharts which represent a number of portions or routines of one or more computer programs, which may be stored in one or more of the memories of the controller 100. The computer programs) or portions thereof may be stored remotely, outside of the gaming unit 20, and may control the operation of the gaming unit 20 from a remote location. Such remote control may be facilitated with the use of a wireless connection, or by an Internet interface that connects the gaming unit 20 with a remote computer (such as one of the network computers 22, 32) having a memory in which the computer program portions are stored. The computer program portions may be written in any high level language such as C, C+, C++ or the like or any low-level, assembly or machine language. By storing the computer program portions therein, various portions of the memories 102, 106 are physically and/or structurally configured in accordance with computer program instructions.
During performance of the attraction sequence, if a potential player makes any input to the gaming unit 20 as determined at block 204, the attraction sequence may be terminated and a game-selection display maybe generated on the display unit 70 at block 206 to allow the player to select a game available on the gaming unit 20. The gaming unit 20 may detect an input at block 204 in various ways. For example, the gaming unit 20 could detect if the player presses any button on the gaming unit 20; the gaming unit 20 could determine if the player deposited one or more coins into the gaming unit 20; the gaming unit 20 could determine if player deposited paper currency into the gaming unit; etc.
The game-selection display generated at block 206 may include, for example, a list of video games that may be played on the gaming unit 20 and/or a visual message to prompt the player to deposit value into the gaming unit 20. While the game-selection display is generated, the gaming unit 20 may wait for the player to make a game selection. Upon selection of one of the games by the player as determined at block 208, the controller 100 may cause one of a number of game routines to be performed to allow the selected game to be played. For example, the game routines could include a video poker routine 210, a video blackjack routine 220, a slots routine 230, a video keno routine 240, and a video bingo routine 250. At block 208, if no game selection is made within a given period of time, the operation may branch back to block 202.
After one of the routines 210, 220, 230, 240, 250 has been performed to allow the player to play one of the games, block 260 may be utilized to determine whether the player wishes to terminate play on the gaming unit 20 or to select another game. If the player wishes to stop playing the gaming unit 20, which wish may be expressed, for example, by selecting a “Cash Out” button, the controller 100 may dispense value to the player at block 262 based on the outcome of the game(s) played by the player. The operation may then return to block 202. If the player did not wish to quit as determined at block 260, the routine may return to block 208 where the game-selection display may again be generated to allow the player to select another game.
It should be noted that although five gaming routines are shown in
During performance of the attraction sequence, if a potential player makes any input to the gaming unit 20 as determined at block 304, the attraction sequence may be terminated and a game display may be generated on the display unit 70 at block 306. The game display generated at block 306 may include, for example, an image of the casino game that may be played on the gaming unit 20 and/or a visual message to prompt the player to deposit value into the gaming unit 20. At block 308, the gaming unit 20 may determine if the player requested information concerning the game, in which case the requested information may be displayed at block 310. Block 312 may be used to determine if the player requested initiation of a game, in which case a game routine 320 maybe performed. The game routine 320 could be any one of the game routines disclosed herein, such as one of the five game routines 210, 220, 230, 240, 250, or another game routine.
After the routine 320 has been performed to allow the player to play the game, block 322 may be utilized to determine whether the player wishes to terminate play on the gaming unit 20. If the player wishes to stop playing the gaming unit 20, which wish may be expressed, for example, by selecting a “Cash Out” button, the controller 100 may dispense value to the player at block 324 based on the outcome of the game(s) played by the player. The operation may then return to block 302. If the player did not wish to quit as determined at block 322, the operation may return to block 308.
At block 382, the routine may determine if the player desires a new hand to be dealt, which may be determined by detecting if the “Deal/Draw” button 364 was activated after a wager was made. In that case, at block 384 a video poker hand may be “dealt” by causing the display unit 70 to generate the playing card images 352. After the hand is dealt, at block 386 the routine may determine if any of the “Hold” buttons 354 have been activated by the player, in which case data regarding which of the playing card images 352 are to be “held” may be stored in the controller 100 at block 388. If the “Deal/Draw” button 364 is activated again as determined at block 390, each of the playing card images 352 that was not “held” may be caused to disappear from the video display 350 and to be replaced by a new, randomly selected, playing card image 352 at block 392.
At block 394, the routine may determine whether the poker hand represented by the playing card images 352 currently displayed is a winner. That determination may be made by comparing data representing the currently displayed poker hand with data representing all possible winning hands, which may be stored in the memory of the controller 100. If there is a winning hand, a payout value corresponding to the winning hand may be determined at block 396. At block 398, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the hand was a winner, the payout value determined at block 396. The cumulative value or number of credits may also be displayed in the display area 366 (
Although the video poker routine 210 is described above in connection with a single poker hand of five cards, the routine 210 may be modified to allow other versions of poker to be played. For example, seven card poker may be played, or stud poker may be played. Alternatively, multiple poker hands may be simultaneously played. In that case, the game may begin by dealing a single poker hand, and the player may be allowed to hold certain cards. After deciding which cards to hold, the held cards may be duplicated in a plurality of different poker hands, with the remaining cards for each of those poker hands being randomly determined.
To allow the player to control the play of the video blackjack game, a plurality of player-selectable buttons may be displayed. The buttons may include a “Cash Out” button 406, a “See Pays” button 408, a “Stay” button 410, a “Hit” button 412, a “Bet One Credit” button 414, and a “Bet Max Credits” button 416. The display 400 may also include an area 418 in which the number of remaining credits or value is displayed. If the display unit 70 is provided with a touch-sensitive screen, the buttons 406, 408, 410, 412, 414, 416 may form part of the video display 400. Alternatively, one or more of those buttons may be provided as part of a control panel that is provided separately from the display unit 70.
At block 426, the player may be allowed to be “hit,” in which case at block 428 another card will be dealt to the player's hand by making another playing card image 404 appear in the display 400. If the player is hit, block 430 may determine if the player has “bust,” or exceeded 21. If the player has not bust, blocks 426 and 428 may be performed again to allow the player to be hit again.
If the player decides not to hit, at block 432 the routine may determine whether the dealer should be hit. Whether the dealer hits may be determined in accordance with predetermined rules, such as the dealer always hit if the dealer's hand totals 15 or less. If the dealer hits, at block 434 the dealer's hand may be dealt another card by making another playing card image 402 appear in the display 400. At block 436 the routine may determine whether the dealer has bust. If the dealer has not bust, blocks 432, 434 may be performed again to allow the dealer to be hit again.
If the dealer does not hit, at block 436 the outcome of the blackjack game and a corresponding payout may be determined based on, for example, whether the player or the dealer has the higher hand that does not exceed 21. If the player has a winning hand, a payout value corresponding to the winning hand may be determined at block 440. At block 442, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the player won, the payout value determined at block 440. The cumulative value or number of credits may also be displayed in the display area 418 (
To allow the player to control the play of the slots game, a plurality of player-selectable buttons may be displayed. The buttons may include a “Cash Out” button 456, a “See Pays” button 458, a plurality of payline-selection buttons 460 each of which allows the player to select a different number of paylines prior to “spinning” the reels, a plurality of bet-selection buttons 462 each of which allows a player to specify a wager amount for each payline selected, a “Spin” button 464, and a “Max Bet” button 466 to allow a player to make the maximum wager allowable.
If the “Spin” button 464 has been activated by the player as determined at block 486, at block 488 the routine may cause the slot machine reel images 452 to begin “spinning” so as to simulate the appearance of a plurality of spinning mechanical slot machine reels. At block 490, the routine may determine the positions at which the slot machine reel images will stop, or the particular symbol images 454 that will be displayed when the reel images 452 stop spinning. At block 492, the routine may stop the reel images 452 from spinning by displaying stationary reel images 452 and images of three symbols 454 for each stopped reel image 452. The virtual reels may be stopped from left to right, from the perspective of the player, or in any other manner or sequence. After the routine stops the reel images 452 are block 492, paylines associated with winning symbols combinations may be generated and displayed to the user at block 493.
The payline generation routine 493, which is described in further detail in conjunction with
The routine 230 may provide for the possibility of a bonus game or round if certain conditions are met, such as the display in the stopped reel images 452 of a particular symbol 454. If there is such a bonus condition as determined at block 494, the routine may proceed to block 496 where a bonus round may be played. The bonus round may be a different game than slots, and many other types of bonus games could be provided. If the player wins the bonus round, or receives additional credits or points in the bonus round, a bonus value may be determined at block 498. A payout value corresponding to outcome of the slots game and/or the bonus round may be determined at block 500. At block 502, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the slot game and/or bonus round was a winner, the payout value determined at block 500.
Although the above routine has been described as a virtual slot machine routine in which slot machine reels are represented as images on the display unit 70, actual slot machine reels that are capable of being spun maybe utilized instead.
To allow the player to control the play of the keno game, a plurality of player-selectable buttons may be displayed. The buttons may include a “Cash Out” button 526, a “See Pays” button 528, a “Bet One Credit” button 530, a “Bet Max Credits” button 532, a “Select Ticket” button 534, a “Select Number” button 536, and a “Play” button 538. The display 520 may also include an area 540 in which the number of remaining credits or value is displayed. If the display unit 70 is provided with a touch-sensitive screen, the buttons may form part of the video display 520. Alternatively, one or more of those buttons may be provided as part of a control panel that is provided separately from the display unit 70.
Referring to
If play of the keno game is to begin as determined at block 568, at block 570 a game number within a range set by the casino may be randomly selected either by the controller 100 or a central computer operatively connected to the controller, such as one of the network computers 22, 32. At block 572, the randomly selected game number may be displayed on the display unit 70 and the display units 70 of other gaming units 20 (if any) which are involved in the same keno game. At block 574, the controller 100 (or the central computer noted above) may increment a count which keeps track of how many game numbers have been selected at block 570. At block 576, the controller 100 (or one of the network computers 22, 32) may determine whether a maximum number of game numbers within the range have been randomly selected. If not, another game number may be randomly selected at block 570. If the maximum number of game numbers has been selected, at block 578 the controller 100 (or a central computer) may determine whether there are a sufficient number of matches between the game numbers selected by the player and the game numbers selected at block 570 to cause the player to win. The number of matches may depend on how many numbers the player selected and the particular keno rules being used.
If there are a sufficient number of matches, a payout may be determined at block 580 to compensate the player for winning the game. The payout may depend on the number of matches between the game numbers selected by the player and the game numbers randomly selected at block 570. At block 582, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the keno game was won, the payout value determined at block 580. The cumulative value or number of credits may also be displayed in the display area 540 (
To allow the player to control the play of the bingo game, a plurality of player-selectable buttons may be displayed. The buttons may include a “Cash Out” button 604, a “See Pays” button 606, a “Bet One Credit” button 608, a “Bet Max Credits” button 610, a “Select Card” button 612, and a “Play” button 614. The display 600 may also include an area 616 in which the number of remaining credits or value is displayed. If the display unit 70 is provided with a touch-sensitive screen, the buttons may form part of the video display 600. Alternatively, one or more of those buttons may be provided as part of a control panel that is provided separately from the display unit 70.
After the player has made a wager, at block 628 the player may select a bingo card, which may be generated randomly. The player may select more than one bingo card, and there may be a maximum number of bingo cards that a player may select. After play is to commence as determined at block 632, at block 634 a bingo number may be randomly generated by the controller 100 or a central computer such as one of the network computers 22, 32. At block 636, the bingo number may be displayed on the display unit 70 and the display units 70 of any other gaming units 20 involved in the bingo game.
At block 638, the controller 100 (or a central computer) may determine whether any player has won the bingo game. If no player has won, another bingo number may be randomly selected at block 634. If any player has bingo as determined at block 638, the routine may determine at block 640 whether the player playing that gaming unit 20 was the winner. If so, at block 642 a payout for the player may be determined. The payout may depend on the number of random numbers that were drawn before there was a winner, the total number of winners (if there was more than one player), and the amount of money that was wagered on the game. At block 644, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the bingo game was won, the payout value determined at block 642. The cumulative value or number of credits may also be displayed in the display area 616 (
Examples of techniques for generating paylines will now be described. For ease of explanation, these examples are described in the context of a reel-type slot machine game. It will be appreciated by one of ordinary skill in the art, however, that paylines can be used in other games as well. For example, techniques similar to those described below can be used to generate paylines in games, such as checkers and Othello, to indicate how a player won the game.
The image or images of slot reels need not be mapped onto the face 662 of an object 660. For example, the images of slot reels could be mapped onto a plane. Additionally, although the example of
Turning now to
Microprocessor 104 may generate 3D primitives corresponding to the virtual slot reels and the payline. In some embodiments, these 3D primitives are provided to a graphics processor 107, along with other information such as lighting information. In these embodiments, the graphics processor 107 may perform “Transform and Lighting” processing on the 3D primitives, and may generate a signal for causing display unit 70 to display an image of the virtual slot reels and the payline. In other embodiments, microprocessor 104 may perform “Transform and Lighting” processing on the 3D primitives to generate 2D primitives. In these embodiments, these 2D primitives may be provided to graphics processor 107, which may generate a signal for causing display unit 70 to display an image of the virtual slot reels and the payline.
As described above with reference to
At block 700, locations of reference points in 3D model space of the payline may be determined. For example, in
At block 702, payline properties may be defined. The payline properties may include one or more (or none) of, but are not limited to, payline width, payline curve radius, the number of polygons to be used to define curves, etc. Alternatively, or additionally, other payline properties may include payline thickness, distance from the reel face, etc. The payline properties may be defined ahead of time and stored in, for example, memory 102 or memory 106 (
At block 704, a payline may be generated in 3D model space. One embodiment of a method for generating the payline in 3D model space will be described subsequently with reference to
At block 708, the payline may be displayed. If a graphics processor such as the graphics processor 107B of
At block 724, a current slope may be generated. In
At block 728, it may be determined whether there is a next reference point. For example, in
At block 730, a next slope may be calculated. In
At block 732, it may be determined whether the current slope is the same as the prior slope. If yes, control may pass to block 736. If no, control may pass to block 734. If the current slope is different than the prior slope, this may indicate that a curve was previously generated. In
At block 736, it may be determined whether the current slope is the same as the next slope. If yes, control may pass to block 738. At block 738, two triangles may be generated from the current reference point to the next reference point to form a segment of the payline between the two reference points. In particular, the two triangles may form a segment having the payline width (which may be defined at block 702,
If at block 736, it was determined that the current slope is not the same as the 25 next slope, control may pass to block 740.
At block 740, a curve in the payline may be formed. For instance, the curve maybe formed using a plurality of triangles. In
At block 742, two triangles may be generated from the current reference point to the beginning of the curve generated at block 740, to form a segment of the payline between the two reference points. In particular, the two triangles may form a segment having the payline width (which may be defined at block 702,
At block 744, the current reference point may be set to the next reference point. In
Although in the embodiment described above, the generated payline is a flat object in 3D model space, other types of paylines may be used. For example, the payline may have a thickness. Similarly, the payline may be cylindrical, have a triangular cross section, a hexagonal cross section, etc. Also, if slopes between different segments in the payline are different, a curve need not be generated (as in block 740). Rather, the payline may include “sharp” vertices.
Additionally, although in the embodiment described above, the generated payline is located in one plane in 3D model space, the payline could have a different structure. For example, one segment of the payline may lie in a first plane, and a second segment may lie in a second plane different than the first plane. In these embodiments, a location in the payline in which is to be generated may be determined, for example, by examining the direction of lines between reference points, gradients between reference points, etc. Also, the payline, or a portion thereof, may be curved in 3D model space, with a segment not lying in one plane. As a specific example, the payline, or a portion thereof, may have a helical structure.
Also, the payline need not reside “in front” of the game display. Referring to
At block 790, a number of vertices on the “outside” of the curve may be determined. In one embodiment, the number of vertices can be determined based on a number of triangles that are to be included in the curve. The number K of triangles may be previously defined, for example, at block 702 of
In other embodiments, the number of vertices may be previously defined, for example, at block 702 of
At block 792, positions of the vertices on the outside of the curve may be determined. In one embodiment, a position of one vertex is determined as being a distance R from the center point on a line that is perpendicular to a line between the reference point about which the curve is being generated and the previous reference point. For example, in
In this embodiment, a position of another vertex is similarly determined as being a distance R from the center point on a line that is perpendicular to a line between the reference point about which the curve is being generated and the next reference point. For example, in
In this embodiment, positions of the remaining vertices can be determined as being a distance R from the center point, and also being equidistant from other vertices. For example, in
At block 794, a number of vertices on the “inside” of the curve may be determined. The number of vertices on the inside of the curve may be determined in a manner similar to that described with reference to block 790. For example, in one embodiment, the number of vertices can be determined based on a number of triangles that are to be included in the curve. The number K of triangles may be previously defined, for example, at block 702 of
At block 796, positions of the vertices on the “inside” of the curve may be determined. The positions of the vertices on the inside of the curve may be determined in a manner similar to that described with reference to block 792. For example, in one embodiment, a position of one vertex is determined as being a distance R-W from the center point on a line that is perpendicular to a line between the reference point about which the curve is being generated and the previous reference point. For example, in
In this embodiment, a position of another vertex is similarly determined as being a distance R-W from the center point on a line that is perpendicular to a line between the reference point about which the curve is being generated and the next reference point. For example, in
In this embodiment, positions of the remaining vertices can be determined as being a distance R-W from the center point, and also being equidistant from other vertices. For example, in
At block 798, triangles of which the curve is to be comprised are determined based on the vertices determined at blocks 792 and 796. For example, in
In other embodiments, the payline may be generated, for example, by retrieving polygon information (e.g., coordinates of vertices, polygon types, etc.) from a memory or look-up-table. In these embodiments, reference points of the payline may not be needed. Also, the methods described with reference to
During a game, the game display 804 may include the image (or images) of a game being played, such as reels of a slot machine, a hand of cards, etc. The transparent object 806 may be rendered during the play of a game. For example, if a “tilt” condition occurred, a “tilt window” 806 could be rendered. Because the object 806 is transparent, aspects of the game display 804 may be visible despite being “behind” the object 806.
It is to be understood that the game display 804 need not be a flat 2D object on a plane 802. Rather, the game display could be a 3D object. For example, the game display could be a 3D object such as the virtual slot machine game illustrated in
At block 824, graphics attributes are associated with the object, the graphics attributes including transparency information. The transparency information may include information such as one or more alpha values, one or more flags indicating the object is transparent, etc. Other attributes may include, for example, color, texture, texture mapping, etc. Additionally, using graphics attributes, the object can be made to appear to oscillate, move, rotate, pivot, or slide on the screen. Similarly, the object may appear to be on fire, be drawn by a laser, or the object's colors may appear to change.
At block 826, the transparent object may be displayed “over” the game display. If a graphics processor such as the graphics processor 107B of
In some embodiments, the graphics processor 107 may combine the color information of the object with the color information of the image “behind” the object such that the object appears transparent. Any number of techniques may be used to combine the color information of the object with that of the underlying image, including techniques known to those of ordinary skill in the art. Such known techniques include “alpha blending,” “screen-door” techniques, filtered transparency techniques, etc.
As described with reference to
At block 854, the bitmap may be provided to the graphics processor 107. The bitmap may be provided to graphics processor 107 via its external overlay input (if included), a shared input or input/output interface, etc. At block 856, the graphics processor is instructed to display the bitmap as a transparent overlay. This may include indicating the location at which the bitmap is to be displayed on a screen, a degree of transparency, etc.
The above examples describe a single transparent object. It will be apparent to those of ordinary skill in the art, however, that there may be multiple transparent objects as well (e.g., 2, 3, 4, etc.). In these embodiments, two or more of the transparent objects may overlap when viewed from the viewpoint. In these embodiments, the color information from the game display and multiple transparent objects may be combined.
In the above description, various methods have been described with reference to flow diagrams. It will be apparent to one of ordinary skill in the art that each of these methods may be implemented, in whole or in part, by software, hardware, and/or firmware. If implemented, in whole or in part, by software, the software may be stored on a tangible medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a read-only memory (ROM), etc. Further, although the examples described above were described with reference to various flow diagrams, one of ordinary skill in the art will appreciate that many other methods may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some or all of the blocks may be changed, eliminated, or combined.
This application is related to the following commonly-owned, co-pending patent applications: U.S. patent application Ser. No. 10/272,854 entitled “Displaying Paylines on a Gaming Machine,” filed on Oct. 17, 2002; and U.S. patent application Ser. No. 10/273,378 entitled “Payline Curves on a Gaming Machine,” filed on Oct. 17, 2002. These applications are hereby incorporated by reference, in their entirety, for all purposes. This application is a continuation-in-part of U.S. patent application Ser. No. 11/112,076, entitled “VIRTUAL CAMERAS AND 3-D GAMING ENVIRONMENTS IN A GAMING MACHINE” and filed Apr. 22, 2005, which is a continuation of U.S. patent application Ser. No. 09/927,901, entitled “VIRTUAL CAMERAS AND 3-D GAMING ENVIRONMENTS IN A GAMING MACHINE” and filed Aug. 9, 2001 (now issued as U.S. Pat. No. 6,887,157. This application is a continuation of U.S. patent application Ser. No. 10/272,788, entitled, “Transparent Objects on a Gaming Machine,” by Schlottmann, et al., and filed Oct. 17, 2002, which is incorporated herein in its entirety and for all purposes.
Number | Date | Country | |
---|---|---|---|
Parent | 09927901 | Aug 2001 | US |
Child | 11112076 | US | |
Parent | 10272788 | Oct 2002 | US |
Child | 09927901 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11112076 | Apr 2005 | US |
Child | 12024931 | US |