Adaptive display system and method for a gaming machine

The present invention provides a system and method for a configurable gaming system. Certain embodiments of the system include a local storage for storing a markup language file and token resolution information and a markup language viewer for processing the markup language file. The markup language viewer processes contents of the markup language file and resolves tokens in the markup language file using the token resolution information from the local storage to generate a resolved markup language file for display at a gaming system. The markup language file may include display content, markup language tags, and tokens. The markup language file may include read-only information and variable information to be resolved by the markup viewer for display. The markup language file may be a binary markup language file including tokens or other indicia for resolution.

BACKGROUND OF THE INVENTION

The present invention generally relates to a gaming system. In particular, the present invention relates to an adaptive display for a gaming system.

Gaming machines, such as slot machines, fruit machines, or poker machines, have in recent years become one of the more popular, exciting, and sophisticated wagering activities available at casinos and other gambling locations. At the same time, gaming machines have also become a source of greater revenue for gaming establishments. Thus, competition between manufacturers of gaming machines has intensified as competitors vie for business from gaming establishments.

A gaming machine providing entertaining and enticing features for players would be highly desirable to attract both new and returning players to a gaming establishment. Additionally, a gaming machine that allows customization and dynamic modification by an operator would be highly desirable to provide new features to customers.

Current gaming machines are difficult to reconfigure and offer the same game to multiple users at multiple gaming establishments. Changing a gaming machine to a different game or format involves time-consuming and difficult procedures by an operator.

Additionally, configuration of a gaming machine by an operator raises concerns regarding security of data and integrity of a game on the gaming machine. That is, gaming establishments and legal authorities place high priority on the integrity of a game, such as a slot or poker game. Thus, there is a need for a configurable system that does not disturb sensitive game or prize data.

A markup language, particularly Hypertext Markup Language or HTML, is used to provide display content in the form of web pages for web browsers on personal computers. Browsers allow web pages to be retrieved from a remote web server and viewed on a local computer. In current systems, apart from temporary storage for display, the information from the web page does not remain at the browser. A request is sent from the browser to the web server. A page is returned by the server. Information may be provided through fields in the page and transmitted back to the web server. The web server renders the web page and sends the page to the web browser for display. If the displayed page is to be changed, an application must be run to change the page, and the browser must retrieve an entire new page from the server. A more flexible and efficient markup language document system would be highly desirable.

Thus, there is a need for an adaptive display system and method for a gaming machine that allows one or more gaming machines dynamically alter operation and display.

BRIEF SUMMARY OF THE INVENTION

The present invention provides a system and method for a configurable gaming system. Certain embodiments of the system include a local storage for storing a markup language file and token resolution information and a markup language viewer for processing the markup language file. The markup language viewer processes contents of the markup language file and resolves tokens in the markup language file using the token resolution information from the local storage to generate a resolved markup language file for display at a gaming system.

The markup language file may include display content, markup language tags, and tokens. The markup language file may include read-only information and variable information to be resolved by the markup viewer for display. In an embodiment, the markup language file is updated from an external storage. The markup language file may be a binary markup language file including tokens or other indicia for resolution. In an embodiment, the markup language file associates items for display with identifiers, where the identifiers correspond to instructions for the markup language viewer. In an embodiment, the system further includes an external event controlling selection of a markup language file for processing by the markup language viewer.

Certain embodiments of a method for dynamic configuration of a gaming display include processing a markup language file to identify tokens to be resolved, resolving the tokens to generate a resolved markup language file, formatting the resolved markup language file for display, and displaying the resolved markup language file at a gaming system. The method may also include retrieving the markup language file from a local storage. Additionally, the method may include adjusting token values in the resolved markup language file based on a change in at least one of game, prize, location, player, and operator.

In an embodiment, the resolving step includes resolving tokens in the markup language file using data from the local storage. The resolving step may include resolving tokens in the markup language file based on at least one of a player, an operator, a game, and a location. In an embodiment, the displaying step may include displaying the resolved markup language file at the gaming system using a viewer. An external process may affect selection of the markup language file for processing and display.

Certain embodiments of a dynamically configurable gaming system include a gaming machine retrieving a markup language document, and a local storage device providing a copy of the markup language document to the gaming machine. The gaming machine resolves tokens in the markup language document and formats the markup language document for display. The local storage device provides the gaming machine with information to resolve tokens in the markup language document for display.

The system may also include a server providing information relating to the markup language to the gaming machine. The gaming machine may further include a markup language viewer for resolving the tokens in the markup language document and formatting the markup language document for display. The system may also include an external control controlling selection of a markup language file for processing by the gaming machine.

In an embodiment, the markup language document is adjusted based on a change in at least one of game, prize, location, player, and operator. The markup language document may include display content and indicia, for example. The markup language document may include a binary markup language document.

Certain embodiments of a system for connecting to a plurality of electronic gaming devices for acquiring, storing and displaying data in a regulated environment include an electronic display associated with each device and a host computer in communication with the processors to receive operation data from the devices. The device includes a processor to control the display. Each processor includes a first program of instructions in a markup language stored in a data structure. The content of the first program includes regulatory approved read only code module configured to (1) control the display to display a predetermined display template defining at least one volatile data field and (2) issue data commands for data tokens. The host is configured to (1) based upon the data received from the devices derive the data tokens and (2) in response to receipt of a command from the processor, communicate the derived token to the processor to control the display to display the token data in the data field.

In an embodiment, the markup language includes a binary markup language. The markup language may associate the instructions with areas of the display template. The display may include a user interface allowing a user to select one or more areas of the display template to execute instructions in the markup language code. In an embodiment, the host computer derives the data tokens using information from a data storage device.

DETAILED DESCRIPTION OF THE INVENTION

Referring toFIG. 1, a casino network system11includes a plurality of gaming machines13,15, and17interconnected across a network19to a server21.

Gaming machines13,15,17may utilize applications or web services of server21to provide visual displays. Gaming machines13,15,17may communicate with server21via network19using standard protocols.

Each gaming machine13,15,17includes a smart communications interface (SCI)101,103,105, respectively, which communicates with a respective gaming controller107,109,111using a particular protocol, for example, a Slot Accounting System (SAS) protocol. SCIs101,103,105communicate directly onto network19.

Server21may be designed to run on a network platform and to service requests from gaming machines13,15,17. Server21may be accessed from network19, through standard networking protocols, such as transmission control protocol/internet protocol (TCP/IP), user datagram protocol (UDP), telnet, file transfer protocol (FTP), hypertext transport protocol (HTTP), internet control message protocol (ICMP), internet group management protocol (IGMP), etc. Documents, such as hypertext markup language (HTML), extensible markup language (XML), rich text format (RTF), etc., may be transmitted to and/or from server21.

Server21has a multi-tiered architecture that includes a number of software layers including one or more applications, an application program interface (API) and an operating system. The applications provide a number of different services, including accounting services, player tracking services, progressive game services, browsing services, cashless play services, etc. The applications may be written in various languages including, for example, C#, Java, or SQL. The operating system for example, is a Windows® brand operating system which provides conventional functions.

Server21may push out, i.e., publish, information to various subscribers including gaming machines13,15,17. For example, gaming machine13may subscribe to a “bonus time” alert. Server21notifies gaming machines that have subscribed that a bonus period has started and that jackpots are to be paid out at twice the pay table, for example. This bonusing service for particular gaming machines may be subscribed to, for example, using casino workstation31(not shown). Workstation31may communicate a request to server21to publish to specifically identified gaming machines that a bonus period is to begin. The request may also provide additional information as to the amount of the bonus, the type of bonus, a bonus multiplier, etc. The request may also ask server21to publish the end of the bonus period as well. The server21may provide such a bonus service in real time with the bonus event, or merely provide a scheduled command for future bonus events.

In another example, applications server21may publish to certain gaming machines that a tournament has ended. Using the method taught in U.S. Pat. No. 6,039,648, assigned to Casino Data Systems and incorporated herein by reference, server21may communicate the end of a tournament play, so that appropriate pay tables and displays at the gaming machines may be activated.

Server21may include a plurality of functions that may be called by other systems or devices connected to network19. Such functions may include conventional method or function calls as well as remote calls, e.g., proxy and simple object access protocol (SOAP)/XML invocations. For example, server21may be called by gaming machines13,15,17.

Server21provides data to or retrieves data from a database45. For example, data is stored as to gaming activity, player account information, advertisements, ticketing, etc. For example, meter data is received by server21. Server21stores the meter data in a database. Also, data is retrieved including player information, accounting data, application programs, etc.

For purposes of simplicity, only three gaming machines13,15,17are shown inFIG. 1. In actuality, a casino may contain hundreds, or even thousands, of gaming machines. In addition to gaming machines, a casino may include various non-gaming machine locations, such as craps and blackjack. Such locations include an SCI, similar to SCI101,103, or105, which is connected to network19. In an embodiment, gaming and non-gaming machine locations may be spread throughout several casinos located remotely from one another.

Server21provides services for each gaming machine. Server21may provide different services for different gaming machines. For example, gaming machines may be included in a progressive game and thus use a progressive service from server21. Typically, all gaming machines use an accounting service from server21which accounts for coins and bills inserted into the gaming machine as well as an accounting of coins cashed out of the gaming machine to a player.

Other services, such as player tracking and cashless play services, may be provided by server21. A typical player account may be stored in a database for tracking of the player. The player accounts are updated by server21as player information is sent to server21from gaming machines13,15,17, workstation31or an external system33. For example, a restaurant acting as an external system33may request server21to add loyalty points to the player's account in the database based on the amount of money spent by the player at the restaurant. As another example, a player at gaming machine13may request server21to convert 1000 points of the points balance in the player's account to credits on the credit meter of gaming machine13. As another example, server21may provide game programs or other parameters to a particular gaming machine.

More specifically, gaming machine13sends a service request to server21. SCI101packages the request in a proper protocol and places the request onto network19. Various switches and/or routers may be included in network19in order to route the service request to server21. The request may include (1) data, (2) a message request, and (3) the network address of server21. The message request seeks a particular service to be performed by execution of an application by server21. The application is run in connection with the data, if any, in the request. The application may then generate a message back onto network19addressed to machine13. SCI101receives the message and responds accordingly, as for example, adjusting the credit meter, generating a display of information to the player, etc.

Alternatively, SCI101,103, or105may be connected to a hub for wireless communication of the service request to the network19. The service request is received by the hub, repackaged and then broadcast to a receiving device that is connected to the network. The receiving device packages the service request and places the service request onto the network.

Referring toFIG. 2, another embodiment of a gaming system11includes a plurality of gaming machines13,15and17interconnected over a network19to a central authority21. Where a large number of gaming machines are connected to central authority21, network19may include subnetworks using RS485 serial communications standard, for example, and data collection units (not shown). Network19also may be configured as an Ethernet network employing TCP/IP protocol, or may comprise a digital subscriber line (DSL) network, a fiber optic network, an RF network, etc.

Data is transmitted over network19between the gaming machines and central authority21which may be formed of one or more computers. Each gaming machine includes a smart communications interface (SCI)101for control of communications over network19. Interface101is a microprocessor-based device. Central authority21stores game output data (received from the gaming machines) and may store game input data (to be sent to the gaming machines) in a central database25.

More than the three gaming machines13,15and17may be connected to network19ofFIG. 2. For example, gaming machines15and17are slot electronic gaming machines and gaming machine13is a video poker electronic gaming machine. Other types of gaming equipment and gaming machines may be connected to network19ofFIG. 2, including table games.

Gaming machine17is shown in more detail inFIG. 2and includes a housing51that supports a number of components including a main display53which is positioned on the outer front face of the machine for direct presentation of a display to the player. An input area35receives a wager from the player in the form of currency bills or bar-coded vouchers. A card receiving slot37is positioned to receive a player card for use to identify the particular player at the gaming machine, as described hereinafter. A secondary display39also may be included, for the display of supplemental non-game information to the player, typically, in the form of instructions, points balances, or other information. As understood, all or part of supplemental display39may take the form of a display window located on primary display53or a secondary window on display53. A keypad41is provided to allow the player to input data to the SCI of the gaming machine, particularly in response to instructions or questions on supplemental display39. In addition, a plurality of decision making buttons43(and optionally a handle, not shown) are used by the player to play the game of machine17. A payout tray45provides an area for redemption of awards based on play of the game, and a printer (not shown) may be used to print tickets or other redemption documents.

Display53displays the primary game features for play of a game. For example, the display may generate a conventional slot game in which a plurality of symbols are moved within their respective column, as if rotated, at the appropriate time in response to the user activation of the gaming machine.

Referring now toFIG. 3, gaming machine17includes a game control CPU61which is responsible for carrying out the main functions of the gaming machine. CPU61executes each game as the player interacts with the gaming machine, including visually and/or audibly interacting with the player, as well as generating game outcomes. In addition, CPU61processes network information by receiving from, and sending data to, smart communications interface (SCI)101. CPU61includes a microprocessor and associated memory (not shown particularly). Depending upon the type of gaming machine, CPU61may directly carry out some or all of the functions that SCI101may carry out.

Gaming machine17includes a number of peripheral devices including, for example, a card reader63and key pad41. Card reader63and key pad41are used to identify the player at the gaming machine17. The casino issues a player a player card67(FIG. 2) through an application process. Player card67typically includes a magnetic stripe68that is encoded with data to identify the player. In some cases, a personal identification number (PIN) is given to the player for security, and may allow access to certain features of the gaming machine. Card67is readable by a card reader63found in each of the gaming machines13,15,17. Other types of cards may be utilized including optical cards, smart cards, etc.

In addition, a unique number is encoded onto a magnetic stripe68carried by the card. This unique number corresponds to a player account file which is maintained by central authority21in database25. The account file may include information such as the player's name, address, amount of credit available, amount of promotional credits, amount of loyalty points, etc.

The player inserts his or her player card67into card receiving slot37(FIG. 2) for reading by card reader63(FIG. 3). SCI101detects the card insertion and receives the identification information contained on card67. For example, the player's name, address and player tracking account number may be encoded on the magnetic stripe. The information contained on card67may be a reference number to retrieve player data from database25.

SCI101provides display signals to display39in order to, for example, display the player's name, or other message. Select messages may be displayed, for example, requesting the player to optionally enter his or her personal identification number (PIN) using keypad41. Where the PIN is optionally entered by the player, SCI101communicates with the central authority in order that the PIN, for example, may be used to validate the player's identity. In other cases, the PIN may be used to access some features of the gaming machine17or system11. Either the central authority or the SCI performs validation.

SCI101gains access to the player's account at the central authority. The player's account typically includes the number of player points (loyalty points) previously accumulated by the player, as well as additional statistics. In order for the gaming activity at a particular machine to be credited to the player's player account, the player or player account is identified at the gaming machine. Identification is typically accomplished by the player inserting his or her player card.

A PIN alone without a player card may be used to provide player identity to the gaming machine; and a card alone without a PIN may be used to provide player identity to the gaming machine. Alternatively, any of several biometric devices may be used to identify the player, including devices to check fingerprints, scan facial appearance, provide eye scans, etc. Such biometric input data may be used alone or in combination with player cards or PINs.

During game play, CPU61tracks gaming activity and provides gaming activity information to SCI101. Such information may include an amount of money a player has wagered on each game, a number of games played, a time each game was initiated and a particular identification of a gaming machine, etc. For example, a system may track money wagered, money won and the time period tracked. Tracked information may be obtained by the SCI polling the CPU. The game activity information is sent to the central authority by the SCI. The central authority utilizes the game activity information to perform accounting functions and additionally generates player points which are added to the points in the player's account. Awards are provided by the casino in accordance with points accumulated by the player.

Any pre-stored data in the player's account may be downloaded to SCI101which in turn provides corresponding signal data to CPU61. Where gaming machine17allows for player selection of the particular game played, players may pre-store their game preference in central database25(FIG. 2). Preference data may be downloaded to gaming machine17after player identification at the gaming machine.

The communication between SCI101, central authority21and CPU61may take on different forms and protocols, as for example, serial, parallel, ethernet, etc. In one embodiment, the SCI may be connected to the CPU61through a serial connection and communicates in accordance with a particular communication protocol or protocols depending upon the manufacturer of the particular gaming machine.

After a particular player has been identified as a valid player, other messages are presented on display39. For example, the balance amount of points or credit remaining in the player's account may appear on the display. The player may use key pad41to download credits to the gaming machine, as described in U.S. Pat. No. 6,511,377 incorporated herein by reference.

Card reader63is housed in gaming machine17, and positioned relative to card slot37to receive player card67. Card67is inserted into reader63and information read from card stripe68is transferred to SCI101and stored in a memory83located in SCI101.

A bill validator65is housed in gaming machine17and positioned relative to wager area35to receive currency bills inserted into validator65by a player. Bill validator65, which may receive several bill denominations, detects the denomination of an inserted bill and generates a signal69to CPU61. Bill validator65may also receive encoded vouchers or tickets and responsively generate a proper signal69relating to ticket insertion.

CPU61, for example, responds to signal69by increasing the value on a game credit meter71. Depending on the type of gaming machine, a value of credit meter71may be displayed on display33. Credit meter71provides a visual indication to a player of a number of game credits available for play. In an embodiment, signal69may be sent to SCI101, which in turn communicates with CPU61so as to change credit meter71. Communication with the CPU through the SCI to change the credit meter may occur when a bill validator is retrofitted into a gaming machine that was originally manufactured without a bill validator. CPU61increases the credit meter after a ticket signal is received and value is determined.

A coin validator73is housed in gaming machine11, and positioned relative to a coin slot36(FIG. 2) to receive coins which are inserted by a player into coin validator73. Coin validator73generates a coin signal75to CPU61. CPU61, for example, responds by increasing the value of credit meter71.

In accordance with a configuration of gaming machine17, the gaming machine begins a game (for example, the reels spin) automatically after the credits appear on the credit meter or the game is started after the player presses a button43or pulls a handle (not shown).

Then, the game ends and a particular result appears. The gaming machine pays out certain amount(s) depending upon the result in a conventional manner. The pay out may include applying an amount directly to the credit meter71, or paying the amount in coins or tokens directly from the slot machine to the player at tray45, or where the amount is above a threshold level, a hand pay is made of the amount to the player. The player may cash-out credits by activating a cash-out button43or upload credits to the player's account in database25. A ticket printer (not shown) may be used to dispense bar coded vouchers on cash-out, as well.

If a player desires to discontinue play or move to a different machine, the player removes the player card. Thereafter, the player card may be inserted into the same or a different gaming machine for continuing play.

The player's account may be formed of multiple accounts, for example, a CASH account, a POINTS account, a PROMO account, etc. Credit may be placed in the player's PROMO account by the casino as a complimentary incentive. This may happen when a player first arrives at the casino at hotel check-in or other event. Alternatively, credit may be applied to the player's CASH account in accordance with the player making a deposit of money, either coins or tokens directly into the slot machine or at a cashier. Such credits (or value) may be downloaded to the gaming machine and placed on credit meter71.

The player's gaming activity is tracked by system11once the player account is established, the player has been issued a player tracking card bearing a unique identification number and the account is in a file in database25, for example. The player's transactions at the gaming machine are logged by SCI101and reported to central authority21.

In some situations, multiple player cards may be issued for a single account; each card identifies the same account. Each card may carry the same identification number. For example, a husband and wife may share a single account. The first card inserted allows the player to retrieve any or all of the credit available in the player's account. The second card inserted allows the second player to retrieve any remaining credit that remains in the account. Where both cards are simultaneously used on separate gaming machines, all player transaction activity is collected and forwarded to the player's account.

Numerous types of reports may be generated based upon the transaction activity logged in the player's account. For example, the amount of money played by the customer, the amount of credit used from the player's account, the amount of complimentary incentive credit utilized by the player, the amount of points converted to play credits at the game, the machine upon which the transaction occurred, the time of the play, or other event, etc.

Information Accounting by CPU61

Referring again toFIG. 3, CPU61keeps a plurality of accounting meters81that log transaction and machine data. Meters may be formed of electronic memory managed by CPU61and/or hard meters. CPU61responds to various gaming machine events and updates meters81accordingly. Meters81may be non-reset, accumulative meters; however, some meters81may be reset meters and statistics are available since the last reset of the meters. Basic events in which CPU61adjusts meters81may include:(1) money input by the player;(2) wagers placed by the player;(3) game wins from play of the game; and(4) cash out of credits by the player.

Only the particular meter(s)81to which an event pertains are adjusted upon the occurrence of the event. Data identifying the occurrence of events may be recorded also, including the time of the event and the particular type of event.

For example, meters81may include various drop meters to track money flow. A drop meter may be provided for each of the different forms of monetary value accepted by the gaming machine. For example, a coin drop meter may represent the total value of coins that fall to a “drop bucket” within the gaming machine housing for later collection by the casino. Also, coins may instead be diverted to a hopper system for later payout to the player and such diverted coins may be metered separately. Also, a bill count drop meter may count all paper currency that has been inserted into the bill acceptor. As another example, promo count meters count promotional credits that are received by the gaming machine from bar coded coupons, downloaded credits, bonus point conversions, and the like. Outflow of cash to the player may also be tracked by meters, including printed vouchers that have been issued by the machine.

Meters81may also keep track of game activity and include a game play meter for tracking the total number of bets actually wagered and a game win meter for tracking the total number of wins. Purchased credits which are not wagered, but cashed out, may be tracked as well. Credit meter71is a visual meter which reflects the total amount of credit available to the player at any time, and may be driven from another meter81.

SCI101Retrieves Data from CPU61

CPU61communicates data to SCI101including events and readings of the accounting meters81. For example, SCI101may poll CPU61for data, and then record such data in a memory83. The data may be further processed by SCI101, and then the processed data is stored in memory83. Particular data stored in memory83includes accounting data85as well as player data87which is used to award player points.

SCI101performs game accounting functions by updating accounting data85and player data87. SCI101transmits data85,87to central authority21. In addition, accounting data85and player data87may be initialized by central authority21.

Type of Information Reported

Tracking of data at the gaming machines occurs for carded and non-carded players. A non-carded player is a player who does not insert a player card during play. SCI101may retrieve data from CPU61including data stored by CPU61in meters81. SCI101may also keep data that SCI101has obtained from sources other than CPU61, such as data obtained from card reader63. SCI101may process the data and convert the data to a particular form prior to transmittal to central authority21. For example, data regarding a number of coins played during a certain period of time may be calculated by SCI101based on coin-in meter data at a start of the period and coin-in meter data at an end of the period.

SCI101reports certain data to central authority21which is placed in database25. However, SCI101reports particular data, i.e., player data87, which is related to the game activity of the player. Central authority21uses player data87to calculate player points and store player points in a particular player account held in database25. For example, central authority21may calculate a number of loyalty points based on coin-in data of the player, and thereafter store points data in a player account. Alternatively, SCI101may perform points calculation and transmit the points data for storage in the player account in database25.

When Information is Reported

SCI101may report a variety of accounting data to central authority21at various times. SCI101reports player data87which SCI101has accumulated in connection with the occurrence of a gaming session. The data may be reported when a player removes his or her player card from card reader63. Where a player has the ability to convert points stored in his or her account to credits at the gaming machine, the timing of points credited to the player account may become important. It may be desirable also to forward player data87at predetermined times, for example, every hour, where the player's gaming session occurs over a lengthy period of time.

Employee Cards

Employees of a gaming establishment, such as a casino, have employee cards that are insertable into a gaming machine. The employee card may include a magnetic stripe that is read upon insertion to alert SCI101that an employee is present at the gaming machine. Thereafter, particular functions of the gaming machine (or SCI101) are made available to the employee.

When an employee card is inserted into reader63, SCI101recognizes the card as an employee card. However, if an employee card is inserted, then normal employee menus are displayed on display39. If a card may not be read then a message such as “BAD CARD READ” is displayed on display39.

Identification of a player may be performed by a magnetic card reader, an optical card reader, a card swipe reader, a card insertion reader, a smart card reader, or other device which alerts SCI101by providing SCI101with player identification information of the player who is about to activate play on the gaming machine. Devices other than card readers may be used to provide identification information, such as a biometric sensor, a fingerprint sensor, a palm sensor, a hand sensor, an eye sensor, an iris sensor, a visual recognition system, an audio or voice recognition system. The device provides player identity information to SCI101at the time that the player is about to commence play. Player identity information may be transferred by radio waves or infra-red radiation, for example, from a portable or handheld device. Card removal may be determined in a number of ways, including sensors such as audio, visual, thermal, motion, infra-red, magnetic, light detectors, etc.

Smart Communications Interface

In an embodiment, SCI101(e.g., Sentinel II® or Sentinel III®) includes a user interface, such as a TFT (Thin Film Transistor) Active Matrix LCD interface (with optional touch screen), to provide static pictures and dynamic video clips with vivid color. The LCD display with touch screen may be used to enter information, such as player identification information or game play options. SCI101may also include an additional LCD character/VFD (Vacuum Fluorescent Display) graphic display interface. In addition, a Video Input Port (VIP) may be incorporated in SCI101to provide real-time videos or provide streaming videos. The SCI101may also include an audio system, such as an AC'97 Audio system or personal computer sound system. In addition, Voice over Internet Protocol (VoIP) technology may be used by SCI101to manage the delivery of voice information using Internet Protocol.

In an embodiment, SCI101includes a compact flash connector. The connector receives a conventional CompactFlash card. Use of compact flash or other volatile memory permits great convenience, reliability, availability and low cost. Markup language documents and other data may be stored in the CompactFlash or other memory card located in the connector.

SCI101provides a plurality of interfaces for communication from and/or to peripheral devices or gaming machine components. For example, SCI101may include a keyboard and/or mouse interface, a keypad interface, a progressive interface, a fiber-optical interface, a lockout interface, a magnetic/optical card reader interface, a Slot Data System (SDS)/IGT pulse interface, a slot accounting software (SAS)/GDAP interface, peripheral component interconnect (PCI) bus connection serial port, parallel port, infrared port, universal serial bus (USB) connection, an opto-isolated input, an opto-isolated output, and/or other interface.

Formatting a Gaming Machine Display Using a Markup Language (Rendering)

In an embodiment, a gaming machine, gaming workstation, or other gaming system uses a markup language (ML) for display and interaction purposes in a gaming or ancillary gaming application. A markup language viewer is used to facilitate display, execution, and/or parsing of data from a ML document. In current systems of the art, dedicated software routines specify the fixed locations of content, such as images, and references, such as links, by hard coding them in code or in tables of constants within the code. Conversely, a markup language document, as shown inFIG. 4, is an external, changeable document that is analyzed and parsed or rendered dynamically. Changes may be implemented without changing program code. When operation of a gaming machine transitions within an area of operation or from one area of operation to another, a markup language file may be loaded, parsed, and the information therein used to specify the content of a display.FIG. 4shows a sample ML file used in accordance with an embodiment of the present invention.

In addition, replaceable “tokens” or other indicia may be used in a markup language in a gaming or ancillary gaming application.FIG. 4illustrates a sample ML file including tokens to be resolved according to an embodiment of the present invention. Tokens inFIG. 4are indicated by square bracket (e.g., “['s”) to allow the ML viewer to resolve the tokens using a database or local storage.

In one embodiment, servers may utilize a server-side content generation program to provide unique and interactive content in response to client side queries. In another embodiment, rather than relying on a server to provide content specific to interaction, “client” side content is used. A client “page” contains certain “text” that is detected and replaced by other text or value when the page is rendered. In an embodiment, replacement text is of a dynamic nature and is retrieved from a local storage by a token look up method.

When a markup language document is rendered to a display, certain text markers, indicia, or “tokens” in the ML document are identified, isolated, extracted, and replaced in the rendered product. Once isolated and extracted, a token is “resolved” by a token look-up method that references actual data in a database or local storage based on the token in the ML document. Resolution of a token allows an unchanging ML document to be rendered with particular instance information.

A flow diagram500shown inFIG. 5depicts a traditional method of hard-coded HTML display. First, at step510, a client process505, such as a web browser or viewer, accesses a web site generated by a server page generator515at a web server. Information entered at the client receives information from the server and sends information back to the server but does not store information at the browser. Then, at step520, specific information is requested from a server database525by the server page generator515at the web server. Next, at step530, the database525returns information specific to the client or session. The page generator515generates a web page from the specific information.

Then, at step540, a web page or other fixed file is transmitted from the web server to the client web browser505. The web browser or other client process505renders the web page for display. At step550, the web page from the server is displayed at a client display535. The web page is completely rendered when it is sent

FIG. 6shows a flow diagram600depicting a method for token resolution used in accordance with an embodiment of the present invention. First, at step610, the ML viewer605requests a file, such as a ML page, from local storage615. Unless otherwise specified, for example, a default page is requested. For example, a viewer process running on an electronic gaming machine may request an initial page for a video poker game at startup. Then, at step620, the file is returned to the viewer605. The ML file includes tokens or other indicia, such as indicators surrounded by tildes, brackets, or other indicia.

Next, at step630, the viewer605requests a token lookup. That is, the viewer605parses the ML file and identifies one or more tokens or other indicia in the file. The viewer605identifies tokens, for example, to be resolved in the ML file. For example, the viewer process identifies a coin denomination token in the ML file. At step640, the token is located in the local storage615using the lookup method625. Then, at step650, a value for the token is returned to the lookup method625. That is, a value assigned to the token or other indicia is retrieved from a table or database, for example, for use in resolving the ML file. For example, a value of one dollar corresponding to the denomination value is returned from a local database to the viewer process. The lookup method625resolves tokens or other indicia in the ML file. Token resolution may be repeated for multiple tokens in a file.

At step660, the resolved token(s) are returned to the viewer process605. For example, the file with resolved or completed tokens is sent to the viewer605for display. The viewer605renders the ML file for display. Then, at step670, the file is displayed. For example, the rendered file with resolved tokens is displayed at a gaming system, such as a gaming machine or workstation.

FIG. 7illustrates an example of token resolution and display in an ML file in accordance with an embodiment of the present invention. An ML document710includes information, such as tags, text, and/or tokens, to format a display in a gaming environment. An ML viewer parses document710and references table720to resolve tokens in document710. For example, the ML viewer locates the [Version], [SenID], [DoorStatus], [DPUNumber], and [Checksum] tokens in document710. The ML viewer resolves the tokens using a lookup method and local storage or database. Page730is then displayed including the resolved tokens.

FIG. 8illustrates a gaming system800used in accordance with an embodiment of the present invention. Gaming system800includes a gaming machine17. The gaming machine17includes a local storage219including one or more ML files213. In an embodiment, the system800may include a gaming workstation or other gaming system instead of or in addition to gaming machine17. Each ML file213includes a markup language such as hypertext markup language (HTML), extensible markup language (XML) or other markup language. ML file213includes markup tags215.

Markup tags215surround text, graphics and other instructions in ML file213. Tags215instruct viewer217regarding formatting of contents of file213for display. For example, tags215may determine font, size, positioning, and other effects of display information, such as text and/or graphics. Tags215may include tokens to be resolved for display. Viewer217uses the markup tags215in the requested file213to format the text to be displayed. Viewer217displays the appropriate text of ML file213at a display53.

In a markup language document, for example, HTML code or HTML tags215define how elements in the document are displayed. XML code or tags215define what the elements contain. HTML uses predefined tags215. XML allows tags to be defined by the developer of the web page. Thus, XML is an open standard for describing data. XML may enable an ML document to function like database records. XML uses a similar tag structure to HTML.

The system800may also include a workstation or other system used to make changes to a particular ML file213. A keyboard or other data entry device, such as a touch screen or mouse device, is used to interact with an edit program. ML file213is then modified using edit program.

In an embodiment, the ML viewer217may access ML documents that are stored on a network or other external storage. In an embodiment, the ML viewer217does not alter a local copy of an ML file213in local storage but rather temporarily stores a copy of the ML document in RAM or other temporary storage for display. The ML document may also be stored in persistent storage. Alternatively, local persistent storage, such as a hard disk drive, CD, CD-ROM, DVD-ROM, flash disk, compact flash, etc., may be used to store a copy of an ML document.

One ML file213may link to another local file or the current ML document. The ML viewer217may follow a link in a first ML document to access a second ML document. In an embodiment, the ML viewer217first accesses a predetermined document (for example, “index.html” or “default.html”). The predetermined or default file is displayed to a user or player by viewer217via display53. Alternatively, in an embodiment, the viewer217may request the name or reference of the first ML document from an external process. Alternatively, a default file may be associated with a particular user and/or game being played on gaming machine17. The default file may include one or more links to additional files. One or more links may be accessed by the ML viewer217depending upon user, game, or other setting for gaming machine17. Thus, by accessing an initial ML file213, a viewer217may update a gaming machine display53by following links and resolving tokens215

In one embodiment, the ML viewer217automatically cycles through several pages within one ML document or within different ML documents. In another embodiment, a user may select one or more pages213to display via viewer217on display53. The user may select one or more links to pages213using the keyboard221, a touch screen, a mouse “click”, or other selection method. The user selects a button, link, or other indication on display53and instructs viewer217to “follow” the link to go to another section within the ML document or to another document. Typically, viewer217first displays a default ML file in local storage. Traversing from one document to another document via links or addresses automatically or by touch or click is referred to as “navigating.”

The ML files213may be written in XML, HTML, XSL (extensible stylesheet language), XSLT (XSL transformation technology), WML (wireless markup language), binary XML, or WBXML (wireless binary XML), for example. The ML files213may also be edited locally and/or remotely. In an embodiment, a user is authenticated before an ML document may be modified.

The ML viewer217parses an ML file213to determine content and formatting instructions. The ML viewer217identifies tokens in the tags215or other areas of the ML file213. Tokens indicate variables or values to be provided or “filled in” by other sources. Tokens may be denoted in an ML document using standard ML delimiters and/or custom text markers. For example, square brackets “[ ]” or tildas “˜˜” may be used to indicate a token. Indicia of a token trigger the ML viewer217to resolve a value of the token.

Information retrieved from a local data storage or information entered by a user may replace one or more tokens in a temporary copy of the persistent ML document located at the gaming machine17(i.e., “resolving the token”). In an embodiment, however, the ML document is not modified. The ML document may be stored in non-volatile storage, for example. Information in a local or remote data storage may be dynamically altered by other processes running on SCI101or other system component. For example, player identification information, player name, and player points may be stored in the local data storage.

Alternatively, default token values may be provided in the ML document. Additionally, a plurality of token values may be located in the ML document and selected by the user or ML viewer.

For example, an ML document includes a player name token indicating the name of the current player. The ML viewer accesses a local data storage via SCI101and determines that the current player is “John Doe.” The ML document also includes a point token indicating a number of points for the current player. The ML viewer accesses the local data storage and retrieves the point total for the player (e.g., “John Doe has 1234 points.”). Viewer217displays page213including the ML document with appropriate tokens completed with values from data storage.

Thus, an ML document is a text document including markers for specifying portions of text that have different meanings for different consumers or different situations. The extensible nature of a markup language allows one user to add markers that are ignored by another consumer. Text contained within markers specify the content of the gaming machine's display. Different text and/or graphics may be configured and displayed for different consumers. Screen elements may be structured based on information denoted within certain markers.

FIG. 9illustrates a flow diagram for a method900for configuring a display in a gaming machine used in accordance with an embodiment of the present invention. First, at step910, an operator selects a ML file for display at a gaming machine or other gaming system. The operator may select a game for playing on the gaming machine and a corresponding ML file to generate a display for the selected game (a default file, for example). Additionally, one of a variety of displays may be selected for a given game to customize the display and the game for a particular player, location, bonus, etc.

Then, at step920, an ML viewer processes the ML file to determine the content of the ML document. For example, the ML file includes text and/or links to images and/or additional ML or text files. The ML file also includes tags or other markup language code which serves as instructions for the viewer to process, format, and display the ML file.

At step930, text in the ML file is identified for display. For example, text may be present in the ML file for display at display53. Additionally, links or addresses indicating text and/or graphics in another ML file may be present in the ML file. Text and/or graphics and/or links to text and/or graphics may be identified by markup language tags.

Next, at step940, tokens in the ML file are identified. The tokens signify variable values to be filled in or resolved by the ML viewer. Tokens allow a display to vary depending upon gaming machine location, current player, current game, variable prize, etc. Tokens allow the ML file to be adjusted dynamically without altering the ML file itself.

Then, at step950, the tokens identified in the ML file are resolved. For example, the ML viewer accesses a data storage to locate the tokens found in the ML file. The ML viewer then replaces the tokens found in the ML file with the relevant values for the particular player, location, and/or game, for example, in a copy of the ML file. Tokens may be resolved dynamically by the gaming machine to adjust the contents of the ML file and display of the ML file without changing the ML file. For example, the ML viewer replaces the tokens in RAM with current token values so as to display the ML file with current token values.

Next, at step960, text and/or graphics from the ML file are formatted for display on the gaming machine display. Based on tags or other instructions found in the ML file, the text and/or graphics, with resolved token information, is formatted for display. At step970, the formatted text and/or graphics are displayed at the gaming machine. Options shown on the gaming machine display may be used by a player to play a game at the gaming machine. Options or features on the display that are activated by touch, click, button press, handle pull, or selection method may trigger actions at the gaming machine. That is, options or features displayed at the gaming machine may facilitate gaming machine operation and playability. Alternatively, options on the display may allow an operator to configure the gaming machine or edit an ML document or database entry.

Then, at step980, the display may be changed based on a new game (e.g., three reels versus five reels), a new player, a new location, and/or a new gaming mode (e.g., progressive mode, special bonus, etc.). For example, a bonus or variable prize may be introduced and thus modify the display. Additionally, for example, a three reel slot game may be changed to a five reel slot game. A game running on the gaming machine may be changed from a quarter slot game to a nickel slot game, for example.

Dynamic token resolution provides improved flexibility in gaming system display and operation. Local look-up of ML file and token information increases speed, as well as reliability. A local data store at a gaming machine or interface may function in conjunction with a server or external data storage to provide information redundancy. A gaming machine may operate on a local copy of an ML file that is periodically refreshed and/or synchronized with a remote copy. Rather than incurring a delay and relying on information transmitted from a server, local data storage in a gaming system provides more immediate access to data. A viewer process running on a gaming machine may reference local storage rather than continually reaching outside the machine for data from an external system. A ML file may be resolved with local information rather than rebuilding the file for display each time at an external server. Local storage may be persistent or volatile (e.g., holds a temporary copy of an ML file and/or token data and reloads in the event of a loss of power). One or more ML files may reside in local storage, and the viewer may switch among the stored documents. Additionally, maintaining communications inside the gaming system improves system security and data integration. In an embodiment, token update is a one-way activity that retrieves and displays values but does not change the original value stored in data storage.

A ML file with tokens may be used to customize a gaming display to variety of options (e.g., user, game, etc.). The gaming industry is a highly regulated environment, and regulators often do not allow third party developers to modify data unless the third party is properly licensed. Often, companies may not obtain a license. Markup language allows a third party to separate data on a page from an application. Thus, data may remain untouched and used in a modifiable display. A static ML file with “blanks”, such as tokens or other indicia, may receive gaming regulatory approval because the core document remains unchanged despite token resolution. A display may be completely customized without re-submitting the ML file to regulators for re-approval because the underlying data has not changed. Thus, a player may perceive a change in game on a gaming machine due to a change in token resolution while the underlying ML code remains the same. Additionally, a language being displayed may be customized to a particular player through appropriate token resolution.

Extensible Markup Language Files

In an embodiment, a markup language is a language that may be extensible (e.g., HTML, XML, XSLT, WML, BXML, WBXML, ASP, etc.). Modules may be delineated using a markup language, and existing modules may be modified. Modules may be placed around other modules or in other relationships with respect to other modules. Thus, a hierarchical structure may be constructing using a markup language.

Resource Interchange File Format (RIFF) files, such as Tagged Image File Format (TIFF), Audio Image File Format (AIFF), Motion Picture Experts Group (MPEG), Windows Audio Volume (WAV), Audio Video Interleaved (AVI), Musical Instrument Digital Interface (MIDI), or other file, are binary markup language files. Elements in an exemplary binary ML file includes a tag field indicating what the data is, a length field indicating how long the data is, and a data field including data. Binary ML files may also include pointers before the data field instructing a processing program to go to a certain location for the data. Additional tag(s), length(s), and data may be nested within a data field.

While the tag and length fields are binary, the data field may or may not be binary. Thus, text-based and/or binary data may be inserted in a binary ML file. Tokens may be inserted in the data, and may be resolved from the data field. Information may be added to music (e.g., WAV, MPEG, etc.), movies (e.g., MPEG, QuickTime, etc.), and/or images (e.g., TIFF, etc.). For example, text streams, buttons, position information, identification information, etc., may all be encoded in a binary ML file. A ML viewer reads the inserted information, but an audio/video system simply skips over the unknown data. Such insertion and access allows newer systems to take advantage of additional features and data, while older systems simply ignore the extra content. Thus, a flexible, adaptive, and backwards-compatible system is provided.

External Control of ML Processing

In addition, the markup language viewer may be externally influenced for navigation, refreshing and linking purposes in a gaming or ancillary gaming application. By using communications, such as inter-process, intra-process, inter-device, flags, semaphores, and/or other indicators, a ML viewer may be influenced to navigate to a location within the current ML document or to any of a number of other ML documents. Messages to the ML viewer originate from one or more external management processes, program inputs and/or user inputs.

In an embodiment, an external process, such as a hosting process, being aware of many conditions within a device, influences the displaying of the contents of a markup language document. The ML viewer may navigate to and display the ML document immediately regardless of current or prior activity. A ML document viewer may perform a look-up process to resolve a destination “screen code” to a literal ML document file name. In another embodiment, a control program may send a message instructing a viewer, browser, or other program to access a certain web page.

The control program may react under particular conditions, such as a jackpot, a tilt, or other event at a gaming machine or other location. The control program may also react to a stimulus, such as insertion of a player or employee card, at a gaming system to generate a command for the viewer to execute a certain action or series of actions immediate. For example, if a player card is inserted, an external server loads player and/or tracking data and transmits an ML file to the viewer for immediate execution. The viewer receives the information from the external server, retrieves the ML file from storage, and processes the ML file.

In an embodiment, an initial ML document may be loaded at a gaming system. The initial document includes directions regarding where to advance next to display new pages on a display (e.g.,FIG. 4). Process flow may proceed as dictated by the initial ML document or program sequence until an external process intervenes. An asynchronous interrupt by an external process redirects gaming system operation.

In another embodiment, a “hot spot” button or other indicator may be added to a gaming system display. Selecting the button triggers certain special functions. The button or indicator may be visible or may be hidden (for example, an Aristocrat logo may be a hot spot button).

Additionally, as shown inFIG. 4, an ML file may associate identification (ID) numbers with items for display. When an item is selected by a user (e.g., using a touchscreen, keyboard, or mousing device), the ID number is relayed by a viewer program to a control program. The control program returns an ML file to the viewer program or transmits an instruction to access a certain ML file. The instruction may also be present in the current ML file. For example,FIG. 4shows that form a form ID of 1, the next form link is 3. Pin numbers or other information typed at a touch pad, for example, may be verified through an association of display items with IUD numbers.

In addition, a markup language viewer may be used for reporting interactivity to applications or processes external to the ML viewer in a gaming or ancillary gaming application. Through the use of inter-process communications, a markup language viewer reports activity to one or more external processes. Typically, activity consists of any clicks, touches, or page changes. An external hosting process may use activity information to alter its behavior. Attributes in a markup language document provide codes which may be sent to one or more external or hosting processes when user activity at the viewer activates associated visual elements.

Thus, certain embodiments of the present invention provide a system and method for using markup language in gaming applications. Certain embodiments allow an ML file to be run, viewed, and/or parsed to configure or modify one or more gaming machines. Certain embodiments allow interaction with a user through ML (e.g., between a game, a central system, a user, and/or a database, etc.). Certain embodiments identify communications or interaction between an ML viewer and a gaming application. Certain embodiments utilize tokens to customize a page dynamically without altering code for a web page. Improved communication within a gaming system and reduced communication with external systems improves security, performance, and reliability/redundancy of gaming systems and applications.