IP Library Granted Patent US 8,562,441
Granted Patent B1
US 8,562,441 · App. 13/100,179 · Granted Oct 22, 2013

Secure, parallel, and independent script execution

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,562,441
App. No.
13/100,179
Granted
Oct 22, 2013
Kind
B1
Abstract

A game server and a client device may perform parallel execution of scripts for a computer-implemented virtual game. When the client device determines that a user of the computer-implemented game has performed an in-game action, the client device may send an update notification to the game server that indicates the in-game action and client-side game state information. Then, the client device may determine an event script to execute based on the user's in-game action, and may execute the event script to present an in-game effect to the user in near real-time. Similarly, the game server may determine a corresponding event script to execute based on the in-game action, and may maintain a secure game state by executing the corresponding script independent of the client device's script execution.

Claims (84)

1. A method to execute a script for a computer-implemented virtual game at a client device, the method comprising:

determining a first event script to execute based on an in-game action performed by a user of the virtual game;

sending an update notification to a server computer, the update notification indicating the in-game action and client-side game state information;

receiving an update response from the server computer, the update response including a game resource based on a secure game state that is to be updated at the server computer using a second event script, the second event script being associated with the first event script, and the game resource being associated with an in-game effect of the virtual game; and

using at least one processor, executing the first event script to present the in-game effect to the user.

2. The method of claim 1 , wherein the first event script includes a copy of the second event script.

3. The method of claim 1 , wherein the determining of the first event script comprises:

determining that the user has performed the in-game action;

determining that the in-game action satisfies a triggering condition of an event trigger for the virtual game; and

determining that the event trigger indicates that the first event script is to be executed based on the triggering condition.

4. The method of claim 1 , wherein the first event script includes a call to an effect script for the in-game effect, and wherein the executing of the first event script comprises executing the effect script to generate updated client-side game state information, and to present the in-game effect to the user.

5. The method of claim 1 , further comprising:

determining that the executing of the first event script did not include processing a keep-alive statement; and

configuring the first event script to become disabled based on the determining that the executing of the first event script did not include the processing of the keep-alive statement.

6. The method of claim 1 , wherein the update response further includes an indication that the client-side game state information is invalid; and

wherein the method further comprises performing a remedial action at the client device based on the indication that the client-side game state information is invalid.

7. The method of claim 6 , wherein the performing of the remedial action comprises:

notifying the user that an error has occurred; and

terminating the virtual game at the client device.

8. The method of claim 1 , wherein the in-game action includes an action selected from the group consisting of:

entry of a new in-game location by the user's avatar;

a determinable amount of user progress at an in-game job;

commencement of a quest by the user;

completion of a quest by the user; and

clicking on an in-game object by the user.

9. A method to execute a script for a computer-implemented virtual game at a server computer, the method comprising:

receiving an update notification from a client device, the update notification indicating an in-game action performed by a user of the virtual game, and further indicating client-side game state information;

determining a first event script to execute based on the in-game action, the first event script being associated with a second event script that is to be used by the client device to present an in-game effect to the user; and

using at least one processor, executing the first event script to update a secure game state at the server computer.

10. The method of claim 9 , wherein the second event script includes a copy of the first event script.

11. The method of claim 9 , wherein the determining of the first event script involves:

determining that the in-game action satisfies a triggering condition of an event trigger for the virtual game; and

determining that the event trigger indicates that the first event script is to be executed based on the triggering condition.

12. The method of claim 9 , further comprising processing an effect description for an in-game effect of the virtual game by:

generating an intermediate representation for the effect description;

generating a server-side effect script for the in-game effect based on the intermediate representation, the server-side effect script including a first set of operations that are to be executed by the server computer to update the secure game state; and

generating a client-side effect script for the in-game effect based on the intermediate representation, the client-side effect script including a second set of operations that are to be executed by the client device to present the in-game effect to the user.

13. The method of claim 12 , wherein the first event script includes a call to an effect script for the in-game effect, and wherein the executing of the first event script comprises executing the first set of operations of the server-side effect script.

14. The method of claim 12 , further comprising sending an update response to the client device, the update response including the second event script and the client-side effect script, wherein the second event script includes a call to the client-side effect script.

15. The method of claim 9 , further comprising:

determining that the client-side game state information does not match the secure game state; and

sending an update response to the client device, the update response including an indication that the client-side game state information is invalid.

16. An apparatus comprising:

a scripting module to determine a first event script to execute based on an in-game action performed by a user of a computer-implemented virtual game;

a communication module to:

send an update notification to a server computer, the update notification indicating the in-game action and client-side game state information; and

receive an update response from the server computer, the update response including a game resource based on a secure game state that is to be updated at the server computer using a second event script, the second script being associated with the first event script, and the game resource being associated with an in-game effect of the virtual game; and

a processing module to execute the first event script to present the in-game effect to the user.

17. The apparatus of claim 16 , wherein the first event script includes a copy of the second event script.

18. The apparatus of claim 16 , wherein the determining of the first event script comprises:

determining that the user has performed the in-game action;

determining that the in-game action satisfies a triggering condition of an event trigger for the virtual game; and

determining that the event trigger indicates that the first event script is to be executed based on the triggering condition.

19. The apparatus of claim 16 , wherein the first event script includes a call to an effect script for the in-game effect, and wherein the executing of the first event script comprises executing the effect script to generate updated client-side game state information, and to present the in-game effect to the user.

20. The apparatus of claim 16 , wherein the scripting module is further configured to:

determine that the executing of the first event script did not include processing a keep-alive statement; and

configure the first event script to become disabled based on the determining that the executing of the first event script did not include the processing of the keep-alive statement.

21. The apparatus of claim 16 , wherein the update response further includes an indication that the client-side game state information is invalid; and

wherein the processing module is further configured to perform a remedial action based on the indication that the client-side game state information is invalid.

22. The apparatus of claim 21 , wherein the performing of the remedial action comprises:

notifying the user that an error has occurred; and

terminating the virtual game.

23. The apparatus of claim 16 , wherein the in-game action includes an action selected from a group consisting of:

entry of a new in-game location by the user's avatar;

a determinable amount of user progress at an in-game job;

commencement of a quest by the user;

completion of a quest by the user; and

clicking on an in-game object by the user.

24. An apparatus comprising:

a communication module to receive an update notification from a client device, the update notification indicating an in-game action performed by a user of a computer-implemented virtual game, and further indicating client-side game state information;

a scripting module to determine a first event script to execute based on the in-game action, the first event script being associated with a second event script that is to be used by the client device to present an in-game effect to the user; and

a processing module to execute the first event script to update a secure game state.

25. The apparatus of claim 24 , wherein the second event script includes a copy of the first event script.

26. The apparatus of claim 24 , wherein the determining of the first event script involves:

determining that the in-game action satisfies a triggering condition of an event trigger for the virtual game; and

determining that the event trigger indicates that the first event script is to be executed based on the triggering condition.

27. The apparatus of claim 24 , wherein the scripting module is further configured to process an effect description for an in-game effect of the virtual game by:

generating an intermediate representation for the effect description;

generating a server-side effect script for the in-game effect based on the intermediate representation, the server-side effect script including a first set of operations that are to be executed by the processing module to update the secure game state; and

generating a client-side effect script for the in-game effect based on the intermediate representation, the client-side effect script including a second set of operations that are to be executed by the client device to present the in-game effect to the user.

28. The apparatus of claim 27 , wherein the first event script includes a call to an effect script for the in-game effect, and wherein the executing of the first event script comprises executing the first set of operations of the server-side effect script.

29. The apparatus of claim 27 , wherein the scripting module is further configured to send an update response to the client device, the update response including the second event script and the client-side effect script, wherein the second event script includes a call to the client-side effect script.

30. The apparatus of claim 24 , further comprising a validation module to determine that the client-side game state information does not match the secure game state;

wherein the communication module is further configured to send an update response to the client device, the update response including an indication that the client-side game state information is invalid.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded May 23, 2022
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: ZYNGA INC.
Reel/Frame 060163/0437 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Dec 14, 2020
From: ZYNGA INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 054719/0490 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 11, 2020
From: BANK OF AMERICA, N.A., AS LENDER
To: ZYNGA INC.
Reel/Frame 054701/0393 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Dec 21, 2018
From: ZYNGA INC.
To: BANK OF AMERICA, N.A., AS LENDER
Reel/Frame 049147/0546 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2011
From: MORTONE, RAY
To: ZYNGA INC.
Reel/Frame 026257/0393 →