Abstract:
A disclosed gaming machine provides a gaming machine with a plurality of software units providing player tracking services. The software player tracking units eliminate the need for a separate hardware player tracking unit. The player tracking devices, including the card reader, are accessible to the master gaming controller on the gaming machine and may be utilized by the master gaming controller for other gaming applications. The player tracking software incorporates communication protocols for communicating with a variety of player tracking devices. Communication protocols, device interfaces and device drivers for operating the player tracking devices and performing player tracking services may be added or upgraded by loading the player tracking software to a memory mounted within the gaming machine.

Description:
RELATED APPLICATION DATA  
       [0001]     This application claims priority under U.S.C. 120 and is a continuation of U.S. application Ser. No. 09/642,192, titled “GAMING MACHINE VIRTUAL PLAYER TRACKING AND RELATED SERVICES,” filed Aug. 18, 2000, which is incorporated by reference and for all purposes. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     This invention relates to game playing services for gaming machines such as slot machines and video poker machines. More particularly, the present invention relates to methods of providing player tracking game services to casinos and game players.  
         [0003]     There are a wide variety of associated devices that can be connected to a gaming machine such as a slot machine or video poker machine. Some examples of these devices are lights, ticket printers, card readers, speakers, bill validators, ticket readers, coin acceptors, display panels, key pads, coin hoppers and button pads. Many of these devices are installed within the gaming machine or components associated with the gaming machine such as a top box which usually sits on top of the gaming machine.  
         [0004]     Typically, utilizing a master gaming controller, the gaming machine controls various combinations of devices that allow a player to play a game on the gaming machine and also encourage game play on the gaming machine. For example, a game played on a gaming machine usually requires a player to input money or indicia of credit into the gaming machine, indicate a wager amount, and initiate a game play. These steps require the gaming machine to control input devices, including bill validators and coin acceptors, to accept money into the gaming machine and recognize user inputs from devices, including touch screens and button pads, to determine the wager amount and initiate game play. After game play has been initiated, the gaming machine determines a game outcome, presents the game outcome to the player and may dispense an award of some type depending on the outcome of the game.  
         [0005]     For gaming machine operators, an important aspect of gaming machine operations is determining the game playing habits of individual game players. When the game playing habits of an individual player are known, the gaming machine operator may provide incentives corresponding to the game playing habits of the individual game player to encourage additional game play. For example, the gaming machine operator may provide an individual player with coupons for free meals, free rooms or discounted game play depending on their game playing habits. The game playing habits of individual game players are typically determined by monitoring game usage on a gaming machine using a player tracking device.  
         [0006]     Currently, player tracking devices are manufactured as separate units before installation into a gaming machine.  FIG. 1  is a block diagram of a gaming machine with a player tracking unit connected to a server providing player tracking services. A top box  130  is mounted on top of the main cabinet of the gaming machine. The player tracking unit  120  is mounted within the main cabinet of the gaming machine  100 . However, the player tracking unit is usually mounted within the top box  130 . The player tracking unit  120  is connected via the device connections  130  to three player tracking devices, a card reader  115 , a key pad  110 , and a display  105 , all mounted within the top box  130 . The gaming machine is connected to two servers,  150  and  155 , via the network connections  140  and  145 . The player tracking unit communicates with the player tracking server  150  via the network connections  140 . The gaming machine communicates with the slot accounting server  155 , independently of the player tracking unit  120 , via the network connections  145  using a communication protocol of some type  
         [0007]     The player tracking unit  120  is connected to the master gaming controller  125  via a serial connection  135 . The gaming machine communicates with the player tracking unit  120  using a communication protocol of some type. For example, the master gaming controller  125  may employ a subset of the Slot Accounting System (SAS protocol) developed by International Game Technology of Reno, Nev. to communicate with the player tracking unit  120 . Using a different serial connection from 135, the gaming machine may communicate with a host accounting system using the SAS protocol. For example, the master gaming controller  125  may communicate with the slot accounting server  155 .  
         [0008]     Typically, when a game player wants to playa game on a gaming machine and utilize the player tracking services on the gaming machine, a game player inserts a magnetic striped card into the card reader  115  mounted in the top box  130 . A player&#39;s incentive for using the player tracking services are awards provided by the gaming machine operator. After the magnetic striped card has been inserted into the card reader  115 , the player tracking unit may detect this event and receive certain information contained on the card. For example, a player&#39;s name and address, encoded on the magnetic striped card, may be received by the player tracking unit  120 . The player tracking unit  120  may command the display  105  to display the game player&#39;s name on the display  105  with a message requesting the game player to validate their identity by entering an identification code using the key pad  110 .  
         [0009]     Once the game player&#39;s identity has been validated, the player tracking information is relayed to the player tracking server  150 . The player tracking unit  120  may capture some of the game player&#39;s game playing habits and forward this player tracking information to the player tracking server  150  using the network  140  for storage and processing. For example, the player tracking unit  120  may poll the master gaming controller  125  to determine how much money the game player has wagered on each game, the time when each game was initiated and the location of the gaming machine.  
         [0010]     The player tracking information, gathered by the player tracking unit  120 , is usually converted into a communication format according to a communication protocol used by the player tracking server  150  or a communication protocol used by equipment comprising the network  140 . For example, the network  140  may include concentrators that employ a different communication protocol than the player tracking server  150 . Thus, translators may be employed that convert the communication protocol used by the concentrator to the communication protocol used by the player tracking server  150 .  
         [0011]     The servers,  150  and  155 , may use the information from the player tracking unit to provide a player a game playing incentive or may be used to provide accounting services for the gaming machine  100 . The information received by the servers may be sent by the player tracking unit  120  using the player tracking protocol or the information may be sent from the master gaming controller  125  using a machine accounting protocol (e.g. SAS). Some of the accounting services provided by the player tracking unit may be independent of whether a player utilizes the player tracking services. For example, each time a game player plays a game on the gaming machine  100 , the player tracking unit  120  may send the amount wagered to one or both of the servers, using the player tracking protocol, although the game player&#39;s identity may have not been validated by the player tracking unit  120 .  
         [0012]     There are a number of disadvantages of using a separate hardware player tracking unit  120  to provide player tracking services. A first disadvantage is the player tracking unit is expensive. The cost of the player tracking unit is a significant fraction of the total cost of the gaming machine. A second disadvantage is the large number of companies that manufacture player tracking units. Currently, there are many different companies (as many as 19) that manufacture player tracking units that may be mounted in a gaming machine and many different types of player tracking units manufactured by each company. Some manufacturers of player tracking equipment include 1) Acres Gaming, Inc., Las Vegas, Nev., 2) Alliance Gaming Corporation (Bally&#39;s Gaming Systems), Las Vegas, Nev., 3) Aristocrat, Inc., Reno, Nev., 4) Casino Data Systems, Las Vegas, Nev., 5) Gaming Systems International, Las Vegas, Nev., 6) IGT, Reno, Nev., 7) Mikhon Gaming Corporation, Las Vegas, Nev., 8) Sigma Game, Inc., Las Vegas, Nev., 9) Silicon Gaming, Inc., Palo Alto, Calif., and 10) WMS Gaming, Inc., Chicago, Ill.  
         [0013]     Typically, each of these companies use different hardware and several different communication protocols to design the player tracking unit. The variations of the player tracking units from manufacture add to the complexity of the design of the gaming machine. For example, mounting brackets within the gaming machine  100  are needed that can accommodate different player tracking hardware from each of the manufacturers of player tracking units. As another example, communication interfaces within the gaming machine are needed that allow the gaming machine to communicate with a particular player tracking unit using the communication protocol of the particular playing tracking unit. The communication protocols used by each player tracking unit tend to vary according to the manufacturer of the player tracking unit. Further, the different player tracking units typically have different power supply requirements which need to be accommodated. Also, player tracking units main separate connections to the host service. The separate connections require separate wiring for accounting and player tracking services.  
         [0014]     A third disadvantage of separate hardware player tracking units is that the devices utilized by the player tracking unit, including the display  105 , key pad  110 , and card reader  115 , are not accessible to the master gaming controller  125  within the gaming machine. Typically, the player tracking functions performed by the player tracking unit  120  are opaque to the master gaming controller  125 . The player tracking unit  120  only communicates with the master gaming controller  125  to obtain information necessary for player tracking. Thus, the master gaming controller  125  can not typically use the card reader  115  for other gaming applications requiring a card reader. Therefore, in some instances, a second card reader may have to be installed on the gaming machine for gaming applications requiring a card reader. Since one card reader may be sufficient for use in multiple gaming applications, the installation of a second card reader would be very inefficient.  
         [0015]     In view of the above, it would be desirable to provide a less expensive, less complicated and more efficient method and apparatus of providing player tracking services for a gaming machine.  
       SUMMARY OF THE INVENTION  
       [0016]     This invention addresses the needs indicated above by providing a gaming machine with a plurality of software units providing player tracking services. The player tracking software eliminates the need for a separate hardware player tracking unit. The player tracking devices, including the card reader, are accessible to the master gaming controller on the gaming machine and may be utilized by the master gaming controller for other gaming applications. The player tracking software incorporates communication protocols for communicating with a variety of player tracking devices. Communication protocols, device interfaces and device drivers for operating the player tracking device and performing the player tracking services may be added or upgraded by loading the player tracking software to a memory mounted within the gaming machine.  
         [0017]     One aspect of the present invention provides a gaming machine with player tracking services. The gaming machine may be characterized as including the following elements: 1) at least one input device for inputting player tracking information into the gaming machine, 2) a communication interface for transmitting at least the player tracking information to a site outside the gaming machine 3) a master gaming controller that controls one or more games played on the gaming machine and receives player tracking events from the input device and the site outside the gaming machine and 4) a memory storing player tracking software that allows the master gaming controller to operate on the player tracking events as a player tracking unit and provide gaming services. The input device may be a card reader, a key pad, a touch screen, a microphone, a wire-less communication interface, or a bar code reader.  
         [0018]     In specific embodiments, the gaming machine may be a slot machine, a video slot machine, a keno game or a video poker game. Additionally, the gaming machine may include at least one display device for displaying the player tracking information where the display device is a monitor, a LCD, a fluorescent display or a sound projection device. The communication interface may be connected to a network where the network is a casino area network, wide area progressive network, bonus game network or a cashless system network  
         [0019]     In specific embodiments, the memory may store software for one or more device drivers that allow the master gaming controller to operate at least some of the input devices. The device driver may use a communication protocol including Netplex, USB, Ethernet, Firewire, direct memory map, PCI, serial and parallel. The memory may store software for one or more device interfaces that allow the master gaming controller to detect the player tracking events from the input device where the device interface may be for a card reader, a monitor, a display, or key pad. The master gaming controller may include a memory storing software, which may be separate from the memory identified in item 4 above, that allows the master gaming controller to detect power-failures. To protect against power-failures the master gaming controller may store some player tracking events to a non-volatile memory.  
         [0020]     In specific embodiments, the site outside the gaming machine may be a server where the master gaming controller includes a memory storing software for receiving the player tracking events from the site outside the gaming machine. Additionally, the memory may store software that allows the master gaming controller to receive player tracking information from the site outside the gaming machine and to send player tracking information to the site outside the gaming machine using one or more communication protocols. The player tracking information may be at least on of a player name, a time, a date, an amount wagered, a location, and a type of game and the communication protocol may be a TCP/IP communication protocol and a manufacturer player tracking protocol. The player tracking information may be input from a magnetic card, a smart card, a personal digital assistant, a finger print reader, a wire-less device, a sound device and a bar-coded ticket.  
         [0021]     Another aspect of the invention provides a method for providing player tracking services on a gaming machine with a master gaming controller, an input device, and a communication interface. The method may generally be characterized as including: 1) loading player tracking software into a memory utilized by the master gaming controller on the gaming machine, 2) receiving a player tracking related event, 3) evaluating the player tracking event using the player tracking software and 4) sending player tracking information to at least one site outside the gaming machine using the communication interface. Additionally, the method may include one or more of the following: a) translating the player tracking information to a communication protocol used by the site outside the gaming machine, b) displaying player tracking information to a display screen, c) storing a player tracking event to a non-volatile memory and d) operating a player tracking device where the player tracking device is a card reader, a touch screen, a key pad, or a display. In specific embodiments, the player tracking software may include player tracking device interfaces, player tracking device drivers, player tracking event evaluators, and player tracking communication protocol translators.  
         [0022]     These and other features of the present invention will be presented in more detail in the following detailed description of the invention and the associated figures. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0023]      FIG. 1  is a block diagram of a gaming machine with a hardware player tracking unit connected to two servers providing gaming services.  
         [0024]      FIG. 2  is a perspective drawing of a gaming machine having a top box and other devices.  
         [0025]      FIG. 3  is a block diagram of gaming machines with software player tracking units connected to two servers providing gaming services  
         [0026]      FIG. 4  is a block diagram depicting gaming machine software elements in a gaming machine with a software player tracking unit.  
         [0027]      FIG. 5  is a flow chart depicting a method for sending an event to a software player tracking unit.  
         [0028]      FIG. 6  is a flow chart depicting a method for providing player tracking services using a software player tracking unit.  
         [0029]      FIG. 7  is a flow chart depicting a method for initializing a gaming machine with a software player tracking unit. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0030]     Turning first to  FIG. 2 , a video gaming machine  2  of the present invention is shown. Machine  2  includes a main cabinet  4 , which generally surrounds the machine interior (not shown) and is viewable by users. The main cabinet includes a main door  8  on the front of the machine, which opens to provide access to the interior of the machine. Attached to the main door are player-input switches or buttons  32 , a coin acceptor  28 , and a bill validator  30 , a coin tray  38 , and a belly glass  40 . Viewable through the main door is a video display monitor  34  and an information panel  36 . The display monitor  34  will typically be a cathode ray tube, high resolution flat-panel LCD, or other conventional electronically controlled video monitor. The information panel  36  may be a back-lit, silk screened glass panel with lettering to indicate general game information including, for example, the number of coins played. The bill validator  30 , player-input switches  32 , video display monitor  34 , and information panel are devices used to play a game on the game machine  2 . The devices are controlled by circuitry (not shown) housed inside the main cabinet  4  of the machine  2 . Many possible games, including traditional slot games, video slot games, video poker, and keno, may be provided with gaming machines of this invention.  
         [0031]     The gaming machine  2  includes a top box  6 , which sits on top of the main cabinet  4 . The top box  6  houses a number of devices, which may be used to add features to a game being played on the gaming machine  2 , including speakers  10 ,  12 ,  14 , a ticket printer  18  which prints bar-coded tickets  20 , a key pad  22  for entering player tracking information, a florescent display  16  for displaying player tracking information and a card reader  24  for entering a magnetic striped card containing player tracking information. In addition, the player tracking information may be displayed using an LCD, a monitor or a sound projection device. Further, the top box  6  may house different or additional devices than shown in the  FIG. 1 . For example, the top box may contain a bonus wheel or a back-lit silk screened panel which may be used to add bonus features to the game being played on the gaming machine. During a game, these devices are controlled and powered, in part, by circuitry (not shown) housed within the main cabinet  4  of the machine  2 .  
         [0032]     Understand that gaming machine  2  is but one example from a wide range of gaming machine designs on which the present invention may be implemented. For example, not all suitable gaming machines have top boxes or player tracking features. In some gaming machines, the player tracking unit may be mounted in the top box  6  while in other gaming machines the player tracking unit may be mounted in the main cabinet  4 . Further, some gaming machines have two or more game displays—mechanical and/or video. And, some gaming machines are designed for bar tables and have displays that face upwards. Those of skill in the art will understand that the present invention, as described below, can be deployed on most any gaming machine now available or hereafter developed.  
         [0033]     Returning to the example of  FIG. 1 , when a user wishes to play the gaming machine  2 , he or she inserts cash through the coin acceptor  28  or bill validator  30 . Additionally, the bill validator may accept a printed ticket voucher which may be accepted by the bill validator  30  as an indicia of credit. During the game, the player typically views game information and game play using the video display  34 .  
         [0034]     At any time, the player may enter playing tracking information using the card reader  24 , the keypad  22 , and the florescent display  16 . As another example, the player may enter playing tracking information using the card reader  24  and the video display  34  where the video display may be used as a touch screen to enter information. When the video display  34  is used as a touch screen to enter and display player tracking information, the key pad  22  and florescent display  16  may be eliminated from the gaming machine.  
         [0035]     During the course of a game, a player may be required to make a number of decisions, which affect the outcome of the game. For example, a player may vary his or her wager on a particular game, select a prize for a particular game, or make game decisions which affect the outcome of a particular game. The player may make these choices using the player-input switches  32 , the video display screen  34  or using some other device which enables a player to input information into the gaming machine. Certain player choices may be captured by player tracking software loaded in a memory inside of the gaming machine. For example, the rate at which a player plays a game or the amount a player bets on each game may be captured by the player tracking software.  
         [0036]     During certain game events, the gaming machine  2  may display visual and auditory effects that can be perceived by the player. These effects add to the excitement of a game, which makes a player more likely to continue playing. Auditory effects include various sounds that are projected by the speakers  10 ,  12 ,  14 . Visual effects include flashing lights, strobing lights or other patterns displayed from lights on the gaming machine  2  or from lights behind the belly glass  40 . After the player has completed a game, the player may receive game tokens from the coin tray  38  or the ticket  20  from the printer  18 , which may be used for further games or to redeem a prize. Further, the player may receive a ticket  20  for food, merchandise, or games from the printer  18 . The type of ticket  20  may be related to past game playing recorded by the player tracking software within the gaming machine  2 . In some embodiments, these tickets may be used by a game player to obtain game services.  
         [0037]      FIG. 3  is a block diagram of gaming machines with software player tracking units connected to two servers providing gaming services. The gaming machines  300 ,  301 , and  302  includes hardware and software for providing player tracking services and accounting services in conjunction with the servers  350  and  355  located outside of the gaming machine and connected to the gaming machines via the networks  140  and  145 . Unlike the gaming machine of  FIG. 1 , these gaming machines do not contain a separate hardware player tracking unit. A few examples of networks connecting the gaming machines may be a casino area network, a wide area progressive network, a bonus game network or a cashless system network. The gaming machine  300  communicates with the networks  140  and  145  via the main communication board  360  which provides a communication interface to the networks  140  and  145  and the servers  350  and  355 . The gaming machines  301  and  302  also typically have main communication boards that provide a communication interface to the networks  140  and  145  and the servers  350  and  355 .  
         [0038]     The servers may provide a number of gaming services such as bonus game information, cashless ticket validation, player tracking services, and the like. Typically, for player tracking, the servers will provide player tracking and accounting services. For example, as described with reference to  FIG. 1 , server  350  may be the player tracking server  150  and server  355  may be the slot accounting server  155 . Accounting services involve tracking the cash flow in and out of the gaming machine. This information may be used for auditing purposes by the casino operator. Player tracking services may involve tracking game usage of individual players. For example, when server  350  or  355  is providing player tracking services, what type of games a player is playing, how fast the player is playing the game, when the player is playing the game, where the player is playing the game, and the name of the player are examples of player tracking information which may be sent by the gaming machine  300  to one the server providing these services. The player tracking information may be used to provide rewards to the player to encourage additional game play.  
         [0039]     The gaming machine  300  utilizes a top box  330  mounted on top of the gaming machine. Three player tracking devices, the display  305 , the key pad  310 , and the card reader  315 , which may be used to provide player tracking services and obtain player tracking information, are mounted within the top box. The display  305 , the key pad  310 , and the card reader  315  may be connected directly to the master gaming controller (MGC)  325  via the device connections  330  or through some other type of interface that is connected to the master gaming controller  325 . However, a separate hardware player tracking unit used to operate the player tracking devices, as described with reference to  FIG. 1 , may be eliminated.  
         [0040]     Typically, the card reader is used to obtain player tracking information from a magnetic striped card carried by the player. For example, a player&#39;s name and a password may be encoded in a magnetic striped card, which may be inserted into the card reader  315 . As other examples, the player tracking information may be input into the gaming machine using a smart card, a finger print reader, a wire-less device, a personal digital assistant, a sound device ( e.g. a players voice), a key pad  310 , a touch screen monitor  375  or a bar-coded ticket. To utilize these mediums to input information into the gaming machine  300 , a wire-less communication interface, a microphone, a bar code-reader may be required in the gaming machine  300 .  
         [0041]     After a player has input his or her player tracking information into the gaming machine using some input medium, the player tracking information input into the gaming machine may be displayed to the player in some manner. For example, a player name or some other type of identification may be displayed to the display  305  or the monitor  375  with a message requesting the player to enter a numeric code corresponding to the player name input into the gaming machine. The numeric code or password may be input into the gaming machine  300  using the display  305  or the monitor  375  when the monitor is used as a touch screen. In some embodiments, the key pad  310  and the display  305  may be eliminated and the monitor  375  with a touch screen may be used in lieu of the key pad and display for player tracking purposes. Using the monitor  375  instead of the display  305  and key pad  310 , the operation of the gaming machine is simplified. With a separate hardware player tracking unit, the monitor is not typically utilized for player tracking purposes because the monitor is not accessible to the hardware player tracking unit.  
         [0042]     Player tracking services may be provided by software player tracking units loaded into the memory  335  of the master gaming controller  325 . A few examples of the software player tracking units that may be utilized are player tracking device interfaces, player tracking device drivers, player tracking event evaluators and player tracking communication protocol translators. Some of the software player tracking units may be specific to player tracking services while other software units may be shared. These software units are described in more detail with reference to  FIG. 4 . The software player tracking units may be stored in particular memory locations blocks  340 ,  345 ,  350  and  355  within the memory  335 . Some memory locations may be protected, including  340 ,  345 ,  350  and  355 , from other locations in memory so that information stored in the protected memory locations is not inadvertently overwritten. When performing and tracking cash transactions, the protected memory can prevent loss of this information. Most modem operating systems provide the memory protection function. In a specific embodiment, the allocation of the protected memory spaces is performed using the QNX operating system (QNX Software Systems, LTD, Kanata, Canada)  
         [0043]     The player tracking software loaded into the memory  335  may be specific to a particular configuration of the gaming machine  300  and the servers,  350  and  355 , outside the gaming machine. When the gaming machine  300  is initialized, the player tracking software needed to operate a particular display  305 , key pad  310 , and card reader  315  and communicate with the servers  350  and  355  may be loaded from a binary database  365  based on a configuration file stored within the gaming machine. For example, when the gaming machine  300  is initialized, a device driver and a device interface particular to the communication and operation specifications of the card reader  315  maybe loaded into the memory  335  from the binary database  365 .  
         [0044]     Additionally, when the gaming machine is initialized, a player tracking communication protocol translator for the IGT communication protocol and a bonus gaming communication protocol translator for the Acre&#39;s communication protocol may be loaded into memory  335  from the binary database  365 . The player tracking communication protocol translators may allow the gaming machine  300  to communicate with one or more servers providing player tracking services and other types of services. For example, the server  350  may use a communication protocol of IGT (SAS) to provide player tracking services and the server  355  may use a communication protocol of Acre&#39;s to provide bonus gaming services. Thus, the player tracking communication protocol translators are more general than providing just player tracking communications and may be used to provide communications for many different types of gaming machine services (e.g. bonus games, progressive play, accounting, prize services etc.).  
         [0045]     The gaming machine may be initialized when the power supply  370  to the gaming machine  300  is initially turned on or after a power interruption to the gaming machine  300  has occurred. The configuration file may be stored in the non-volatile memory  380 . Details of the gaming machine software initialization process are described with reference to  FIG. 7 .  
         [0046]     The binary database, which may be a magnetic storage device, a CD-ROM, or another type of storage device, may contain player tracking software enabling the operation of many types of player tracking input devices including the card reader  315 , the key pad  310 , and monitor  375  or enabling the operation of many types of player tracking display devices including the display  305  or the monitor  375 . Additionally, the binary database may contain player tracking communication protocol translators enabling the gaming machine  300  to communicate with servers using many different communication protocols.  
         [0047]     At the time of filing, there were as many as 19 different manufactures of player tracking units (10 manufactures of player tracking units were listed in the background section). Many of these manufacturers use different communication protocols. The different types of communication protocols used by the different manufacturers of player tracking units are referred to as “manufacturer player tracking protocols.” For example, IGT uses the SAS communication protocol which may be different from the communication protocols used by player tracking units manufactured by Bally&#39;s Gaming Systems or Acre&#39;s Gaming Incorporated. Further, different models of player tracking hardware from the same manufacturer may use different communication protocols.  
         [0048]     Besides the manufacturer player tracking protocols, the gaming machine  300  with player tracking software may utilize other communication protocols to communicate with the servers. For example, the gaming machine  300  may utilize a TCP/IP communication protocol to communicate with the servers  350  and  355 . An advantage of using a TCP/IP or another standard communication protocols is that the number of connections into the gaming machine may be reduced. For example, in  FIG. 3 , the gaming machine  300  is connected to the network  140  via connection  380  and is connected to network  145  using connection  381 . The two connections may be used because the server  350  and server  355  use different connection hardware in their respective networks  140  and  145 . Using the TCP/IP communication protocol or some other standard communication protocol, one connection may be used to communicate between the gaming machine  300 , the two networks  140  and  145  and devices on the networks including servers  350  and  355 . In addition, one communication protocol may be used to communicate with a single server providing multiple services. For example, the server  350  may provide accounting services, player tracking services and progressive game services.  
         [0049]     The three gaming machines  300 ,  301 , and  302  are each connected to servers  350  and  355  via the network connections  140  and  145 . The networks  140  and  145  may be comprised of fiber optic connections, copper Ethernet connections, wire-less connections or any combinations thereof of the three types of connections. In addition, the networks may include additional equipment needed for communication with each server including concentrators and translators. The networks  140  and  145  may be a local area network usually located within one location such as a casino including a casino area network, a bonus game network, or a cashless system network or a wide area network connecting many physical locations such as a wide area progressive network. The networks  140  and  145  may be separate from one another or connected in some manner.  
         [0050]     One advantage of utilizing player tracking software to perform player tracking services versus using a separate hardware player tracking unit relates to the maintenance of the player tracking system which includes the gaming machines and the servers. When an old server is replaced in the player tracking system with a new server using a different communication protocol than the communication protocol used by the old server and a separate hardware player tracking unit is used, a new hardware player tracking unit may have to be installed in each gaming machine to allow communications with the new server. For a large number of gaming machines, the maintenance time and cost required to replace a large number of hardware player tracking units may be significant. Using player tracking software to communicate with a new server, a new communication protocol may be loaded from the binary database without changing the hardware in the gaming machine. The gaming machine may be directed to use the new communication protocol by changing a configuration file within the gaming machine  300 . The binary database  365  may already contain the communication protocol needed to communication with the new server or the new communication protocol may be easily downloaded into the binary database  365  from a portable storage device or over the network connections into the gaming machine  300 . Thus, the cost and maintenance time associated with installing a new server may be significantly reduced using player tracking software instead of using player tracking hardware.  
         [0051]     As another example, when a hardware player tracking unit is used, to upgrade the card reader  315  or install a new card reader  315 , each player tracking unit be may have to be upgraded or replaced in each gaming to accommodate the new card reader  315 . Again, for a large number of gaming machines, the maintenance time and cost to replace or upgrade a large number of hardware player tracking units is significant. Using player tracking software, a device driver and a device interface to operate and communicate with the new card reader may be loaded from the binary database without changing the hardware in the gaming machine. Thus, the cost and maintenance time associated with installing a new card reader may be significantly reduced using player tracking software instead of using player tracking hardware.  
         [0052]     Various hardware and software architectures may be used to implement this invention.  FIG. 4  is a block diagram depicting one. suitable example of gaming machine software elements in a gaming machine with a software player tracking unit. The gaming machine software  401  is connected to the physical devices  492  which may be used to obtain player tracking information and provide player tracking and other related services. As described with reference to  FIG. 3 , the software player tracking units are loaded into the memory of the master gaming controller at the time of initialization of the gaming machine.  
         [0053]     The main parts of the gaming machine software  401  are communications protocols  410 , a gaming system  415 , an event manager  430 , device interfaces  455 , and device drivers  459 . The device drivers  459  communicate directly with the physical devices including a monitor  493 , a key pad  494 , a display  496 , a card reader  498  or any other physical devices that may be used to provide player tracking or other related gaming services. The device drivers  459  utilize a communication protocol of some type that enable communication with a particular physical device. The device driver abstracts the hardware implementation of a device. For example, a device drive may be written for each type of card reader that may be potentially connected to the gaming machine. Examples of communication protocols used to implement the device drivers  459  include Netplex 460, USB 465, Serial 470, Ethernet 475, Firewire 485, 1/0 debouncer  490 , direct memory map, serial, PCI  480  or parallel. Netplex is a proprietary IGT standard while the others are open standards. For example, USB is a standard serial communication methodology used in the personal computer industry. USB Communication protocol standards are determined by the USB-IF, Portland, Oregon, http://www.usb.org.  
         [0054]     The device drivers may vary depending on the manufacturer of a particular physical device. For example, a card reader  498  from a first manufacturer may utilize Netplex 460 as a device driver while a card reader  498  from a second manufacturer may utilize a serial protocol  470 . Typically, only one physical device of a given type is installed into the gaming machine at a particular time (e.g. one card reader). However, device drivers for different card readers or other physical devices of the same type, which vary from manufacturer to manufacturer, may be stored in memory on the gaming machine. When a physical device is replaced, an appropriate device driver for the device is loaded from a memory location on the gaming machine allowing the gaming machine to communicate with the device uniformly.  
         [0055]     The device interfaces  455 , including a key pad  435 , a display  440 , a card reader  445 , and a monitor  450 , are software units that provide an interface between the device drivers and the gaming system  415 . The device interfaces  455  may receive commands from the software player tracking unit  424  requesting an operation for one of the physical devices. For example, the software player tracking unit  424  may send a command to the display interface  440  requesting that a message of some type be displayed on the display  496 . The dashed arrow from the software player tracking unit  424  to the device interfaces  455  indicates a command being sent from the software player tracking unit  424  to the device interfaces  455 . The display interface  440  sends the message to the device driver for the display  496 . The device driver for the display communicates the command and message to the display  496  allowing the display  496  to display the message. The device interfaces  455  also receive player tracking events from the physical devices. The device driver can a device routinely for input or preferably is notified via an interrupt signal. For example, when a card containing player tracking information is inserted into the card reader  498 , the card reader device interface  445  receives a message via one of the device drivers  459  indicating the card has been inserted into the card reader  498 . When using the interrupt method, the message is sent directly to the card reader device interface  445 . When using the polling method, the message is sent in response to a query by the card reader device interface such as “has a card been inserted?” Typically, the device drivers  459  do not perform any high level event handling.  
         [0056]     The card-in message is a player tracking event. Other examples of player tracking events which may be received from one of the physical devices  492  by a device interface, include 1) Main door/Drop door/Cash door openings and closings, 2) Bill insert message with the denomination of the bill, 3) Hopper tilt, 4) Bill jam, 5) Reel tilt, 6) Coin in and Coin out tilts, 7) Power loss, 8) Card insert, 9) Card removal, 10) Promotional card insert, 11) Promotional card removal, 12) Jackpot and 13) Abandoned card. In addition, other types of events, besides player tracking events, may be received by the device interfaces  455  because the physical devices  492  may be shared by applications other than player tracking.  
         [0057]     Typically, the player tracking event is an encapsulated information packet of some type posted by the device interface. The player tracking event is created when input is detected by one of the device interfaces  455 . The events are distributed through a queued delivery system which is described below in more detail (See Event Manager  430  and Event Distribution  425 ). Each player tracking event has one source. For example, as described above, a card-in player tracking event is generated when a player tracking card is inserted into the card reader. However, the player tracking events may be distributed to more than one destination. In this manner, an event differs from a device command or a device signal which is typically a point to point communication such as a function call within a program or interprocess communication between processes.  
         [0058]     Each player tracking event contains a standard header with additional information attached to the header. The additional information is typically used in some manner at the destination. For example, the card-in player tracking event may contain a players name which may be sent to a server outside of the gaming machine.  
         [0059]     A player tracking event may be received by the device interfaces  455  by polling or direct communication. The solid black arrows indicate event message paths between the various software player tracking units. Using polling, the device interfaces  455  regularly send messages to the physical devices  492  via the device drivers  459  requesting whether an event has occurred or not. For example, the card reader  445  device interface may regularly send a message to the card reader physical device asking whether a card has been inserted into the card reader. Using direct communication, an interrupt or signal indicating a player tracking event has occurred is sent to the device interfaces  455  via the device drivers  459  when an player tracking event has occurred. For example, when a card is inserted into the card reader, the card reader  498  may send a message to the device interface for the card reader  445  indicating a card has been inserted.  
         [0060]     An advantage of using device interfaces  455  is that the gaming system software  415  may be isolated from the device driver software  459  such that changes in the device driver software do not affect the gaming system software  415  or even the device interface software  455 . For example, the player tracking events and commands that each physical device  492  sends and receives may be standardized so that all the physical devices  492  send and receive the same commands and the same player tracking events. Thus, when a physical device is replaced  492 , a new device driver  459  may be required to communicate with the physical device. However, device interfaces  455  and gaming machine system software  415  remain unchanged. Thus, the physical devices  492  utilized for player tracking services may be easily exchanged or upgraded with minimal software modifications. In the case where the software device driver is known and stored in memory at some location on the gaming machine for the exchanged or upgraded physical device, the new software device driver is loaded into memory for the new physical device and the old device driver for the old physical device is removed from memory.  
         [0061]     Once a device interface  455  has received a player tracking event or some other event from a physical device  492  the event is posted to the event manager. The event manager is typically a shared resource that is utilized by all of the software applications in the gaming system  415  including the virtual player tracking system  424 . The event manager evaluates each event to determine whether the event contains critical information that is protected from power hits on the gaming machine. Events containing critical information may be sent to the Non-volatile memory manager  429  for storage in non-volatile memory. The non-volatile memory manager  429  may also be shared by other applications.  
         [0062]     Since the source of an event, which may be a device interface or a server outside of the gaming machine, is not usually directly connected to the event destination, the event manager acts as an interface between the event source and the one or more event destinations. After the source posts the event, the source returns back to performing its intended function. For example, the source may be a device interface polling a hardware device. The event manager processes the event posted by the source and places the event in one or more queues for delivery. As an example, the event manager may prioritize each event and place it in a different queue depending on the priority assigned to the event.  
         [0063]     After an event is received by the event manager  430 , the event is sent to event distribution  425  in the gaming system  415 . Event distribution  425  broadcasts the event to the software units that may operate on the event. For example, when a player enters a player tracking identification code using the key pad  494 , this event may arrive at software player tracking unit after the event has passed through the device drivers  459 , the key pad device interface  435 , the event manager  430 , and the event distribution  425 . After receiving an event, the player tracking software  424  evaluates the event and determines whether a response is required to the event. Thus, one function of the player tracking software is as a player tracking event evaluator. In response to an event, the software player tracking unit may 1) generate a new event and post it to the event manager  430 , 2) send a command to the device interfaces  455 , 3) send a command or information to the player tracking communication protocol  400  so that the information may be sent outside of the gaming machine, 4) do nothing or 5) perform combinations of 1),2) and 3).  
         [0064]     Events may be distributed and evaluated by more than one software unit within the gaming system  415 . For example, when a player tracking event occurs it may be sent to the software player tracking unit  424  which evaluates the event and in parallel the event may be sent to the communication manager  420  which sends the events to the communication protocol software  410 , including the wide area progressive protocol and the player tracking protocol  400 . As another example, when the card reader inputs a card for an electronic cash transaction, the event may be sent to the software player tracking unit  424  which evaluates the event and in parallel the event may be sent to the bank manager  422  which evaluates the event. Additionally, the software units within the gaming system  415  including the communication manager  420  and the bank manager  422  may be shared by other applications other than the software player tracking unit  424 . For example, when a coin is entered into the gaming machine using the coin acceptor, an event indicating a coin has been accepted by the coin acceptor may be posted to the bank manager  422 .  
         [0065]     The communication protocols typically translate information from one communication format to another communication format. For example, a gaming machine may utilize one communication format while a server providing accounting services may utilize a second communication format. The player tracking protocol translates the information from one communication format to another allowing information to be sent and received from the server. Additionally, the server outside the gaming machine may send events via the player tracking protocol  400  which are sent to the event manager.  
         [0066]     Many different communication protocols may be stored in memory on the gaming machine allowing the gaming machine to communicate with many different devices outside the gaming machine. Typically, these protocols are loaded into the gaming system software  401  when the gaming machine is initialized. However, communication protocols may also be loaded and unloaded from the gaming machine system software while the gaming machine is operating.  
         [0067]     Two examples of communication protocols are wide area progressive  405  and player tracking protocol  400 . The wide are progressive protocol  405  may be used to send information over a wide area progressive network and the player tracking protocol  400  may be used to send information over a casino area network to a server, as described with reference to  FIG. 3 , outside of the gaming machine. The server may provide a number of gaming services including accounting and player tracking services. Virtual services such as these may also share the same communications medium i.e. a common network and connection scheme to the gaming machine.  
         [0068]     The power hit detection software  428  monitors the gaming machine for power fluctuations. The power hit detection software  428  may be stored in a memory different from the memory storing the rest of the software in the gaming system  415  or it may stored in the same memory. When the power hit detection software  428  detects that a power failure of some type may be eminent, an event may be sent to the event manger  430  indicating a power failure has occurred. This event is posted to the event distribution software  425  which broadcasts the message to all of the software units and devices within the gaming machine that may be affected by a power failure.  
         [0069]     The various software elements described herein (e.g., the device drivers, device interfaces, communication protocols, etc.) may be implemented as software objects or other executable blocks of code or script. In a preferred embodiment, the elements are implemented as C++ objects. The event manager, event distribution, software player tracking unit and other gaming system  415  software may also by implemented as C++ objects. Each are compiled as individual processes and communicate via events and/or interprocess communication (IPC).  
         [0070]      FIG. 5  is a flow chart depicting a method for sending an event to a software player tracking unit. In step  500 , the player tracking hardware detects an event. For example, a card reader determines a card has been inserted into the card reader. In step  505 , the player tracking hardware communicates the event to the player tracking software device driver. The device driver provides the interface between the gaming machine software and the physical device. In step  510 , the player tracking device driver sends the event to the player tracking device interface. The player tracking device interface is the interface between the device drivers and the gaming system. The player tracking device interface may be standardized allowing different device drivers to be utilized without modifying the software for the player tracking device interface.  
         [0071]     In step  515 , the player tracking device interface sends the event to the event manager. In step  520 , the event manager determines whether the event contains critical information. Typically, critical information is protected from power failures or other situations that may cause the gaming machine to lose the critical information. In step  525 , when the event contains critical information, the critical information is stored to a non-volatile memory device. In step  530 , the event manager sends the event to event distribution. In step  535 , the software player tracking unit receives the event from the event distribution software. For example, an event indicating a card containing player tracking information was inserted into the card reader may be received by the software player tracking unit.  
         [0072]      FIG. 6  is a flow chart depicting a method for providing player tracking services using a software player tracking unit. In step  600 , the software player tracking unit receives an event from the event distribution software. In step  605 , the software player tracking unit evaluates the event and may also operate on information contained in the event.  
         [0073]     In steps  610  and  620 , the type of action generated by the software player tracking unit is evaluated. The player tracking unit may generate a new event, send information or a message to a device outside the gaming machine, send a command to a physical device within the gaming machine or combinations of each of the preceding events such as generating a new event and sending a command to a physical device within the gaming machine. The order that the events in steps  610  and  620  are evaluated is typically arbitrary. After evaluating and operating on the old event, a new event may be created and sent to the event manager in steps  610  and  625 . In steps  615  and  630 , after evaluating and operating on the event, the software player tracking unit may send information to the player tracking protocol allowing the information to be sent to a device, including a server, located outside of the gaming machine.  
         [0074]     In step  635 , the software player tracking unit sends a command to the device interface. For example, the player tracking unit may send a command to the display or monitor device interface requesting the display hardware or monitor hardware to display a message. In step  640 , the device interface sends a command to the device driver that communicates with the physical hardware to which the command from the virtual player tracking software is directed. In step  645 , the player tracking device driver sends the command from the software player tracking unit to the player tracking hardware. In step  650 , the player tracking hardware receives the command from the device driver. In step  655 , the player tracking hardware performs the operation or operations directed by the command from the virtual software player tracking unit. For example, the command may have information that is displayed on the monitor.  
         [0075]      FIG. 7  is a flow chart depicting a method for initializing a gaming machine with a software player tracking unit for one embodiment of the present invention. In general, the number of steps and types of steps may vary depending on the implementation. In the figure, possible steps used to initialize a gaming machine with a software player tracking unit are described. In step  700 , the power to the gaming machine is turned on. In step  705 , the master gaming controller loads configuration files which allow the gaming machine to determine what software needs to be loaded into the gaming system. For example, the configuration file might indicate the device drivers needed to communicate with the physical devices connected to the gaming machine. As another example, the configuration files might contain information regarding the operational requirements of the gaming machine in a particular jurisdiction.  
         [0076]     In step  710 , critical devices are loaded into the memory of the master gaming controller. The critical devices support error conditions that might occur on the gaming machine and do not typically post events. In step  715 , the player tracking devices including, the card reader, display and key pad, are loaded. In step  720 , the resource managers are loaded. As described with reference to  FIG. 4 , the bank manager and communication manager are examples of resource managers. In step  725 , the player tracking device interfaces are loaded. For example, device interfaces for a card reader, display and key pad may be loaded. In step  730 , the software player tracking unit is launched allowing the gaming machine to perform player tracking services. In step  735 , the communication protocols allowing the gaming machine to communicate with an outside device such as a server are loaded and launched.  
         [0077]     Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. For instance, while the gaming machines of this invention have been depicted as having top box mounted on top of the main gaming machine cabinet, the use of gaming devices in accordance with this invention is not so limited. For example, gaming machine may be provided without a top box.