Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR VIDEO GAMES
Document Type and Number:
WIPO Patent Application WO/2015/181334
Kind Code:
A1
Abstract:
A system for providing a computer implemented game with a plurality of game elements which in use are displayed on display. The system comprises: a game engine; and for each game element a game element actor module and game element data, the game element data comprising information about the respective game element and the game element actor module being configured to perform a view function for the respective game element.

Inventors:
CIRLIG GABRIEL CONSTANTIN (RO)
GOSPODIN TEODOR CATALIN (RO)
SAITAN CATALIN STEFAN (RO)
Application Number:
PCT/EP2015/061912
Publication Date:
December 03, 2015
Filing Date:
May 28, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
KING COM LTD (MT)
International Classes:
A63F13/60; A63F13/45
Foreign References:
US20130331162A12013-12-12
Other References:
"Game Programming Gems 2", 26 July 2001, CHARLES RIVER MEDIA, article FRANCOIS DOMINIC LARAMÉE: "A Game Entity Factory", pages: 51 - 61, XP055208089
"Game Programming Gems 7", 8 February 2008, CENGAGE LEARNING, article JULIEN HAMAIDE: "Multithread Job and Dependency System", pages: 87 - 96, XP055208094
Attorney, Agent or Firm:
STYLE, Kelda Camilla Karen (Bedford HouseJohn Street, London Greater London WC1N 2BF, GB)
Download PDF:
Claims:
CLAIMS:

1. A system for providing a computer implemented game having a plurality of game elements which in use are displayed on display, the system comprising:

a game engine module, the game engine module configured to receive input information from a user via an input interface;

for each game element game element data, the game element data comprising attribute information identifying one or more attributes of the respective game element when displayed; and

a game element actor module for each game element, the game element actor module being configured to perform a view function for the respective game element using the attribute information to access information required to generate an output representation of the game object for display., 2. A system as claimed in claim 1, wherein the game element data further comprises position information.

3. A system as claimed in claim 1 or 2, comprising an attribute data store configured to store the information required to generate an output representation of the game object for display, the attribute data store being accessible by the respective game element actor modules,

4. A system as claimed in any preceding claim, wherein the information required to generate an output representation of the game object for display comprises value objects.

5. A system as claimed in any preceding claim, comprising a game updater module comprising at least one tool and configured to update game element data for the respective game elements.

6. A system as claimed in any preceding claim, wherein the game updater module comprises a plurality of tools and the game engine is configured to which of the tools are executed.

7. A system as claimed in claim 6, wherein the at least one tool is configured to perform at least one game mechanic function.

8. A system as claimed in claim 6 or 7, wherein the game engine module is configured to control an order in which a plurality of tools is executed.

9. A system as claimed in any preceding claim, comprising a game root, the game root configured to cause the representation of the game element to be displayed, the game root using the game element view provided by the game element actor module.

10. A system as claimed in any preceding claim, wherein at least one of the game engine and the game element actor module comprises a software module. 1 1. A method for use in a computer implemented game comprising the steps of: receiving user input via a user interface at a game engine module;

providing instruction selection information from the game engine to a game updater module in dependence on the received user input

updating with the game updater module game element data associated with a plurality of game elements;

instructing a respective plurality of actor modules associated with the plurality of game elements to access game element view information associated with the respective game elements; and

providing game view information from the plurality of actor modules to a game root in dependence on the accessed game element view information.

12. A method of claim 11, wherein the game root uses the provided view information to provide display information to a display. 13. A method of claim 11 or 12, wherein the accessing game element view information comprises:

accessing respective game element information associated with the game element; and using the game element information to locate the game element view information.

14. A method as claimed in claim 11, 12 or 13, wherein said updating with said game updater module comprises using one or more of a plurality of tools, the instruction information selection information controlling which of said plurality of tools is executed.

15. A computer program comprising computer executable instructions which when run cause the method of any of claims 1 1 to 14 to be performed.

Description:
SYSTEM AND METHOD FOR VIDEO GAMES

FIELD

Some embodiments may relate to a novel structure back end structure for implementing a computer implemented game such as a so-called match three game. BACKGROUND

Computer implemented games are a well-known category of games that allow a player to interact with a computing device to cause the processor to perform certain functions and typically display a result on a screen or other display device.

Different types of games have evolved from classical arcade games in to games that can be played on a handheld device such as a smartphone or personal computer. Some games are also connected to the Internet and the player can play against or compare score with other users in multiplayer mode.

A common genre of casual games is so-called match games. This is a type of tile- matching game where the player manipulates tiles or game objects according to a matching criterion. In many tile-matching games, that criterion is to place a given number of tiles of the same type so that they adjoin each other. The criterion for matching is often to place the tiles so that a number of tiles of the same colour or of the same shape or any other characteristic are aligned or adjoined.

These casual games have become more sophisticated and the data associated with each tile is increased as more complicated game play options are provided and more complicated visual representations are required. The managing of the game play in terms of deciding whether a user input provides a valid move, the managing of changes associated with a game tile and the view function for drawing the game to display are currently managed by a game engine. The game engine can be regarded as software which is run on a processor. As the games become more complex, the game engine correspondingly needs to be more complex. The complexity in the game engine is such that changing a game is difficult and errors are more likely to result. The processing power required to achieve real time game play is also increased. There are many technical challenges and technical considerations facing the designer of computer applications such as games executed on a user or computer or other device having a user interface, such as designing algorithms for controlling the user interface.

Some embodiments aim to address one or more of these problems, SUMMARY OF INVENTION

According to a first aspect there is provided a system for providing a computer implemented game having a plurality of game elements which in use are displayed on display, the system comprising: a game engine; and for each game element a game element actor module and game element data, the game element data comprising information about the respective game element and the game element actor module being configured to perform a view function for the respective game element.

The game element data may comprise at least one of position information and attribute information.

The system may comprise an attribute data store configured to be accessed by the respective game element actor modules, the game element actor modules configured to perform the view function in dependence on data in the attribute data store.

The data of the attribute data store may comprise value objects.

The system may comprise a game updater module comprising at least one tool and configured to update game element data.

The game updater module may comprise a plurality of tools and the game engine is configured to control when a tool is performed.

The at least one tool may be configured to perform at least one game mechanic.

The system may comprise an input configured to receive a user input, the user input being received by the game engine. The system may comprise a game root, the game root configured to cause the game element to be displayed, the game root using the game element view provided by the game element actor module.

At least one of the game engine and the game element actor module may comprise a software module.

According to a second aspect there is provided a method for use in a computer implemented game comprising the steps of: receiving user input at a game engine; providing instruction selection information from the game engine to the game updater module in dependence on the received user input; providing update instructions to the game updater module from the game engine; updating with the game updater module game element data associated with a plurality of game elements; instructing a respective plurality of actor modules associated with the plurality of game elements to access game element view information associated with the respective game elements; and providing game view information from the plurality of actor modules to a game root in dependence on the accessed game element view information. The game root may use the provided view information to provide information to a display.

Accessing game element view information may comprise: accessing respective game element information associated with the game element; and using the game element information locate the game element view information.

According to a third aspect there is provided a method for use in a computer implemented game the computer implemented game comprising a plurality of game elements the method comprising: receiving an instruction from a game engine to retrieve game element data, the game element data comprising information about a respective game element of the computer implanted game; and providing view information associated with the respective game element to a game root. The game element data may comprise at least one of position information and attribute information.

The method may comprise using the game element data to obtain respective game element view information stored an attribute data store to generate the view information for the respective game element.

The attribute data store may be configured to be accessed by a plurality of game element actor modules wherein each game element actor module is associated with a game element.

According to a fourth aspect there is provided a method for use in a computer implemented game comprising: receiving information dependent on user input and selection information from a game engine; performing at least one instruction on at least one game element dependent on the selection information; receiving at least one further instruction from the game engine; and in response to the at least one further instruction updating data of one or more game elements.

The performed instruction may be one of a plurality of pre-stored instructions at a game updater module.

According to a fifth aspect there is provided a method for use in a computer implemented game comprising: receiving user input; providing information dependent on the received user input to a game updater module; instructing the game updater module to perform at least one action; instructing the game updater module to update game element data associated with a plurality of game elements; and instructing a plurality of actor modules to access the game element data and access game element view information in dependence on the game element data wherein each actor module is associated with one of the plurality of game elements.

The game element data may comprise at least one of position information and attribute information.

The game element view information may be stored in an attribute data store. According to another aspect there is provided a computer implemented method of providing a game, the method comprising the following implemented by at least one processor and at least one memory of a device: retrieving from at least one memory information associated with a plurality of first objects and one or more characteristics of the first objects and causing the objects with the one or more characteristics to be displayed on a display in an arrangement, executing at least one algorithm which: responsive to detected user input rearranges the first objects to provide a sequence of at least three adjacent first objects sharing at least one same characteristic, determines an upgrade level of each of the at least three adjacent first objects, and in response to the determination selecting one of the at least three adjacent first objects for upgrading, and causes an updated arrangement to be displayed with the selected one of the at least three adjacent first objects being upgraded and having the same characteristic and other of the three adjacent first objects being replaced with further first objects.

In an embodiment the upgrade level may comprise a predetermined number of levels up to a maximum level. By way of example, there may be two levels of upgrade in an embodiment, thereby providing an object with three levels or states, with three being the maximum level in this example.

The upgrading may comprise upgrading the selected one of the at least three adjacent objects to the next available level.

In another embodiment, the determination of an upgrade level of the selected one of the at least three adjacent objects may be dependent on the number of first objects in the sequence. For example a sequence of three or four objects may cause one of the objects to be upgraded by one level, whereas a sequence of five objects or more may cause an object at level one to be promoted to the maximum level directly.

A selected object that is upgraded to the maximum level may be provided with one or more action characteristic in some embodiments. The one or more action characteristic may be indicated in association with the upgraded object when displayed. An action characteristic may comprise attributes that cause all objects in the same row or column or diagonally with respect to the arrangement and the position of the tile or object activated to be eliminated or removed. Other action characteristics may comprise removing adjacent tiles surrounding the upgraded activated object in a pre-defined pattern, or the action may in turn activate a bonus object when triggered by the activation.

The action characteristic may activated in dependence on the subsequent providing of the object in a sequence.

In another embodiment, an algorithm may be provided which may analyse the updated arrangement for further sequences of at least three adjacent first objects sharing at least one same characteristic, to determine an upgrade level of each of the at least three adjacent first objects, and in response to the determination selecting one of the at least three adjacent first objects for upgrading, and to cause an updated arrangement to be displayed with the selected one of the at least three adjacent first objects being upgraded and having the same characteristic and other of the three adjacent first objects being replaced with further first objects.

Optionally, the number of further sequences which count towards a score may be dependent on a threshold.

The threshold may be dependent on one or more of the number of objects in the further sequences, the level of objects in the further sequences, the number of fully upgraded objects in the further sequences, on the type of action characteristics actioned in the sequences.

In another embodiment, there may be provided an algorithm responsive to detected user input to rearrange the first objects to provide a sequence of at least three adjacent first objects sharing at least one same characteristic, to detect an input corresponding to a first object position of the arrangement, to select an object displayed at that position, detect subsequent input in a horizontal direction or a vertical direction with respect to the arrangement, and select all objects within a column or row containing the selected object for movement in dependence on the direction of the subsequent input.

The arrangement may be rearranged by scrolling the selected row or column objects.

The arrangement may temporarily indicate at least one valid sequence during the scrolling.

According to another aspect, there is provided a device comprising at least one processor and at least one memory in connection with the at least one processor, the at least one memory storing information associated with a plurality of first objects and one or more characteristics of the first objects, the at least one processor configured to: retrieve from the memory the information associated with a plurality of first objects and one or more characteristics of the first objects and cause the objects with the one or more characteristics to be displayed on a display in an arrangement, and to execute at least one algorithm which: responsive to detected user input rearranges the first objects to provide a sequence of at least three adjacent first objects sharing at least one same characteristic, determines an upgrade level of each of the at least three adjacent first objects, and in response to the determination selecting one of the at least three adjacent first objects for upgrading, and causes an updated arrangement to be displayed with the selected one of the at least three adjacent first objects being upgraded and having the same characteristic and other of the three adjacent first objects being replaced with further first objects.

The at least one processor may be further configured to analyse the updated arrangement for further sequences of at least three adjacent first objects sharing at least one same characteristic, to determine an upgrade level of each of the at least three adjacent first objects, and in response to the determination selecting one of the at least three adjacent first objects for upgrading, and to cause an updated arrangement to be displayed with the selected one of the at least three adjacent first objects being upgraded and having the same characteristic and other of the three adjacent first objects being replaced with further first objects. The at least one processor may be further configured to detect an input corresponding to a first object position of the arrangement, select an object displayed at that position, detect subsequent input in a horizontal direction or a vertical direction with respect to the arrangement, and select all objects within a column or row containing the selected object for movement in dependence on the direction of the subsequent input.

According to yet another aspect, there is provided a computer readable storage device storing instructions that, when processed by at least one processor of a device, causes the processor to retrieve from at least one memory in connection with the at least one processor information associated with a plurality of first objects and one or more characteristics of the first objects and causing the objects with the one or more characteristics to be displayed on a display in an arrangement, execute at least one algorithm which responsive to detected user input rearranges the first objects to provide a sequence of at least three adjacent first objects sharing at least one same characteristic, determines an upgrade level of each of the at least three adjacent first objects, and in response to the determination selecting one of the at least three adjacent first objects for upgrading, and causes an updated arrangement to be displayed with the selected one of the at least three adjacent first objects being upgraded and having the same characteristic and other of the three adjacent first objects being replaced with further first objects.

BRIEF DESCRIPTION OF THE DRAWINGS

Figure 1 shows an example embodiment of a game area or board;

Figure 2 shows an example user device in which some embodiments may be provided;

Figure 3 shows an example system in which some embodiments may be provided; Figures 4a, 4b and 4c illustrate example selection mechanics according to some embodiments;

Figure 5 illustrates an example object and action characteristics according to some embodiments;

Figure 6 shows a schematic illustration of an embodiment;

Figure 7 shows a schematic flow of a method;

Figure 8 is a flowchart depicting steps of a method according to an embodiment; Figure 9 is a flowchart depicting steps of an input selection algorithm according to an embodiment;

Figure 10 is a flowchart depicting steps of a rearrangement and display algorithm according to an embodiment;

Figure 11 is a flowchart depicting steps of another rearrangement and display algorithm according to an embodiment; and

Figures 12a, 12b and 12c are flowcharts depicting algorithmic steps according to some embodiments; DETAILED DESCRIPTION OF EMBODIMENTS

In the following description of various implementations of the invention, reference is made to the accompanying drawings which form a part thereof, and in which is shown by way of illustration various implementations in which the invention may be utilized. It is to be understood that other implementations may be utilized, and structural and functional modifications may be made without departing from the scope of the present invention.

The terms user and player are used interchangeably throughout this document and no specific meaning is intended using one or the other unless the context suggests otherwise. A person skilled in the art will realise that the different approaches to implementing the game is not exhaustive, what is described herein are certain preferred embodiments. It is possible to implement the way in a number of variations without departing from the spirit or scope of the invention.

The techniques described herein can be implemented in for instance a computer application which involves the matching of objects displayed on a game area or game board and the elimination of such to complete a level or aim or target score of such a game. The game may be a so-called "casual" or "social" game, wherein short periods of play are undertaken by the user whenever appropriate according to the user's schedule. Such games are increasingly offered and played by users on a wide range of devices such as portable devices such as smart pad or tables or larger devices such as desk top computers or lap top computers.

Figures 1 , 4 and 5 show examples of a computer implemented game according one embodiment of the present invention. It should be understood that the present invention is not limited to this example and may include other computer implemented games.

Figure 1 shows an example schematic arrangement 100 for display on a user device according to an embodiment. An algorithm is configured to control the device such that an arrangement such as shown in Figure 1 is displayed. The arrangement comprises a displayed game area 100 having first objects (also referred to as tiles or game elements) 110, 120, 130. Each tile has one or more attributes. Each attribute may have one or more possible values. These objects are game elements or tiles. The attributes may comprise colour, shape, and/or different types of objects with associated value. The first objects may have other characteristics defining graphical representations and shapes, and may represent different types of similar objects when displayed on the game area 100.

First objects 110, 120, 130 may be removed from the game board 100 by user input sliding a row or column of first game objects 120 to create a sequence. The sequence may require three or more first game objects of having at least one attribute having the same value to be aligned adjacent one another in a row or column of the game area 100.

The game may, in one embodiment, end if the player or user runs out of time or moves before managing to reach a designated target such as a score or moves (not shown in Figure 1).

Those skilled in the art will appreciate that the arrangement of other grid sizes or patterns may be suitable. The first objects 110, 120, 130 displayed on the arrangement 100 may have four (or any other suitable number of) contact points with other neighbouring or adjacent first objects.

Other game board layouts or configurations may be provided. For example, pyramidal, hexagonal, octagonal or other layouts comprising position spaces or tiles within the game board 100 may be provided for display.

The number of differing colours may for example be three or more colours.

A schematic view of a user or computing device 200 according to an embodiment is shown in Figure 2. All of the blocks shown are implemented by suitable circuitry and/or may be software modules. The blocks may be implemented in hardware and/or software. The user device may have a control part 210. The control part 210 has one or more processors 215 and one or more memories 220. The control part 210 is also shown as having a graphics controller 225 and a sound controller 230. It should be appreciated that one or other or both of the graphics controller 225 and sound controller 230 may be provided by the one or more processors 215.

The graphics controller 225 is configured to provide a video output 235. The sound controller 230 is configured to provide an audio output 240. The controller 210 has an interface 245 allowing the device to be able to communicate with a network 250 such as the Internet or other communication infrastructure. The video output 235 is provided to a display 255. The audio output 240 is provided to an audio device 260 such as a speaker and/or earphone(s).

The device 200 has an input device 265. The input device 265 can take any suitable format and can be one or more of a keyboard, mouse, touch screen, joystick or game controller. It should be appreciated that the display 255 may in some embodiments also provide the input device 265 by way of an integrated touch screen for example.

The blocks of the controller 210 are configured to communicate with each other by an interconnect such as a bus or any other suitable interconnect and/or by point to point communication. It should be appreciated that in some embodiments, the controller 210 may be implemented by one or more integrated circuits, at least in part.

The user device 200 is shown by way of example only. In alternative embodiments, one or more of the parts may be omitted. Alternatively or additionally, some embodiments may comprise one or more other parts. Alternatively or additionally, one or more parts may be combined.

Figure 3 schematically shows a system 300 in some embodiments. The system 300 comprises a server 320 which may store databases of game players' details, profiles, high scores and so on. In practice, one or more databases may be provided. Where more than one server is provided, the database(s) may be provided in one database or across two or more servers 320. The server 320 may also have a games data function. This may comprise a memory to store the computer game program and a processor to run the games program.

The server may communicate via for instance the internet 310 to one or more user devices 305 and may further provide connections to a social network 330 such as facebookTM.

It should be appreciated that embodiments may be deployed in different system architectures. For example, the computer game may be implemented as a computer game that is stored in the memory 220 of the user device 200 and is run on the processor 215 of the user device 200. However, the server 320 may handle some elements of the game in some embodiments. By way of example only, a Java game applet may be provided to the user device 200 and the locally running Java applet will generate, for example, the graphics, sounds, and user interaction for the game play on the user device 200. Some data may be fed back to the server 320 to allow interaction with other players 305. The data which is fed back may also allow scoring and/or cross platform synchronization.

In some embodiments, the game may be implemented as a computer program that is stored in a memory of the system, for example the server 320, and which runs on a processor of the game server. Data streams or updates are supplied to the user device 200 to allow the user device 200 to render and display graphics and sounds in a browser of the user device 200. Such an approach is sometimes referred to as a web services approach. It should be appreciated, however, that such an approach does not necessarily require the use of the Internet.

It should be appreciated that some embodiments may be provided as stand-alone games on the user device.

The device and systems of Figures 2 and 3 may execute various algorithms as will be described.

Figure 4a shows the game area and arrangement of Figure 1. Input via the user input is detected at a position corresponding to object 420a to select the object 420a. The selection of the object may be by the user moving a cursor using a pointer device such as a mouse, a touch pad or the like. Alternatively the selection of the object may be detected by detecting a user's finger or the like at a location of a touchscreen at the position of the displayed object.

A subsequent slide input is detected indicating that the user wishes to slide the row in which object 420a is located in the direction of arrow 420b as shown. In doing so, a rearrangement algorithm may be invoked by processor 215 if the movement creates a matching sequence of three or more first objects as shown by region 430 and the end of input is detected.

Figure 4b illustrates the region 430 creating a match since at least three objects 120 and 420a sharing at least one same characteristic are aligned adjacent each other after the input.

A match may comprise three or more objects sharing at least one same characteristic being repositioned to be adjacent each other in a column if the input movement is in a horizontal direction with respect to the arrangement 100 or the three or more objects may be adjacent each other in a row if the input movement is in a vertical direction with respect to the arrangement 100.

Such a detected match causes the processor 215 to execute a rearrangement and update object algorithm. This is shown pictorially on the right side of Figure 4b wherein objects 120 of selected match area 430 have been replaced by objects 130, 110. In particular object 420a has been upgraded to object 440 having at least one different characteristic to the previously matched first object characteristics, whilst still sharing at least one same characteristic.

Figure 4b indicates this by way of example by depicting object 440 as a larger square shaped object 440 with an indication (here simply shown as crosshatching) that the object has been upgraded from a first level to second.

Figure 4c indicates a further level upgrade following a subsequent match of three adjacent objects including object 440, wherein already updated object 440 been replaced by a further upgraded object 450 as indicated in the figure. Figure 5 illustrates pictorially object 450 after upgrade with an indication of at least one associated action characteristic 510, 520, 530, 540. For example, selection of the further upgraded object 450 in a subsequent match may activate one or more of the action characteristics of the object 450 to remove and replace all objects along a row 510, column 520 or those occupying positions that are in diagonal 530, 540 from the position of the activated object 450.

In some embodiments, the number of different upgrade levels available may be two or more. In some games, the number of upgrade levels may be three. When the object has been upgraded the maximum number of times, the upgraded object, when in a match will provide an action which removes tiles in addition to the tiles being match. For example, the action may be line blasters or bomb type effects.

The action provided may be selected at random. In some embodiments, only one type of action is provided in a game. In some embodiments, the action provided may be associated with a value of an attribute of the object. The value of the attribute may the same attribute which is used when matching. The attribute may be colour or any other suitable attribute.

Other action characteristics may be provided in memory 220, and may be selected randomly to apply to an upgraded object.

Other action characteristics may comprise increasing the score or value associated with the object 440, 450, activating special or other objects within the game area 100, or acting as a localised bomb by destroying all adjacent objects surrounding the activated further upgraded object 450.

Reference is made to Figure 6 which shows schematically shows an embodiment. The embodiment shows the technical requirements in order to implement a game. The embodiment has a game engine module 2, a game root module 10, a game updater module 4 and for each game element respective tile data 8 and an actor module 6. Each of the game engine module 2, game root module 10, game updater module 4 and actor modules 6 may be regarded as a software module. The game engine module 2 provides functions for a game some of which will be described below. However as will be described, a view function for drawing the game to display and function relating to changes in game data are removed from the game engine module. This contrasts with known arrangements where a more complex game engine is required to perform all of the above functions.

The data, which is provided in a respective memory location, contains the data from which the tile characteristics are defined. By way of example only, the data may identify the position of the tile and one or more attributes of the tile. One or more attributes may be provided. By way of example only, the attributes may be size, colour, character or the like of the tile. For example, the data comprises X (x coordinate information); Y (y coordinate information); a (where a is one of a set of numbers and each number represents a different colour); b (where b is one of a set of numbers and each number represents the size of the character). The attribute data is not itself stored in the tile data. The attribute data is the data which provides meaning to the attribute and which for example means that a tile is displayed with a certain colour. It should be appreciated that the attributes mentioned are by way of example and any suitable attributes may be used in embodiments, dependent on the game.

The example above has numeric values to represent the type of a particular characteristic. For example the number 1 may mean the colour red. It should be appreciated that this is by way of example only and any other suitable method may be used to indicate the value or type of a particular attributed. In some embodiments, the data may have n bits where n represents each of the possible values of each of the possible attributes and 1 and 0 are used to indicate if the particular value of an attribute is present. In some embodiments, a word or collection of letters may be used to indicate a value of the attributes such as RED, BLUE, GREEN for indicating a respective colour of the colour attribute. The attributes are stored in an attribute data class. The attribute data (value object or VO) is stored in a special class referred to as a model. When an actor module is provided, a VO is assigned from the model by the game engine module (which has access to both the actor modules and the model data). The value object is provided in dependence on the data. The model may be part of the game engine module in some embodiments. In other embodiments, the model may be provided outside the game engine module 2. The actor module accesses the data through a reference to the attribute data object. In other words, the tile actor module will have a reference to the data associated with the colour attribute a. Thus the actor module 6 stores a reference to the attribute data. The actor module 6 provides a view function. The actor module 6, in providing the view function requests from the model the information that it needs to generate an output representation, for example to display the tile with the colour red. The actor module is prompted when to check the tile data to see if there is any change in any of the data by the game engine module.

The game engine module will send a control signal to an actor module to cause the actor module to check the tile data to see if there is any change. In some embodiments, the game engine module may send a control signal which is received by each of the actor modules. In other embodiments, the game engine may provide separate control signals for each of the actor modules or groups of the actor modules.

The actor module on receiving the control signal is configured to compare its current data with the current tile data to determine if there are any changes in the tile data. In other embodiments, the actor module may be notified every time there is a change in the tile data.

In other embodiments, the actor module will periodically check the tile data.

Input to the game from the user via the user interface (e.g., a touch screen) initially is provided as an input to the game engine module (e.g. the user has moved a row of tiles). This input which is provided to game engine module may comprise information which may be output by the game engine module to the game updater module which will use the information to update the tile data. The game engine module may process the input received from the user interface before providing the output to the game updater module.

The game updater module 4 comprises a set of tools or instructions which are controlled by the game engine module 2. In some embodiments the tools are a set of software code which when executed or rim cause the required function to be performed. Each tool may be stored in association with an identifier. This identifier may be used by the game engine module to control the selection of the relevant tool and subsequent execution of that tool.

The tools can take any suitable form. Examples of tools are: perform a vertical line blast where all tiles in a vertical line are removed; perform a horizontal line blast where all tiles in a horizontal line are removed; refill the game board with new tiles; check the tiles to see if a match has occurred; check the tiles to see if one or more tiles is associated with the performance of a particular function; update the tile data. The game engine module controls the game updater module to control which tool or instruction is performed at a particular time and where more than one tool is performed, the order. Thus in some embodiments, the input received by the game engine module from the user interface is processed to provide an output to the game updater module. This output will identify those tools or instructions which are to be performed. This output will also trigger the performing of the tools or instructions by the game updater module. It should be appreciated that the tools or instructions mentioned above are by way of example only and any other suitable tools or instructions may alternatively or additionally provided. The number of tools provided may be dependent on the game. One or more of the tools may implement a game mechanic. The tools or instructions provided may be dependent on the game. The game updater module 4 does the processing or running of a tool, for example, to decide if the tile data is to be updated. For example the game updater module decides if the colour of a tile has changed (e.g. due to a change in object position) or if a size of tile has changed (e.g. due to a match occurring). The game updater module deals with all the changes in the attribute data. Everything else may be handled by the game engine module. The tile data will be updated by the game updater module, in response to the respective tool of the game updater module being selected by the game engine and that tool being carried out. The running of that tool may cause the

The game root module 10 will cause the game to be displayed. The image of each tile is provided by the respective actor module which provides the view function. The game engine module 2 will provide control information to the game root such as a list of tiles which are to be displayed. For example, the game engine 2 may indicate which tiles are to be removed and which tiles are to be displayed.

The game engine 2 may only know about the list of actor modules. The game engine stores a reference to that list of actor modules in itself but does not manually update the list. The actor modules 6 provide the view function.

The game engine 2 will use the actor information to provide the data to the game root 2 to control the display of the device providing. The game engine is decoupled from the attribute data. By having separate actor information for each tile, it may be easier to implement changes to the tile characteristics, when for example designing a game.

By using a separate game updater module, a set of tools can be provided easily. A new tool can be easily added and/or a tool may be easily modified and or a tool may be easily removed. Any one of the tools can be selected in any order by the game engine. This may make changing or designing a game easier and/or quicker.

It should be appreciated that in some embodiments, this game structure may mean fewer bugs or the like.

Reference is made to Figure 7 which shows an example series of events for handling user input instructions in a match three game according to some embodiments. In step SI the game engine module receives information input by a user. In one example, the information may come from a touchscreen. In another example, the information may come from a mouse or keyboard. The user input information may be information regarding a move made by the user. For example, the user input information may comprise the information related to two tiles to be switched.

In step S2 the game engine module determines from the user input what information to provide to the game updater module. For example, the game engine may detect that the user has selected to switch two game elements and instructs the game updater module to check for a match of three adjacent tiles. In step S3 the game engine module instructs the game updater module perform a next instruction. For example, this instruction may be to remove matching tiles. In some embodiments the game engine may provide further instructions to the game updater module to perform further instructions. For example game engine may instruct the game updater module to add new tiles to replace the removed tiles. The game engine may further instruct the game updater module to check for a match of three adjacent tiles again since some tiles have now been replaced. This may be repeated until no new matches are made.

In step S4 the game engine instructs the game updater module to update the tile data. The game updater module then updates the tile data for any tile that has changed. In step S5 the game engine instructs the actor modules to access attribute data and provide view functionality. Each actor module may then access the tile data associated with that the respective tile and use that information to generate view functionality.

In step S6 the game engine provides control information to the game root. The game root causes tile data to be displayed. The tile data to be displayed may be the tile data accessed by the actor modules and provided by the view functionality.

The algorithms and mechanisms for providing the touch input, match detection and selection, and upgrading and replacing objects will now be described. A processor (or a plurality of processors) in conjunction with at least one memory may be configured to implement the modules discussed in relation to Figure 6. Other implementation of the modules of Figure 6 may be provided in different embodiments. The arrangement of Figure 6 may be used to implement any one or more of the following methods. Figure 8 is a flowchart describing steps taken by the processor 215, 320. At step 610, processor 215, 320 in conjunction with at least one memory causes the first objects and associated characteristics to be rendered. The objects are then displayed in an arrangement, as described for example with reference to Figure 1 at step 620. The processor subsequently at step 630 executes an input algorithm which will be described in more detail with respect to Figure 7. In dependence on the outcome of the algorithm the processor may then execute a replace and upgrade algorithm at step 640, and flow may then return via path 650 to step 620.

Figure 9 describes in more detail steps of an embodiment of the input algorithm 630.

At step 710, processor 215 in conjunction with the memory causes the objects 110, 120, 130 and their associated characteristics to be rendered for view, as discussed previously and displays the objects 110, 120, 130 having their associated characteristics (attributes) at object positions within a grid arrangement on display 255 at step 720. The data defining the attributes of each of the tiles is stored as tile data 8, as discussed above.

The processor in conjunction with the memory then at step 730 detects input by the user. The input may be provided by the operation of a pointer device such as a mouse or touchpad or by a user touching the display if the display is a touch screen. The processor is configured to determine a user selected position and selects the object 420a at that position.

Subsequently, at step 740 the processor 215 in conjunction with the memory detects subsequent input 420b corresponding to a slide or scroll movement of the selected object in a row or column direction with respect to the grid arrangement as illustrated pictorially in Figure 4. At step 750 the processor 215 selects all objects in the row or column occupied by the selected object in dependence on the detected direction of the slide or scroll movement. For example processor 215 may detect a slide movement in a horizontal direction and therefore selects all objects in the row containing the selected object for movement. Conversely, a determination of vertical slide movement causes all objects in the column to be selected for movement. The information stored about the objects may be updated to reflect the movement of the row or column

At step 760, the displayed arrangement is updated to show the translating of the selected row or column including the objects within that row or column in dependence on the determined movement direction. The algorithm is configured to check if three or more adjacent objects having at least one same shared characteristics are provided in the game arrangement. This will use the attribute data in the tile data for the respective game objects. This may be to determine a valid input or move. In some embodiments, if three or more adjacent objects having a least one same shared characteristic are not found, the move may be determined to be invalid and the information about the game objects may be returned to the state prior to the user inputting a move. The three or more adjacent objects having at least one same characteristic or attribute

(thereby forming a "match") may be highlighted on the display in some embodiments to provide feedback to the user to indicate valid movement and input. The highlighting is controlled by the algorithm. At step 770 the processor 215 determines the end of input and, in dependence on the analysis of the arrangement for three or more matching adjacent first objects, executes an update object and arrangement algorithm at step 780.

Figure 10 is an embodiment showing steps of an algorithm which may be carried out in dependence on the outcome of the algorithm previously described with respect to Figure 9. The steps of Figure 10 may be carried out by the respective modules of Figure 6. At step 810 the arrangement of Figure 6 may cause the removal of matching selected adjacent objects from the display and from the information stored relating to the arrangement. The arrangement of Figure 6 may apply a score. The arrangement of Figure 6 may determine the matched objects and associated characteristics including their value and a score may be applied in accordance with the combined value. In some embodiments, the score may be simply determined depending on the number of tiles removed. In some embodiments, the score may be dependent on characteristics or attributes of the removed game objects. In some embodiments, as will be described later, the arrangement of Figure 6 may cause game objects in addition to the matching game objects to be removed. These additional game objects may be taken into account when determining the score.

At step 820, in order to replace the matching selected adjacent objects the arrangement of Figure 6 is configured to replace one of the objects with a further first object 440, 450 with an upgraded different characteristic and at least one same characteristic as the matching adjacent objects. The attribute data will be updated to include information about the upgrading of the game object. For example the attribute information relating to the size is updated. By way of example only, the colour of the upgraded object may be the same as the matching objects and the size of the upgraded object may be larger than the matching objects.

Process then flows to step 830 where the arrangement of Figure 6 is configured to cause the further first object 440, 450 to be displayed at a given position on the arrangement. The position may be one of the positions of the matching objects. The position may be selected at random or the position may be selected always to be an end position or a middle position or may followed a defined pattern. The remaining other first objects of the selection are each subsequently replaced at step 840 wherein each of the removed objects is replaced with a first object and associated characteristics retrieved from memory.

Figure 10 shows an embodiment of steps of a method comprising further selection and upgrade of an already upgraded object. Hence selection and subsequent selection of objects may provide upgraded objects, which have for instance increased score characteristics and are larger as a different characteristic. The objects at this next level of upgrade may also have activation characteristics with associated display characteristics as described with reference to Figures 4c and 5. Attribute for each game object are as discussed in relation to Figure 6. The size attribute data is used to determine if the object has already been upgraded or not.

The method may be performed by the arrangement of Figure 6, for example by the game engine module in conjunction with the game updater module.

At step 910 the arrangement of Figure 6 is configured to analyse the current input selection to determine whether the matching object selection of three or more adjacent objects includes a further first object. If so, the process flows to step 920 where the arrangement of Figure 6 is configured to provide a further upgraded first object having associated display characteristics. The arrangement of Figure 6 is configured to determine which if any of the matching objects has been upgraded and if so which has been upgraded the most. The arrangement of Figure 6 is configured to select the matching object which has been upgraded the most as the abject which is further upgraded. The size attribute data is used to determine which object has been upgraded the most. In particular, the size attribute of each game object is compared to determine which of the game objects has been upgraded most. This may be done by the game updater and/or game engine.

At step 930, the arrangement of Figure 6 will cause the further upgraded first object to be displayed at the position of the object which was upgraded. The further upgraded object may have at least one activation characteristic, such as for example those described with reference to Figure 5. If more than one matching object has been upgraded to a level, then one of those already upgraded objects is selected for further upgrade.

At step 940 the arrangement of Figure 6 causes the other objects in the matching selection which are not upgraded objects to be replaced with first objects.

In some embodiments, the number of matching objects is determined by the arrangement of Figure 6 and the action taken may be dependent on the number of objects which are matched. In some embodiments, if the number of matching objects is greater than a certain threshold, one of the matching objects may be upgraded by a plurality of levels, for example to the highest level. Otherwise, the steps as previously described may be performed. By way of example only, the threshold may be five matching objects.

In some embodiments, it is determined if any of the matching objects have been upgraded to the highest level. If so the arrangement of Figure 6 will cause game elements to be removed from the arrangement in dependence on the action associated with the matching object having the highest level. This may cause the game objects in row or column to be removed or may cause the game objects around the matching object having the highest level to be removed. In some embodiments one or more action may cause another game element to change its graphical representation before being removed. Some embodiments comprise an algorithm configured such as to make a determination as to whether or not the user input represents a valid input resulting in a match o at least three objects. The algorithm may be performed by one or more of the modules of the arrangement of Figure 6. The algorithm is such that the number of first objects which match is determined and the action which is taken is dependent on the number of first objects which match. Below the threshold number of matches but with three or more matches, the algorithm is configured to determine the upgrade level of each first object in the match. If the algorithm determines that at least one object has reached the maximum upgrade level, then the associated action is applied. If not the algorithm is configured to determine the highest upgrade level ( if present) and apply a further upgrade to the first object having that highest upgrade level. The algorithm may have to select which first object to upgrade if there is more than one first object having the same upgrade level (which may be none).

The algorithm may determine the matched objects and associated characteristics including their value and a score may be applied in accordance with the combined value. In some embodiments, the score may be simply determined depending on the number of tiles removed. In some embodiments, the score may be dependent on characteristics or attributes of the removed game objects.

In some embodiments, as will now be described with reference to Figures 12a, 12b and 12c, the algorithm may cause game objects in addition to the matching game objects to be removed. These additional game objects may be taken into account when determining a score. The algorithm may be implemented by one or more of the modules of Figure 6. Figure 12a is a flowchart showing steps in an algorithm following a valid input.

At step 1010 the algorithm causes the processor in conjunction with memory to analyze the new game arrangement and information to determine whether the replacement or upgrade of first objects will generate other matching sequences of three or more first objects sharing at least one same characteristic in the arrangement. If not, then the process ends as indicated at step 1020.

However, if the analysis indicates that the new game arrangement and information will generate further matching sequences of three or more first objects sharing at least one same characteristic then these sequences are rendered for display and subsequently removed at step 1030, and the algorithm upgrades one of the matching objects by one level to a further object and replaces the remaining matched objects of the sequence with first objects. The upgrade may be performed as previously described with reference to Figure 10. The algorithm may then cause further analysis of the new rearrangement and information by returning via path 1040 to step 1010.

This can lead to a cascade of matching sequences in addition to the sequence validated upon the original input. Such sequences may be included in the eventual score returned for that input.

Figure 12b illustrates a flowchart showing steps that may be taken following, or during the execution by the processor in conjunction with the memory when executing the algorithm to rearrange the arrangement including the removal and replacement of three or more objects sharing at least one same characteristic or attribute.

The processor 215 in conjunction with memory 220, at step 1050 analyses the new game arrangement and information and further checks whether the replacement will generate other matching sequences of three or more first objects sharing at least one same characteristic, and whether one of the objects in at least one of the other sequences is a further object 440, If so, then processor 215 in conjunction with memory 220 renders the replacement objects for display and automatically subsequently removes those matching objects at step 1060, and upgrades one of the matching objects to a further object and retrieves from memory an associated activation characteristic and renders the object at a position and replaces the remaining matching first objects. The upgrade may be performed as previously described with reference to Figure 9.

Figure 12c illustrates a flowchart showing steps that may be taken following, or during the execution by the processor in conjunction with the memory when executing the algorithm to rearrange the arrangement including the removal and replacement of three or more objects sharing at least one same characteristic or attribute.

The processor 215 in conjunction with memory 220, at step 1010 analyses the new game arrangement and information and further checks whether the replacement will generate other matching sequences of three or more first objects sharing at least one same characteristic, and whether one of the objects in at least one of the other sequences is a further object 450 with associated activation characteristics.

If so, then processor 215 in conjunction with memory 220 renders the replacement objects for display and automatically activates the characteristic of the upgraded further object in the sequence.

The analysis of the arrangement as per Figures 10a, 10b, and 10c may occur concurrently on each re-arrangement. The replacement objects may be rendered to cascade or refill the game arrangement before removal, to indicate automatically an effect to the user on the display. Other rendering effects may be implemented to indicate the automatic refill, removal and upgrade effect.

Hence algorithms are provided which cause an automatic cascading effect of analysis, replacement, upgrade and re-arrangement after a validated input.

However, a problem with such cascading sequences was realized in that large scores could be obtained which may surpass an initial target score for example, or may not be appropriate for skill based tournament play.

Therefore, a threshold in some embodiments may be applied to the score per sequence matched per input so as to limit or cap the score per turn and avoid the score increasing or multiplying exponentially.

In another embodiment, the threshold may comprise the number of matching sequences per input which are counted to determine the score may be limited. The threshold may depend on the attributes of the matching objects per sequence.

For example, a first threshold may be provided for the number of sequences in a cascade having three first objects, and a second or different threshold may be provided for scoring sequences including first level upgraded objects. Another threshold may apply to the number of sequences matched in the cascade having second level upgraded objects and the scores created from the automatic activation of their action characteristic.

The thresholds and limits may depend on the game application, the arrangement, and the attributes of the objects which cause the processor to determine the score in order to balance the score.

Alternatively, or in addition the scoring may increase per sequence by a multiplier sequence, so that for example each additional sequence provides double the score of the previous. In such examples, a threshold or limit to the score is applied to avoid excessive scoring per input.

Several of the Figures have shown various algorithms. It should be appreciated that in some embodiments, more than one of these algorithms may be part of the same algorithm.

Various methods and devices have been described. It should be appreciated that these methods may be implemented in apparatus or devices comprising any suitable circuitry. Some embodiments may be implemented by at least one memory and at least one processor. The memory is provided by memory circuitry and the processor is provided by processor circuitry. Some embodiments may be provided by a computer program running on the at least one processor. The computer program may comprise computer implemented instructions which are stored in the at least one memory and which may be run on the at least one processor. It is also noted herein that while the above describes embodiments of the invention, there are several variations and modifications which may be made to the disclosed solution without departing from the scope of the present invention.




 
Previous Patent: MULTILAYER HEAT SHRINKABLE FILMS

Next Patent: A MARINE VESSEL