Advanced player tracking system

The Player Tracking System (PTS) is already well renowned in the Casino industry. It can track the activity of users and monitor the performance and operation of gaming machines. The recognized downside of such a system is that users usually do not want to be tracked, mostly, because they feel that the functioning of the gaming machine might be tampered with to minimize their winning potential. PTS has to offer a variety of services to stimulate a user to use the membership card. In this paper, we propose an Advanced PTS that simpliﬁes some tedious tasks, automates conversion of bonus points to playing credits, displays jackpot counters, introduces the gaming machine reservation system, provides cashless transfers, delivers interactive personalized awards and promotions with prize winning games, enables ordering of refreshments from the gaming machine, and provides some additional innovative features. Its use reduces the workload of casino employees and enables the casino management team to access conﬁguration of the system and analytical data with the use of a web browser from all desired locations and devices. The biggest installation of the presented APTS manages more than 400 gaming machines, and is well-received by the users.


INTRODUCTION
The Player Tracking System (PTS) is already well renowned in the casino industry. It can track the activity of users and monitor the performance and operation of gaming machines. Its main objective is to provide users with better experience by automating some tedious tasks and providing additional entertainment with personalized and interactive content delivery [1].
Most of the existing systems identify the user by a personal membership card that is inserted into the integrated card reader during the use of the gaming machine. The system can track games that were played [2] and store the collected data in a database at the Central Server (CS). One of the well-received means is the use of the RFID contactless membership cards [3,4,5]. Acquired data can be used to classify users to membership levels, award them with bonus points and other gifts, e.g., coupons for discounted meals, drinks, shows, rooms, etc. PTS helps to entice users to return to the casino [6].
The recognized downside of such a system is that users usually do not want to be tracked. Mostly, because they feel that the functioning of the gaming machine might be tampered with to minimize their winning potential. Therefore, the system has to offer a variety of services to stimulate a user to use the ID card. Experience shows that awarding users with bonus points and gifts is not enough. Players should be stimulated by various additional benefits.
In this paper we propose an Advanced PTS (APTS) that implements innovative approaches to stimulate users to use membership cards, provides interactive delivery of awards and promotions, reduces interaction with Journal Homepage: http://iaescore.com/journals/index.php/IJECE IJECE ISSN: 2088-8708 1419 the staff, and provides some additional innovative features. The presented APTS is already installed at various casinos and is well-received by the users [7]. After careful consideration, we have decided to focus on the following features: APTS should implement a web frontend that will enable a casino management team to access configuration of the system and analytical data with the use of the web browser from all desired locations and devices.
Personalization of services is possible with the use of RFID contactless membership cards. Display and user input should be provided by a modern touchscreen interface.
A welcome benefit for most users is the possibility to convert bonus points to playing credits directly at a gaming machine without third-party assistance [6]. Point Redeem functionality converts player bonus points to playable credits directly at the gaming machine. This greatly reduces interaction with the staff and speeds up the process. Users are classified to membership levels based on the number of acquired points. A number of acquired points in a specified time period might be the basis for special offers. Therefore, the system has to enable the user to check the amount of acquired points -current, lifetime, and in a specific time period (last year, month etc.). Lifetime points present the sum of all acquired points since the user has joined the casino's Loyalty Program.
Cashless operation enables a user to open a virtual bank account at the casino. The membership card has similar functionality as an ATM card. Users can transfer money from their virtual account to the gaming machine or vice versa. Gaming machines distinguish between three types of credits: Cashable, restricted promo, and non-restricted promo. We support these with three sub accounts [8]. We provide additional protection from the misuse of the membership card by the Personal Identification Number (PIN).
Some users want to get some fresh air or go for a short walk, but they do not want some other user to occupy their favorite gaming machine. According to the membership level, casinos can grant user the power to reserve a machine under certain conditions and for a limited time [9]. Slot Reservation functionality provides reservation of the machine for a limited time. The time period, as well as other conditions which a user has to meet to be allowed to use this option, have to be configurable.
Some users can entertain themselves at a gaming machine for hours at a time. During these extended periods, a user will likely desire some refreshments [10]. Personal Attendant is a simple functionality for calling casino attendant if help is needed or the user desires to order some snack. Furthermore, the user should be able to place an order directly from the gaming machine. This also reduces greatly the workload of the attendants, who just deliver ordered items and do not have to collect orders first.
Casinos provide promotional materials to users, but most of them are never used, even if they are targeted at the specific user group. APTS should enable delivery of promotions directly to the gaming machine. Individual preferences of the membership card user can be taken into account, which is currently not supported by the known systems [11]. In this paper we introduce Bounce Back Bonus, Jackpot Check, and Feedback Promotions.
During the development we have followed trends in the user interface design and best coding practices with focus on the code readability and with future extensions in mind.
The structure of the paper is as follows. In Section 2 Results and Discussions are given. In Section 2.1 we propose a scalable hardware platform. In Section 2.2 we present software solutions, including implementation of the Slot Accounting System, introduction of sessions, some new features, and development of player tracking module add-on for the gaming machines. The paper concludes with Section 3 where we give an overview and outline the possible directions for the future. ISSN: 2088-8708

RESULTS AND DISCUSSIONS
In this section solutions for proposed features are presented and discussed. First, we introduce the hardware platform of the proposed system. It is followed with the software solutions for the proposed innovative features.

Hardware Platform
To overcome the detected shortcomings of the existing systems, we have decided to propose a scalable hardware platform. With the distributed functionality approach we strive to support future upgrades at minimal costs to the customers. Figure 1 presents the basic building blocks of the APTS platform. The system is controlled by a Central Server which is managed with the use of the web fronted from the selected IP addresses. The CS contains a database and enables the casino management team to access the system's analytical data and available configuration tools. No other unit is accessible via the Internet, thus the Central Server requires two network adapters, the first for the Internet, and the second for the Floor Network.
The Floor network is a local area Ethernet network and connects the Central Server to an optional JackPot Controller (JPC) and several Box Servers (BS). When a change of settings is detected, it is redistributed to the JPC and BS by a special service.
JPC manages various jackpot counters that are increased based on the activity of the gaming machines that are assigned to the counter. Each counter has minimum and maximum values.
The majority of the system logic is implemented at the Box Servers. Each BS usually manages up to 8 USB-RS422 Hubs, while each of them provides an interface to 6 gaming machines. Therefore, BS can provide access to 48 gaming machines. Usually, casinos assign up to 20 gaming machines to each box. The number of used BS is limited only by the capabilities of the network and CS, which is not a real concern for any practical implementation. The biggest installation of the APTS managed more than 400 gaming machines.
APTS has to establish a connection to each gaming machine. It has to acquire information about games, statuses, and events executing on the machine, and provide means for the introduction of new features. We have researched available approaches, and have decided to implement the Slot Accounting System Protocol (SAS) that is supported by most gaming machine manufacturers [8].
Each gaming machine is extended with the Interface Board (IB) that connects to USB-RS422 Hub. The IB connects to a gaming machine with at least two interfaces: Connection to the gaming machine's logic board via RS232, and a connection to switches that detect tampering with the doors and failure of the primary power. To be able to monitor digital inputs non-stop and trigger alarms in the case of misconduct, it has to be powered independently from the primary power supply of the gaming machine. We have decided to provide power over the RS422 bus. Connection to additional functional units, like Bill Acceptor, Coin Acceptor, Ticket Printer are possible. IB supports up to three serial ports, 8 digital inputs, and an I 2 C bus. Serial port signal levels, RS232  IJECE   ISSN: 2088-8708  1421 or TTL, are selectable by jumpers. Additionally, IB provides the means to extend the gaming machine with custom-made units, like Player Tracking Module (PTM) that we have developed as a user interface. The presented implementation of the PTM is based on an 8-bit PIC18F46J11 microcontroller [12] that is connected to the I 2 C bus. PTM includes a capacitive touchscreen and RFID card reader. The resolution of the touchscreen is 480x272px. Images, fonts, texts and other files being shown on display are stored on the internal SD card. Files can be copied directly to the card or uploaded via the serial interface.
RFID communication between membership card and the reader is achieved without galvanic contacts that are prone to faulty contacting, dirt, unidirectional insertion, etc [13]. For the convenience of the user, the card reader provides a special slot for the membership card. After the insertion of the membership card, ID and a corresponding Cyclic Redundancy Check (CRC) is read every two seconds until the card is removed. There were no major problems detected with this approach, but, occasionally, the reader failed to read the ID. False detection of the card removal presented an inconvenience that we have tackled with an additional IR LED transmitter-receiver pair. This approach has improved the operation, but accumulated dirt might interfere with the card detection on very rare occasions.

Software Solutions
Software solutions were developed for CS, BS, and PTM. User Interface for the Casino Management Team is designed as a web application with HTML5, CSS3, PHP, jQuery, JavaScript, JSON, and Ajax. Data is stored in an Oracle database 11g [14]. Software solutions for CS are beyond the scope of this article. We will focus on the functionalities that are implemented on the Box Server and Graphical User Interface (GUI) for the Player Tracking Module. After some consideration, the platform-independent programming language Qt was selected for the development of the Box Server software. Detailed documentation and many examples are readily available [15,16,17]. GUI for the PTM was developed with the use of dedicated environment eGFX Designer.

Slot Accounting System
SAS protocol defines a communication interface between gaming machine and system host. By definition, a system host is everything that is not part of the gaming machine. It can be interfaced to a host either by daisy chaining multiple gaming machines to a single collection unit, or by connecting single machines to smart interface boards. To achieve higher data rates per gaming machine and avoid addressing issues, we have decided for the later [8]. The Slot Logic Board connects to the IB with a 19,200 baud RS232 connection as shown in Figure 1. The 11-bit data packet consists of one start bit, eight data bits, a ninth wakeup bit, and one stop bit.
Communication is initiated by sending messages using general and long polls. General polls are used to request event exceptions, such as: Game played, cashout button pressed, cashbox full, etc. Long polls are used to request basic information (type R), to send information and configure the gaming machine (type S), to configure or retrieve information for the specific game (type M), or pools might be sent to multiple gaming machines simultaneously (type G) [8].
Data is gathered at regular intervals with general and long polls. The interval is configurable. The first message of the general pool includes the machine's address OR-ed with 0x80 and the wakeup bit. Gaming machines use the wakeup bit to determine whether the received byte is the first byte of a new message or an additional byte of the current message. If no exceptions are pending, gaming machine responds with 00 (no activity), otherwise it sends corresponding exception code [8].
Additional data is requested by long polls, e.g., Send current credits, Send meters, Send selected game number. First message of the long poll includes machine's address and the wakeup bit. The one-byte command might be followed by several data bytes. The last byte of the long pool is CRC. Because some machine manufacturers do not support all pools defined by the SAS, a list of available pools is configurable.

Sessions
We support two types of sessions. The General Session (GS) starts when the user authorizes with the membership card as shown in Figure 2, a. If the card is not inserted, Uncarded Session (US) is started. Each session has a unique session ID.

ISSN: 2088-8708
To make a detailed analysis of the user's actions on a gaming machine possible, all data has to be recorded. During the GS, detailed session data are polled from the gaming machine. Acquired information is then sent to service running on the Casino Server and data are saved to database as shown in Figure 2, b. For this, XML formatted strings are sent over the TCP as shown in Figure 3. General Session terminates if:  If a user forgets to insert the membership card Uncarded Session is started. It starts every time no other session is running, and credits at the gaming machine increase. The user can load credits by inserted money, a purchased ticket, or any other supported way. US closes when credits drop to zero or after predefined time of inactivity.
In some cases, we can link games that were played within the US to the user. If a membership card is inserted during such session, a new General Session is established and the session ID of the closed US is used to link data to the user. If GS was closed due to the inactivity timeout, US is started. Because credit is not zero, a user may play games even if the membership card is removed. These games are played within US, but can be linked to the user, too.
Next, we present some innovative functionalities of the APTS.

Slot Reservation
The reservation of the gaming machine (Slot Reservation) can be implemented with the SAS Shutdown Command. It does not actually shut down the gaming machine, but only makes it unplayable. Slot Reservation is triggered by selecting a corresponding menu action at the PTM. The system transmits a long poll 0x01, Shutdown IJECE ISSN: 2088-8708 1423 (Lock Out Play). The gaming machine responds with 0x01-0x7F for ACK or 0x81-0xFF for NACK. Value of the ACK corresponds to the address of the gaming machine, while at NACK, the address is OR-ed with 0x80 [8].
During the testing we have found that gaming machines from different manufacturers do not respond in the same manner. If a gaming machine reservation request is sent during a game, some gaming machines accept the reservation and it is executed after the game is completed, others deny reservation. To solve this issue we have implemented a command buffer where commands wait until specific conditions are met. In the case of the Shutdown Command, it is not transmitted to the gaming machine until the Game End exception is received. Usually games are completed in a few seconds or less. During this period we notify the user with an appropriate message on the touchscreen.

Bounce Back Bonus
Bounce Back Bonus (BBB) helps to stimulate a user to visit the casino as soon as possible. The user is awarded with credits based on the amount spent during the last visit. Players are allowed to redeem the award only a couple of days after the last visit. The exact time period, as well as the amount, is configurable. This is best explained by an example.
A player visits the casino on Monday and spends e100. The casino awards the user with 5% BBB if they visit one of their venues in the next three days. The user will be able to redeem e 5 worth of playable credits if he/she returns not later than Thursday. Usually, the BBB amount is not a linear function of the spent amount, but casinos define different spending levels. Each level can have a different BBB amount.

Cashless
SAS defines cashless transfers within Advanced Funds Transfer (AFT) [8]. Everything is managed by the BS and stored on the CS. If Automatic Cashless Transfer is enabled for the user, the amount to be transferred is reserved on the CS. For each transfer BS notifies CS if the transfer was successful. If successful, the reserved amount is deducted from the user's balance, if not, the reservation is released. When the user removes the card, the reverse operation is performed and remaining money is transferred from the gaming machine back to the account. We should emphasize that the balance of the user is not stored on the card.
A player can always check his current balance, transfer selected amounts manually from and to the gaming machine, and enable Automatic Game Time Transfers (AGTT) to automate the transfer. If AGTT is enabled, and the amount of credits is below the defined minimum value, an additional predefined amount is transferred to the gaming machine as shown in Figure 2, a. These values can be configured on a per-user basis.

Feedback Promotions
Casinos want to award loyal users with additional gifts or benefits. Users do not visit a casino only to play, but also to be entertained. Thus, delivery of the awards has to be as entertaining as possible. Interactive Feedback Promotions upgrade simple promotional messages with user interaction. This might be a confirmation of the offer, or an entertaining game where users can earn additional awards.
Games can be nested into one another without practical limits. Money and amount of points can be fixed or set dynamically, based on the selected parameters, e.g., the amount of money that was spent in the last day. Money awards are uploaded to the used gaming machine, points are added to the user's point balance on the CS. If the award is material in nature, a coupon for picking it up is printed by the ticket printer.
We present two examples of such games, Pirate's Chest and Deal-No deal. Pirate's Chest is a game where the configured number of treasure chests are shown on the display. A player can select which one to open and win an award that might be inside. The user can win another game, a predefined amount of money, some playing points, or a gift, e.g., free meal, drink, jewelry, or another game.
In the game Deal-No deal the user is offered an award which can be accepted or rejected. If rejected, the user is offered another award that can be either of higher or lower value. The user can again accept or reject the offer. In every iteration the user is notified how many offers are left. The last offer can not be rejected. Most of the parameters, e.g., number of iterations, minimum and maximum award value, are configurable. ISSN: 2088-8708

Jackpot Check
Jackpot counters are managed by the Jackpot Controller. They are incremented for a specific percentage of the money spent on the gaming machines associated with each counter. Each counter can have different percentage settings. Each machine can contribute to multiple or no Jackpot counters, depending on its configuration.
While the counter approaches the maximum value, the probability of the jackpot increases accordingly. Therefore, users are eager to know the current value of all relevant counters. Usually, big displays are used to present the jackpot counters. The Jackpot Check feature sends a TCP request to the JP Controller for the last values of the counters and displays them on the touchscreen. This enables users to track relevant counters directly at the gaming machine.

Graphical User Interface
The GUI of the PTM consists of several predefined screens that can be grouped in playlists. Each screen and playlist can be customised by the customer. A great deal of customization is available. They can be configured for each individual user, but this is usually not the case.
In standby mode, the idle screen usually displays a casino logo and text: "Please, insert your card!". When a membership card is inserted, General Session starts and all necessary user information is read from the database. Next, screens are displayed that are part of the Intro playlist. Playlists define order and timings for the displayed screens. Intro Playlist supports two screens: Welcome Screen and Bounce Back Transfer. The Welcome Screen shows user's name, welcome message, and current number of points. On the Bounce Back Transfer screen the user can redeem his Bounce Back Bonus award. When Intro playlist is finished, the main menu screen is shown.
From the main menu the user can check and redeem his current, monthly, or absolute points. He can perform Cashless transaction, check current Jackpot values, call a personal attendant, order beverages or snacks, reserve the machine, and access basic profile settings. After an inactivity timeout, Idle playlist is displayed. It can include the following screens: Jackpot Values, Points Progress, Bounce Back Progress, and Bounce Back Notification. The Points Progress screen notifies the user how much more has to be spent to earn another point. Bounce Back Progress shows how much until he reaches the next award level. When a new award is achieved, the Bounce Back Notification screen is displayed. End Playlist is displayed when the playing session is closed. Theoretically, it can include any screen, but usually only Bounce Back Notification is appropriate.

CONCLUSION
Gaming technology markets are evolving faster than ever. There is a constant demand for advanced, intelligent, and attractive Player Tracking Systems.
In this article, we have presented an APTS which implements features that simplify some tedious tasks, reduce the workload of casino employees, and entertain the user. All features were well received by the users. Some of them were not part of the specification requirements and were added during the development. One of these is Uncarded Sessions, which turned out to be a very powerful tool, and still has potential for upgrades.
Feedback Promotions have almost unlimited potential for the creative presentation of the marketing material and additional entertainment of the user. However, implementation of complex games would require an upgrade of the 8-bit microcontroller. One of the possible solutions would be to use an ARM Cotex processor unit [18].