# US 2014/0157246 A1 · Building cross-platform asynchronous games

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0157246 A1
- Document ID: US20140157246A1
- Status: Published application
- Kind: A1
- Application number: 14/096,817
- Filed: 2013-12-04
- Published: 2014-06-05
- Earliest claimed: 2012-12-04
- Assignees: Zynga Inc.
- Applicants: Zynga Inc.
- Inventors: Jason Tomlinson
- Web page: https://patentgrep.com/patent/US20140157246A1

## CPC

- G06F 8/47: {Retargetable compilers}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system, computer-readable storage medium storing at least one program, and a computer-implemented method are discussed herein. For example, an embodiment may access a game engine that defines game play logic specifying an execution of a turn in an asynchronous game. The game play logic may be independent of a client device platform. The embodiment may then select a native platform library that includes functions to coordinate game activities within the asynchronous game. The functions may be dependent on the client device platform. The embodiment may then generate an executable game based on compiling the selected native platform library with the game engine.

## Claims

### Claim 1

A method of building an asynchronous game, the method comprising:
accessing a game engine defining game play logic specifying an execution of a turn in the asynchronous game, the game play logic being independent of a client device platform;
selecting, by one or more processors, a native platform library that includes functions to coordinate game activities within the asynchronous game, the functions being dependent on the client device platform; and
generating, by the one or more processors, an executable game based on compiling the selected native platform library with the game engine.

### Claim 2 (depends on 1)

The method of claim 1, wherein the game engine initiates the coordinating game activity through a function call to one of the functions included by the native platform library.

### Claim 3 (depends on 1)

The method of claim 1, wherein the generating the executable game is further based on compiling the selected native platform library with the game engine against a cross-platform asynchronous game application programming interface.

### Claim 4 (depends on 3)

The method of claim 3, wherein the cross-platform asynchronous game application programming interface includes declarations of the functions included in the native platform library.

### Claim 5 (depends on 1)

The method of claim 1, wherein the game engine code includes a rendering module to display graphics associated with gameplay of a turn.

### Claim 6 (depends on 1)

The method of claim 1, wherein the coordinating game activities include establishing a network connection with a game server and sending a message to the game server.

### Claim 7 (depends on 6)

The method of claim 6, wherein the message sent to the game server represents at least one of: a request for a user identifier associated with an instance of a game, a request for a game identifier associated with the instance of the game, a request for a move count associated with the instance of the game, an update of a move made in the instance of the game, a request for an game data object, and a request for a turn count associated with the instance of the game.

### Claim 8 (depends on 1)

The method of claim 1, further comprising
selecting, by one or more processors, a different native platform library that includes functions to coordinate game activities within the asynchronous game, the functions being dependent on a different client device platform; and
generating, by the one or more processors, a different executable game based on compiling the different native platform library with the game engine.

### Claim 9 (depends on 1)

The method of claim 1, wherein the game play logic specifies the execution of the turn in the asynchronous game according to a data structure of a game board and permissible game actions that can be performed with respect to the game board.

### Claim 10 (depends on 1)

The method of claim 1, wherein the executable game is made available for download by a plurality of user via an application store specific to the client device platform.

### Claim 11

A computer-implemented system for building an asynchronous game, the system comprising:
a compilation module implemented by one or more processors and configured to:
access a game engine defining game play logic specifying an execution of a turn in the asynchronous game, the game play logic being independent of a client device platform;
select, by one or more processors, a native platform library that includes functions to coordinate game activities within the asynchronous game, the functions being dependent on the client device platform; and
generate, by the one or more processors, an executable game based on compiling the selected native platform library with the game engine.

### Claim 12 (depends on 11)

The system of claim 11, wherein the game engine initiates the coordinating game activity through a function call to one of the functions included by the native platform library.

### Claim 13 (depends on 11)

The system of claim 11, wherein the compilation module is further configured to generate the executable game by compiling the selected native platform library with the game engine against a cross-platform asynchronous game application programming interface.

### Claim 14 (depends on 13)

The system of claim 13, wherein the cross-platform asynchronous game application programming interface includes declarations of the functions included in the native platform library.

### Claim 15 (depends on 11)

The system of claim 11, wherein the game engine code includes a rendering module to display graphics associated with gameplay of a turn.

### Claim 16 (depends on 11)

The system of claim 11, wherein the coordinating game activities include establishing a network connection with a game server and sending a message to the game server.

### Claim 17 (depends on 16)

The system of claim 16, wherein the message sent to the game server represents at least one of: a request for a user identifier associated with an instance of a game, a request for a game identifier associated with the instance of the game, a request for a move count associated with the instance of the game, an update of a move made in the instance of the game, a request for an game data object, and a request for a turn count associated with the instance of the game.

### Claim 18 (depends on 11)

The system of claim 11, wherein the compilation module is further configured to:
select, by one or more processors, a different native platform library that includes functions to coordinate game activities within the asynchronous game, the functions being dependent on a different client device platform; and
generate, by the one or more processors, a different executable game based on compiling the different native platform library with the game engine.

### Claim 19 (depends on 11)

The system of claim 11, wherein the game play logic specifies the execution of the turn in the asynchronous game according to a data structure of a game board and permissible game actions that can be performed with respect to the game board.

### Claim 20

A non-transitory computer-readable medium storing executable instructions thereon, which, when executed by a processor, cause the processor to perform operations comprising:
accessing a game engine defining game play logic specifying an execution of a turn in the asynchronous game, the game play logic being independent of a client device platform;
selecting, by one or more processors, a native platform library that includes functions to coordinate game activities within the asynchronous game, the functions being dependent on the client device platform; and
generating, by the one or more processors, an executable game based on compiling the selected native platform library with the game engine.
