The invention concerns generally the technology of producing and executing application programs that have recreational value and involve playing and/or gambling. Especially the invention involves enabling swift and systematic generation of new recreational applications of said kind, as well as swift and systematic continuing development of existing applications.
A typical prior art recreational application program that involves a betting or gambling aspect is schematically represented inFIG. 1. Abetting engine program101 comprises the means for executing the program proper. It receives registration information and bets from players and delivers responses to players through aplayer interface102. Information about games is stored in agames database103, and about the odds of possible outcomes of such games in an odds database104 (which may be the same as the games database103). User accounts for registered players exist in anaccounts database105, and the bets played by the players are stored in a bets database106 (which may be the same as the accounts database105). The game organiser can start and end games, set and change the odds, and otherwise affect the operation of the recreational application program through anoperator interface107.
Playing a game of chance using the program architecture shown inFIG. 1 involves for example the following steps. A game organiser designs the rules of the game and the machine-readable instructions for following the rules and stores them in thegames database103. The game organiser also designs a user interface screen that informs a player about the games and its rules, and gives instructions about how to place a bet. This user interface screen is stored as a part of theuser interface102. When a player logs in, he follows the instructions and places a bet. Log data about the player's actions are stored in theaccounts database105, and the price of the bet is deducted from the player's account. The bet as such is stored in thebets database106. On the basis of the distribution of all bets stored for a particular game thebetting engine101 repeatedly calculates the odds and updates them in theodds database104. The outcome of the game becomes known either internally within the betting engine (e.g. if the game was a virtual process such as the electronic drawing of lots) or externally so that the game organiser feeds it in through theoperator interface107. The betting engine selects the winning bets, calculates their winnings and credits the accounts of the players that had placed them. It may spontaneously announce the results to the players through theuser interface102.
The drawback of such a prior art arrangement is its inflexibility. Basically each game has to be designed and programmed starting from scratch. Basic routines of the betting engine can be reused, if a “new game” is nothing more than a new betting subject, but this sets tight limitations to how the games can be formulated. Especially it would be difficult to realise fast, dynamically adaptive gaming opportunities using such a prior art arrangement.
An objective of the present invention is to present a method and a system for systematically generating and developing gaming applications. An additional objective of the invention is to present a method and a system for generating and developing dynamically adaptive gaming applications. A further objective of the invention is to present a method and a system for allowing the characteristics of a gaming application to be dynamically changed on the basis of unconsciously given input from a player. A yet another objective of the invention is to present a method and a system that would allow simulating and verifying a systematically generated new gaming application in a realistic and/or futuristic environment.
The objects of the invention are achieved by executing an event model in real time in order to represent the sequence of subevents in a target event, like a soccer game, car race or some other interesting event where a number of unpredictable minor subevents may occur. Simultaneously a gaming model is executed, which observes the developments that take place in the event model and looks for incidents that could constitute a gaming event. Additionally a player model can be parallelly involved, representing the actions of one or more players, which may be taken into account in the way in which the gaming events are made available for playing.
A method according to the invention is characterised by the features recited in the characterising part of the independent claim directed to a method.
The invention applies also to a system, which is characterised by the features recited in the characterising part of the independent claim directed to a system.
The invention applies also to a method for synthesizing a recreational application program for execution through players' terminals, with characteristic features as recited in the characterising part of the independent claim directed to such a method.
Additionally the invention applies to a computer program product for offering recreational application programs for execution through players' terminals, with characteristic features as recited in the characterising part of the independent claim directed to such a computer program product.
According to a first aspect of the invention there is a computer-executable process that can be designated as the event model. It is a systematic representation of a sequence of subevents that are likely to occur and that together constitute a larger scale event that is likely to raise the interest of a large group of players. However, beforehand it is not known exactly, what subevents will occur in which order in said larger scale event. The operation of the event model can be easily understood by considering the event model as a state machine, although the actual implementation thereof does not need to comprise one. According to the state machine consideration, pieces of input information obtained from the event trigger transitions between states in the event model. The actual event may exist in the real world, like a sports event, election or other events of general interest. Alternatively even the actual event may have partly or completely virtual existence, like a computer game played by a number of players through a network or a fully computer-simulated sequence of subevents with no direct human interaction. In the last-mentioned case the implementation of the event model may be even integrated to the virtual event.
According to a second aspect of the invention there is another computer-executable process that can be designated as the gaming model. Its task is to run simultaneously with the event model, observe what happens in the event model and use its observations to consider, what kinds of games could be matched to the recent developments in the event model. For example, if the event model enters a state according to which a certain subevent is likely to occur in the immediate future, such subevent having two or more well-defined possible outcomes, the gaming model may respond by launching a game in which players may place bets on all possible outcomes of the subevent during the short time when the actual outcome is still unknown.
According to a third aspect of the invention there is yet another computer-executable process that can be designated as the player model. Various tasks can be given to the player model. According to one approach, a task of the player model is to predict, how a typical player will react to a certain subevent that occurs in an event. Such a prediction may then be used to e.g. affect the way in which games are made available to the players. Properly applying a player model may assist in enhancing the emotional responsiveness of the gaming system to the players.
The event model, gaming model and player model may each have a library of routines at their disposal. An event model may be a combination of event model routines, stored in an event models library and tailored to match a certain specific event. A gaming model may use a library of possible gaming schemes, which it matches to the subevents that materialise in the event model. A player model may refer to a library of statistically compiled descriptions of how players have been known to react to certain situations.
For linking together the models explained above, a coordinating entity is needed. In this patent application we designate such a coordinating entity as the implementing technologies engine. It too may have the appearance of a state machine, although also other kinds of implementations are possible. The implementing technologies engine typically comprises e.g. interfacing routines for linking together the operation of various mutually different devices and operating systems. It may also comprise supervisory routines for ensuring smooth operation, e.g. by preventing contradictory situations where a rapidly deployed game would erroneously be made available for playing with terminals the use of which involve unacceptably long delays. Most advantageously the implementing technologies engine has access to an implementing technologies library where various previously created routines have been preparatorily stored.
For allowing a game organiser to exercise control over the operation of the system, it most advantageously comprises also a control interface.
The novel features which are considered as characteristic of the invention are set forth in particular in the appended claims. The invention itself, however, both as to its construction and its method of operation, together with additional objects and advantages thereof, will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings.
The exemplary embodiments of the invention presented in this patent application are not to be interpreted to pose limitations to the applicability of the appended claims. The verb “to comprise” is used in this patent application as an open limitation that does not exclude the existence of also unrecited features. The features recited in depending claims are mutually freely combinable unless otherwise explicitly stated.
FIG. 1 illustrates a prior art solution for a recreational application program,
FIG. 2 illustrates certain concepts related to the invention,
FIG. 3 illustrates an exemplary lottery part with connections,
FIG. 4 illustrates exemplary ways of obtaining inputs from a real-life event,
FIG. 5 illustrates an exemplary event model state machine,
FIG. 6 illustrates another exemplary event model state machine,
FIG. 7 illustrates an exemplary gaming model state machine,
FIG. 8 illustrates another feature of an exemplary gaming model state machine,
FIG. 9aillustrates an aspect of an exemplary player model state machine,
FIG. 9billustrates another aspect of an exemplary player model state machine
FIG. 10 illustrates schematically an aspect of an implementing technologies engine,
FIG. 11 illustrates schematically the systematic development and synthesis of a new lottery and
FIG. 12 illustrates schematically a composition of a gaming technology server.
CONCEPTS AND DESIGNATIONSFIG. 2 illustrates the use of certain concepts and designations that will be used in this description. Alottery201 is a multi-user gaming entity which offers a large number of players the possibility of taking part in a process where placing stakes in favour of the possible outcomes of certain well-defined future subevents may result in earning winnings. Said well-defined future subevents take place in avirtual event202,semivirtual event203 and/or a real-life event204. Of these thevirtual event202 is typically a process executed in a computer or a number of computers, where simulated subevents take place in a virtual environment. A non-limiting example of a virtual event is a simulated car race, in which “cars” only exist as computational processes in the memory of a computer, and their propagation through a “track” is controlled by virtual “drivers” that also themselves are computational processes. Asemivirtual event203 is a computer-executed process that depends directly on the way in which a number of users utilise their computer terminals: for example a virtual car race where the “drivers” are computer users that give control commands in essentially real time by using input means such as keypads, joysticks or steering wheel and pedal sets. The real-life event204 is typically a sports event, a musical contest, an election or other real-life occasion that raises general interest and involves subevents that may occur arbitrarily (like corners in a soccer game) and may or may not lead to certain results (like scoring a goal).
What an individual player sees is thegame interface205 of agame206. Thegame206 as such can be seen as a subset of the whole concept oflottery201. It should be noted that the designation “player” means in this patent application the players that participate in a lottery, while the persons the movements and actions of which constitute a real-life event204 in sports (like the members of a soccer team) are designated as “sportsmen”. The general designation “third party agents” inFIG. 2 encompasses parties that have an effect on the outcome of an event but do not participate in a lottery. A non-limiting list of exemplary third party agents includes sportsmen, election candidates and computer users that do not themselves place stakes but only act e.g. as drivers of a semivirtual car race, are illustrated at the lower part ofFIG. 2.
The entities illustrated inFIG. 2 have mutual interactions. Starting from the right, it is usually imperative that alottery201 must not have any effect on how a real-life event204 is proceeding; on the other hand thelottery201 needs someinput211 from the real-life event, like the information that a goal was scored. Similarly avirtual event202 and asemivirtual event203give input212 and213 to thelottery201, concerning the proceeding of subevents: e.g. what were the lap times of the virtual cars or where and when did a collision occur. In the case of virtual and semivirtual events it may be acceptable to let thelottery201 haveinfluence214 or215 over the event. As an example, the relative number of players from different countries that have placed bets in advance for a car race may decide, which country's racing track will be selected for the race, or the players may vote, how difficult the track should be.
Continuous bi-directional exchange ofinformation216 between a player's game and thesemivirtual event203 is essential at least concerning those occasions where the player himself is also a participant in the semivirtual event, e.g. drives a virtual car. Even if the player only participated as a “spectator” in avirtual event202, it is usually advantageous to arrange for a bidirectional exchange ofinformation217, in order to convey real-time information from the virtual event to the player's terminal, and to let the player give direct inputs like cheering to the virtual event. If only one direction is selected for conveying information, it is most naturally means conveying information from the event to the player's terminal.
When a player is playing agame206,information218 about his actions is conveyed to thelottery201 which records them e.g. as announcing the player's intention to place stakes. Thereturn direction information219 from thelottery201 to thegame206 includes (but is not limited to) declaring new games, distributing game-related information like odds, and announcing results of unraveled subevents as well as the winnings earned by properly placed bets.
Overview of Lottery PartFIG. 3 illustrates an advantageous architecture for alottery part201. In the following we describe its parts and the tasks of the various parts as well as their interactions on a general level. A more detailed description of the most important parts will follow later in this text.
As an important part thelottery part201 comprises anevent model301, which is a real-time process designed to represent the sequence of subevents that will take place in a virtual, semivirtual or real-life event. The invention is not particularly limiting concerning the resolution or granularity at which the developments of an event are modeled in theevent model301; this subject will be discussed in more detail later.
Another section of thelottery part201 is agaming model302. The task of agaming model302 is to follow the developments that take place in theevent model301 and to react appropriately. Since theevent model301 is a machine-executable representation of what is actually taking place in an event, we may say that thegaming model302 observes the course of said event through the “filter” or systematic representation offered by theevent model301. The advantage gained therethrough is that thegaming model302 may use certain predefined, systematic criteria to determine, whether there happens something in theevent model301 that could become the subject of a game.
Thelottery part201 also comprises aplayer model303, the task of which is at least one of collecting information and producing predictions about the behaviour of players. Theplayer model303 may provide means for estimating and/or controlling the emotional responsiveness of a game offered to players. This means that based on knowledge about how player(s) will react to certain game presentation, time schedule or other feature of a game, it becomes possible to optimise the way in which games are formulated for maximising the enjoyment experienced by players. Even if theplayer model303 only collects information and does not actively produce predictions of player behaviour or changes to actual games, such collected information can be later used for e.g. changing the criteria that thegaming model202 uses in evaluating the appropriateness of certain game routines to certain situations that occur in an event model. Including a player model in thelottery part201 is not obligatory, if it is not considered necessary to make operation dependent on player behaviour or to collect information about such behaviour.
An implementingtechnologies engine304 links together the operation of theevent model301, thegaming model302 and theplayer model303. The implementingtechnologies engine304 comprises the necessary interfaces for arranging the communication of information between the different models. It will also be responsible for arranging the communication of information between the models and the outside world, including but not being limited to receiving information from events, transmitting information to virtual and semivirtual events, and exchanging information with the players' terminals. Most advantageously theevent model301, thegaming model302 and theplayer model303 are all completely independent of any terminal or network technology, leaving the implementingtechnologies engine304 responsible e.g. for translations between the standardised communication protocols applied within thelottery part201 and the various communication protocols applied in the outside world.
For offering a game organiser the possibility of controlling the operation of thelottery part201 there is acontrol interface305, which has bi-directional connections to all other sections of thelottery part201.
Each of theevent model301, thegaming model302, theplayer model303 and implementingtechnology engine304 have couplings with their respective data-bases or libraries. These are theevent models library311, thegaming models library312, theplayer models library313 and the implementingtechnologies library314 respectively.
The utilisation of the libraries can be illustrated with the following, non-limiting example. We may assume, for the case of example only, that the event is a soccer match. In order to represent the event in thelottery part201 there is used, as anevent model301, a state machine that proceeds from one state to another according to inputs received from the actual event. It is impossible to say beforehand, how many subevents (like e.g. corners and penalty kicks) there will be in the event and when they will occur. Therefore there exists, in theevent models library311, readily made component routines that are not fixed parts of theevent model301 but can be taken into use immediately when a certain triggering condition is fulfilled. For example, when information arrives that a penalty kick has been awarded, theevent model301 reads from theevent models library311 the appropriate component routine and starts executing it, entering first a “penalty kick pending” state where certain attributes announce, which team has got the penalty and for what reason. After the penalty kick has been delivered, the event model returns (through a “read result” action) to a normal state and stows the component routine for possible later use.
In the example described above, information about the event model entering the “penalty kick pending” state would be delivered to thegaming model302, which would recognise this situation as one for which a certain game could be set up. It consults thegaming models library312 to obtain a component routine for setting up a quick betting game, in which the players must guess the result of the penalty kick situation. Aplayer model303 could react to the information about the penalty kick pending by noting the remaining playing time in the event and reading from theplayer models library313, what is the probable reaction of players to a penalty kick at this stage of a soccer game. Information about such predicted behaviour could affect e.g. the odds that are given to the possible result alternatives in the quick betting game. Before announcing the quick betting game to players, the implementingtechnologies engine304 would check from the implementingtechnologies library314, what is the expected response time of different terminal types, and only allow the quick betting game to be announced through terminals the use of which will not involve prohibitively long delays.
As an alternative it is certainly possible to construct theevent model301, thegaming model302, theplayer model303 and the implementingtechnologies model304 to be completely self-contained so that they inherently include all possible component routines needed to arrange a lottery concerning a certain type of event. In that case we may consider thelibraries311,312,313 and314 as a kind of design-time aids, from which the designer of such a self-contained lottery part will find the component routines that are needed to make the models sufficiently complete.
In order to enable communication concerning the events and exchanging information with the players' terminals there are, at the disposal of the implementingtechnologies engine304, anevent interface306 and aplayer interface307. In their simplest form these are just communications connections between thelottery part201 and an event (event interface306) and thelottery part301 and a player's terminal (player interface307). Part of the features that qualify as belonging to theevent interface306 andplayer interface307 may be located physically elsewhere. As an example, a player's terminal that as such constitutes the so-called enabling technology may comprise a Java-based virtual machine, on top of which runs the actual user interface software that creates the audiovisual interface that will be available for the player. Parts of such user interface software may originate from thelottery part201, which thus transmits executable scripts to the players' terminals.
Event ModelWe will next describe in more detail the implementation of an event model. As an illustrative, nonlimiting example we may consider the event model as a state machine, in which transitions between states occur when certain incidents take place in the event that is the subject of modeling. If the event is a virtual or semivirtual event, it is relatively easy to derive information about any incident event therein and to convey it to an event model, since the incidents themselves only exist in the form of computer-executed processes, and they are easily complemented to include information transmission routines that transmit information to an event model whenever anything of interest takes place in the virtual or semivirtual event.
In the case of a real-life event the case is a bit different, and depends heavily on the nature of the real-life event in question.FIG. 4 illustrates two exemplary alternatives in a case where the real-life event is a sports event. The most easily accomplished alternative is to make anobserver401 follow the event and to key in information describing the event using aterminal402. Such an arrangement is easily set up and is adaptable to many kinds of different events, but also involves the chance of human error.FIG. 4 also illustrates how thesports field403, thesportsmen404 and otherimportant elements405 of the sports event may be equipped withsensors406 that automatically produce information about how the sports event is proceeding. It is also possible to combine the two approaches so that information about the proceeding of the sports event is produced and transmitted to an event model both automatically and manually. The principles of manual observation and sensor-based automatic monitoring are easily generalised also to other kinds of real-life events.
FIG. 5 illustrates a simple state machine that can be used as an event model that represents the sports event ofFIG. 4. In the state machine representation ofFIG. 5, a block with rounded ends represents a state, a block with a triangular indent at an end represents receiving information and a block with an arrow-shaped end represents transmitting information. A diamond-shaped block is not used inFIG. 5 but would represent a decision with more than one possible outcome, and a rectangular block would represent an action the results of which are internal to the state machine in question. The state machine is first at a waitingstate501 when a match is still to begin. Receiving information at502 about the beginning of a match causes a transition to a match inprogress state503. When information comes at504 about a known end result of the match, that can only mean that the match has ended. The state machine transmits the known end result at505 to e.g. a gaming model or other process that needs it but did not receive it at the time when it came to the knowledge of the event model. Operation ends at a match endedstate506.
FIG. 6 illustrates a slightly more refined state machine for the same purpose. The waitingstate601 is similar tostate501 inFIG. 5. Receiving information at602 about the beginning of a match causes a transition tostate603, according to which a first half of the match is in progress. If at any time while instate603 there is receivedinformation604 about a scored goal, the updated score of the match is transmitted (e.g. to a gaming model) atstep605, after which follows an immediate return tostate603. Another possible transition fromstate603 occurs when there is received information about the end of the first half atstep606. The intermediate score is transmitted at607, after which the state machine spends the break at a waitingstate608. Information about the second half beginning at609 causes a transition to a second half inprogress state610.Steps604′ and605′ are essentially the same assteps604 and605 above respectively, with the sole difference that they now occur during the second half, meaning that the return fromstep605′ goes tostate610 and not to step603. The end whistle atstep611 causes the final result to be transmitted atstep612, after which operation ends at the match endedstate613.
Following the same model it is possible to build arbitrarily complex state machines, up to an ultimate limit in which each sportsman as well as the ball or puck or any other element of the sport carries sensors, and every movement is modeled and interpreted in the light of the known rules of the game (e.g. by not announcing the location of a forward as particularly advantageous despite of him being left free very close to the opposite goal, if he simultaneously is offside). An interesting feature of most state machine solutions is still that they can be built from a relatively limited number of simple, standardised building blocks, like
beginning of subevent (timed or non-timed)
a current score or position, or change (upwards or downwards) in the current score or position of a participant or team
a participant or team being awarded an advantage (a turn to service, a free kick or the like)
a participant or team being awarded a disadvantage (a penalty, a handicap or the like)
remaining time X
remaining distance or other physical measure X
current value X of speed, acceleration, weight or other physical quantity
end of subevent (based on time or score reached).
Although sufficient for many purposes, the list above should not be construed as exhaustive. These building blocks may need parametrisation, so that e.g. a standardised representation of a change of score would come with a small number of parameters for specifying e.g. who scored, at what time, who assisted, how many points did that earn, what is the current score thereafter and so on.
Description languages such as SDL (Specification and Description Language) exist for setting up an arrangement in which the designer of a state machine picks standardised building blocks (represented as graphics or in character form) and couples them together, after which a computer automatically fetches the corresponding source language procedures or even machine-readable instructions and compiles them into an executable program. The arrangement automatically sets up the information transfer interfaces between different building blocks, so that in the description of an information transmitting step it only needs to specified, to which other step(s) in the state machine description the information is to be transmitted. Additionally or alternatively (depending on the description language) in the description of an information receiving step it needs to specified, from which other step(s) the information is to be received. The automatic compiler then takes care of actually creating the proper read and write operations that are needed in order to deliver information from the correct source(s) to the correct destination(s).
One advantageous way of using an event models library is such where the library is a passive collection of functionalities and rules for producing certain services. For example, the library contains the code passages that an SDL compiler would use for compiling the machine-executable representation of a state machine built in a graphical user interface. Thus the state machine is a way of arranging the execution in proper order of certain functionalities and rules, that actually are read from the library for execution. In some cases the event models library may contain mutually alternative functionalities that are so close to each other that any of them could be used in principle to implement a function that was described in the state machine representation. In such a case it is advantageous if the compiler asks the designer of the event model, which functionality should be used in the machine-executable representation.
Most advantageously the state machine or other process that constitutes the event model is sufficiently independent so that its operation can be tested and verified either against a simulation program or by feeding in a large amount of historical data about known events and observing that the event model executes properly and gives the correct outputs.
There may also be several event models running simultaneously, representing the same event. For example, the event models represented as state machines inFIGS. 5 and 6 could be used simultaneously, for example if there are different kinds of games made available to players, different types of players' terminals, different kinds of network connections, different user interfaces for players, or other factors that require different resolution or level of accuracy in the description of the event.
Gaming ModelNext we will discuss certain aspects of the gaming model and the associated gaming models library. On a relatively high level of abstraction, gaming principles can be classified into a number of classes, including but not being limited to
chance: a prize will be awarded by random to a participant or to a number of participants among all participants
guess: a finite number of possible outcomes are known beforehand, and prizes will be awarded to participants according to how accurately they guessed the outcome that was eventually realised
exchange: participants trade something between them, like previously placed bets for subevents that have not yet unraveled
individual goal: participant tries to perform as well as possible in a task or a series of tasks
winning condition: participant wins if a certain criterion or condition is fulfilled, e.g. he or she is the 1000thparticipant to do something.
On a slightly more practical level any of these higher-level gaming principles can be implemented according to one or more practical implementation principle, including but not being limited to
drawing the winning lot(s) or otherwise determining the correct result regularly, with a fixed time interval between occasions
finding the correct guesses or otherwise determining the correct result after a certain triggering subevent has occurred and
updating a list or table of results after receiving new information, and announcing the updated list or a part thereof.
As illustrated inFIG. 7, a gaming model may spend time in await state701, waiting for information about the course of action that is taking place in one or more event models. Atstep702 the gaming model receives information that a first condition has been fulfilled; for example, one of the currently executed event models has entered a state where arranging a game would basically be possible, if another condition also comes true. We assume here that it is typical to the first condition that it only remains valid for a certain known period of time. Therefore atstep703 the gaming model starts a timer. At thedecision step704 the gaming model repeatedly checks whether the timer has expired. If the timer makes it to expiry before the second condition is fulfilled, a return to thewait state701 occurs. If, however, before that the gaming model receives information showing that also the second condition has been fulfilled according tostep705, it moves on to define a game according to certain predetermined rules atstep706. Atstep707 the gaming model declares the game to an implementation technologies model, which is then supposed to announce the newly declared game to appropriate player terminals.
The number of conditions to be fulfilled before a game can be declared is not necessarily two. It may be one, or it may be significantly more than two. The timer example explained above should not be construed as limiting. Some condition that has been fulfilled once may remain in a fulfilled state forever, or until the gaming model receives explicit information showing that said condition is not fulfilled any more. Conditions may have mutual dependencies, e.g. so that a first condition is to be considered fulfilled if simultaneously a second condition is true and a third condition is false, but not if said second and third conditions are both true, or so that the first condition must be completely fulfilled if a second condition is false, but only needs to be partly fulfilled is said second condition is simultaneously true.
The invention does not limit the selection or formulation of conditions. Thinking about the soccer example discussed earlier, one exemplary set of conditions is the following: a soccer match is in progress (i.e. not in a “to come” or “ended” state), a free kick has been awarded but not yet delivered, and the sportsman selected to give the free kick is the “godchild” specifically sponsored by the lottery company. Considering that very many different kinds of events may be represented by different event models, more or less any conditions will do as long as they define a situation in which a large number of players have essentially equal possibilities of taking part and winning in a game the outcome of which is and remains equally unknown to all such players until a cut-off moment after which bets or other kinds of participation announcements are not accepted any more.
The gaming model may also be responsive to other kinds of information, and information coming from other sources, than just announcements that something has happened in a certain event model. InFIG. 8 we assume that a gaming model that is in a wait state701 (or, actually, in any state) receives some descriptive information atstep801. For example, a player model may announce that according to its statistical observations, a game that was recently declared and announced to players raised an exceptional amount of interest, i.e. attracted an exceptionally large number of players to participate. The gaming model may interpret such an announcement as positive feedback showing that said recently declared game was a successful move, after which it changes some criteria atstep802 in a way that is likely to promote the generation and declaration of similar games in the future. In an opposite case information about a game having only raised relatively modest interest could cause the gaming model to abstain from declaring similar games in the future.
Player ModelWe will next consider certain aspects of a player model. The purpose of a player model is to offer tools for observing, estimating and possibly controlling the emotional responsiveness of games. The player model obtains or has previously obtained information about the behaviour of players in certain situations encountered in games. It is possible to subject testees to various stimuli under laboratory conditions, and observe how their emotions and reactions are reflected in parameters that could be detected and measured in a gaming situation. Such parameters include but are not limited to observed way of moving a mouse, observed mouse clicking speed and frequency, observed reaction time to various stimuluses and observed way of using a keyboard. In special cases also physiological measurements can be used, such as observing the player's pulse, eye movements or breath rate or the concentration of adrenaline in blood. From the laboratory measurements it is possible to derive universally applicable deduction rules, which can be then included in a player model.
FIG. 9aillustrates schematically the operation of a simple player model state machine during a “learning” phase in which observations and/or measurements about players' reactions are used to compile statistics for later use.State901 is a wait state. Atstep902 the player model receives new information about observed player behaviour. Atstep903 it uses the received information to update statistics that describe typical emotional responses of a player to certain conditions. At anoptional step904 it may transmit some key figures of the updated statistics to some other process that may need them, after which there occurs a return to thewait state901.
During a game the player model will receive input from a user interface, indicating e.g. the most recently observed distribution of some parameter values of the kind mentioned above. As a result the player model will generate standardised outputs for the use of the other models, which outputs describe, what deductions the player model has made about the most recent developments in emotional responsiveness of the game. The player model may also receive inputs from the event and gaming models. For example, if a player model receives from the event model information about two or more interrelated subevents, it may refer to a database of previously produced laboratory measurements in order to estimate the emotional effect of such combination of subevents: a penalty kick awarded in a dead heat situation with only five minutes remaining in the match is likely to cause a differential emotional response in players than a penalty kick during the very first minutes of a match or in a match the score of which is already clearly in favour of one team.
FIG. 9billustrates schematically the operation of a simple player model state machine during an “operational” phase in which it responds dynamically to conditions and/or combinations of conditions observed in an event model or a gaming model by providing estimates about player behaviour.State901 is again a wait state. Atstep912 the player model receives an announcement of an observed condition or a combination of conditions in an event model or a gaming model. Atstep913 the player model maps said condition or combination of conditions into estimated player behaviour, for example by looking for a best match between a current condition and a previously used test condition, with reference to which there has been stored statistical information about player behaviour that was observed in a laboratory environment. One of the known suitable technical means for finding best matches of this kind is a neural network, although also other technical means can be applied. After having found some information about the most probable emotional response of a player to the current condition or combination of connections the player model transmits that information to e.g. a gaming model atstep914, after which there occurs a return to thewait state901.
Above it was already mentioned how an indication about observed player enthusiasm can be used to control the kind and number of games announced to players. There are also other uses for the information generated in a player model. For example, subject to the permission of the player(s) concerned, a player model could monitor the behaviour of an individual player or a limited number of players in order to determine, whether said behaviour indicates excessive addiction or compulsion to playing. A positive indication could be used to trigger limiting action, so that the system would not allow the player(s) concerned to play more than up to a certain limit. A further possibility is to use an estimate of players' excitement for tuning the odds or other rules of a game.
Implementing Technologies ModelWe will next consider certain aspects of an implementing technologies engine or -model. Various embodiments can be presented depending on the distribution of work between the implementing technologies model and the other models. According to a centralised approach, the implementing technologies model is where the actual generation and storing of executable computer code takes place, utilising the higher-level definitions obtained from the other models. A more distributed approach would be to let the event model, the gaming model and the player model to generate their own machine-executable codes, and only use the implementing technologies model as an entity that arranges the communication of information between the other models.
Irrespective of the degree of centralizedness or distributedness, the implementing technologies model is responsible for consolidating the capabilities of the other components and the requirements placed to a game and the whole lottery part. The components selected for a certain implementation should have sufficient capacity: for example a calculationally very intensive routine can only be taken to constitute a part of an implementation if it can be ascertained that the available computing capacity will always be sufficient for executing said routine at all required instances. Also security and confidentiality should be considered: an implementation should include e.g. necessary encryption and decryption routines for arranging cryptographically protected communication where needed. The implementing technologies model may also consider cost aspects, e.g. so that an implementation will not be allowed if it would involve causing excessive cost.
Technology components that are available to the implementing technologies model may include, among others, the following:
algorithms, such as random number generators, encryption and decryption algorithms as well as checksum calculators and verifiers
procedures for defining odds according to some predefined criteria
realisation of various game principles
procedures for exchanging information with players' terminals, including setting up and maintaining connections (wireless, wired, dynamically changing); exploiting various communication technologies (Digital Video Broadcasting (DVB), Global System for Mobile telecommunications (GSM), General Packet Radio Service (GPRS), Universal Mobile Telecommunications Services (UMTS), Wireless Local Area Networks (WLAN), Internet Service Providers (ISP)); and utilising various communications protocols (Secure Sockets Layer (SSL), Hypertext Transfer Protocol (HTTP), Traffic Control Protocol/Internet Protocol (TCP/IP)
security procedures, such as terminal authentication, user authentication and account management
database procedures, such as maintaining centralised and/or distributed databases and connections to external databases
procedures for setting up user interfaces, utilising various techniques such as Java, World Wide Web, Multimedia Home Platform (MHP), Short Message Service (SMS) or Multimedia Messaging Service (MMS).
Most importantly the implementing technologies model should include rules for verifying the technical compatibility of all selected components and functionalities, as well as for arranging their mutual hierarchy and relations. It must not allow setting up implementations involving significant technical risks for malfunctioning, or implementations where component procedures would be contradictory to each other. Additionally the implementing technologies model may consider the quality of playing experienced by players, expressed e.g. as robustness against disruptions in communication and/or minimisation of delays. If the successful playing of a game depends on providing responses fast enough, the implementation technologies model should not allow announcing it to be played with terminals that involve, or the communication connections to which involve, significant risk of excessive delays.
FIG. 10 is an exemplary composition and model of operation for an implementing technologies model. The progress of events is determined by atechnologies state machine1001, which is a programmed computer-executable process that proceeds from state to state, accepting inputs and producing outputs according to a well-defined causal chain. For carrying out operations that have some practical outcome for example in producing information or setting up connections it communicates with component processes, of which four examples are shown inFIG. 10. Anodds calculating component1011 exists for calculating odds, and is coupled to thetechnologies state machine1001 through acomponent interface1012, which standardizes the communication between the component and thetechnologies state machine1001 so that for example a component can be exchanged to an updated version without having to touch the technologies state machine's side of the interface.
Anothercomponent1021 is provided generally for setting up a user interface, again with acomponent interface1022 linking it to thetechnologies state machine1001 and to other components, if required. SimilarlyFIG. 10 shows the exemplary existence of anSSL connection component1031, which—with itscomponent interface1032—is responsible for setting up a secured connection over an untrusted network, as well as a TCP/IP connection component1041, which is meant to implement TCP/IP based parts of connections. Also the TCP/IP connection component1041 has acomponent interface1042. The most straightforward way of arranging functional dependencies is the one schematically shown inFIG. 10, i.e. the one in which thetechnologies state machine1001 is the immediate user of all component processes. As an alternative it is possible to arrange certain component processes to have hierarchical relationships with each other, e.g. so that a general “connection maintenance” component governs subcomponents meant for implementing various mutually alternative or augmenting protocols, and the technologies state machine only needs to communicate with the connection maintenance component.
Systematic Development of New LotteriesThe division of the lottery concept into models like an event model, a gaming model, a player model and an implementing technologies model makes it possible to develop and synthesize new lotteries in a systematical way, which may help to significantly speed up the process from an idea to an operational lottery while simultaneously avoiding errors and saving effort.FIG. 11 illustrates schematically a development and synthesis process. It begins from anidea1101 of what a new lottery should be like. Typically the next step is the development of an event model atstep1102, utilising knowledge about existing event model component routines in anevent models library311. Thenext step1102 involves developing a gaming model, typically by adapting existing gaming model component routines from agaming models library312 to be associated with suitable subevents that may take place in the event model.
At step1104 a player model is developed and bound to the event model and gaming model(s) developed atsteps1102 and1103, again by utilising knowledge about player model component routines existing in aplayer models library313 whenever possible. Atstep1105 an implementing technologies model is developed to bind together the event model, gaming model and player model developed earlier. An implementingtechnologies library314 is used as an aid. Assuming that the centralised approach mentioned earlier is used, theevent models library311, thegaming models library312 and theplayer models library313 contain more or less human-understandable rules and definitions of the appropriate component routines, while the actual .exe files or corresponding computer-executable instructions appear in the implementingtechnologies library314. Whilesteps1102,1103 and1104 involved working mostly with said human-understandable rules and definitions, atstep1105 the corresponding computer-executable instructions are fetched and linked together into an entity that finally constitutes the synthesized new lottery obtained atstep1106.
All and any ofsteps1102,1103,1104,1105 and1106 may include verification, simulation, testing and comparison against user experiences, as is graphically illustrated asblock1111 inFIG. 11. Although the development flow appears as a one-way road inFIG. 11, this should not be construed as a limitation; the development work may well include backward steps, if e.g. during the development of a gaming model it is found that a slightly differently formulated event model would make it easier to adapt a pre-existing gaming model component routine for use in the new lottery.
Lottery Technology ServerFIG. 12 illustrates an example composition of a server arrangement used to run a lottery according to an embodiment of the invention. In the operating system environment of the server arrangement there aremeans1201 for executing the state machines that represent the event model, gaming model, player model and implementing technologies model. Similarly there aremeans1202 for executing core components of the server arrangements, like internal data transfer. There are also means1203 for performing server administration, such as memory allocation and maintenance, as well as means1204 for performing other processes. Communications with other computer devices require the implementation of various protocols, which is taken care of bymeans1205 for communications-related component execution. For setting up interfaces towards human users (i.e. control operators and players) there aremeans1206 for executing components related to interfaces, as well as theactual interface parts1207 and1208. The libraries and state machines described earlier are not part of the server arrangement proper; we assume that the server arrangement is self-contained in the way that it has been programmed with completed machine-executable routines, the creation of which may have involved the use of said libraries and the operation of which may correspond to proceeding according to the state machine representations.