IP Library Granted Patent US 8,449,398
Granted Patent B2
US 8,449,398 · App. 13/244,847 · Granted May 28, 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,449,398
App. No.
13/244,847
Granted
May 28, 2013
Kind
B2
Abstract

In examples presented herein, a game server and a client device may perform parallel execution of scripts for a computer-implemented virtual game. In one example, in response to determining that a user of a virtual game has performed an in-game action, a first event script to execute is determined based on the in-game action. The first event script is executed to present an in-game effect to the user. After the execution of the first event script, an update notification is sent to a server computer. The update notification indicates the in-game action and client-side state information. An update response is received from the server computer based on execution of a second event script responsive to the in-game action.

Claims (67)

1. A method comprising:

determining at a client device that a user of a virtual game has performed an in-game action;

determining at the client device a first event script to execute in response to the in-game action;

executing in the client device the first event script to present an in-game effect to the user;

sending from the client device, after the executing of the first event script, an update notification to a server computer, the update notification indicating the in-game action and client-side game state information representing a game state of the virtual game in the client device prior to the in-game action; and

receiving at the client device an update response from the server computer based on the server computer attempting to validate the update notification responsive to the in-game action, the update response indicating whether the update notification sent to the server computer is valid.

2. The method of claim 1 , the determining of the first event script comprising:

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.

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

4. 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.

5. The method of claim 1 , the update response including an indication that the client-side game state information is invalid; and

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

6. The method of claim 5 , the performing of the remedial action comprising:

notifying the user that an error has occurred; and

terminating the virtual game at the client device.

7. The method of claim 1 , the in-game action including 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.

8. A method comprising:

receiving at a server computer 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 representing a game state of the virtual game in the client device prior to the in-game action;

determining in the server computer whether the client-side game state information does not match a secure game state in the server computer;

returning a first update response from the server computer to the client device indicating invalidity of the update notification responsive to the client-side game state information not matching the secure game state;

determining in the server computer whether the user is allowed to perform the in-game action;

returning a second update response from the server computer to the client device indicating invalidity of the update notification responsive to the user not being allowed to perform the in-game action;

determining in the server computer, responsive to the update notification being valid, a first event script to execute based on the in-game action; and

executing in the server computer the first event script to update the secure game state.

9. The method of claim 8 , a second event script to be executed on the client device including a copy of the first event script.

10. The method of claim 8 , the determining of the first event script comprising:

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.

11. The method of claim 8 , comprising:

receiving an effect description for the in-game effect;

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;

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; and

transmitting the client-side effect script to the client device.

12. The method of claim 11 , the first event script including a call to an effect script for the in-game effect, and the executing of the first event script comprising executing the first set of operations of the server-side effect script.

13. The method of claim 11 , further comprising sending an update response to the client device responsive to the update notification being valid, the update response including the second event script and the client-side effect script, the second event script including a call to the client-side effect script.

14. An apparatus comprising:

a scripting module to determine that a user of a virtual game has performed an in-game action, and to determine a first event script to execute based on the in-game action;

a processing module to execute the first event script to present an in-game effect to the user; and

a communication module to send, after the executing of the first event script, an update notification to a server computer, the update notification indicating the in-game action and client-side game state information representing a game state of the virtual game in the client device prior to the in-game action;

the communication module to receive an update response from the server computer based on the server computer attempting to validate the update notification responsive to the in-game action, the update response indicating whether the update notification sent to the server computer is valid.

15. The apparatus of claim 14 , the determining of the first event script comprising:

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.

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

17. The apparatus of claim 14 , the scripting module 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.

18. The apparatus of claim 14 , the update response comprising an indication that the client-side game state information is invalid; and

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

19. The apparatus of claim 18 , the performing of the remedial action comprising:

notifying the user that an error has occurred; and

terminating the virtual game.

20. The apparatus of claim 14 , the in-game action comprising 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.

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 Jan 20, 2014
From: MARTONE, RAY
To: ZYNGA INC.
Reel/Frame 032001/0869 →