Method and apparatus for executing event driven simulations
First Claim
Patent Images
1. A system comprising:
- a master object store configured to store a plurality of objects corresponding to a multiplayer game environment, wherein each of the plurality of objects comprises a method; and
a plurality of computer systems for manipulating the multiplayer game environment, wherein each computer system of the plurality of computer systems executes a stack, and wherein the stack comprises;
a cache for storing a subset of the plurality of objects from the object store layer;
a communication layer component configured to;
receive an event from a user manipulating the multiplayer game environment;
generate a task based on the event; and
place the task in a task queue; and
a simulation layer component configured to;
obtain the task from the task queue,load an initial object of the plurality of objects corresponding to the task from the cache when the initial object is in the cache,load the initial object from the master object store when the initial object is not in the cache,assign a transactional context and execution thread to the task, wherein the transactional context comprises a time stamp portion and a random number portion,execute the task by the execution thread, wherein executing the task comprises executing the method in the initial object to generate a modified initial object,request a dependent object of the plurality of objects using the initial method;
retrieve the dependent object, wherein retrieving the dependent object comprises checking for a dead-lock condition, wherein checking for the dead-lock condition comprises;
determining whether an interrupt flag of the task is set, wherein the interrupt flag is set to false when the task is created;
if the interrupt flag of the task is not set;
setting the interrupt flag for the task, if the dependent object is locked and a dependent object time stamp is greater than a task time stamp; and
waiting to retrieve the dependent object; and
if the interrupt flag of the task is set;
aborting a transaction associated with the task; and
re-queuing the tasking in the event queue; and
commit the modified initial object to the master object store to update the multiplayer game environment.
2 Assignments
0 Petitions
Accused Products
Abstract
A system that includes an object store layer configured to store a plurality of objects, wherein each of the plurality of objects comprises a method, a communication layer configured to receive an event from a user and generate a task based on the event, and a simulation layer configured to retrieve one of the plurality of objects responsive to execution of the task and execute the method associated with the one of the plurality of objects.
-
Citations
14 Claims
-
1. A system comprising:
-
a master object store configured to store a plurality of objects corresponding to a multiplayer game environment, wherein each of the plurality of objects comprises a method; and a plurality of computer systems for manipulating the multiplayer game environment, wherein each computer system of the plurality of computer systems executes a stack, and wherein the stack comprises; a cache for storing a subset of the plurality of objects from the object store layer; a communication layer component configured to; receive an event from a user manipulating the multiplayer game environment; generate a task based on the event; and place the task in a task queue; and a simulation layer component configured to; obtain the task from the task queue, load an initial object of the plurality of objects corresponding to the task from the cache when the initial object is in the cache, load the initial object from the master object store when the initial object is not in the cache, assign a transactional context and execution thread to the task, wherein the transactional context comprises a time stamp portion and a random number portion, execute the task by the execution thread, wherein executing the task comprises executing the method in the initial object to generate a modified initial object, request a dependent object of the plurality of objects using the initial method; retrieve the dependent object, wherein retrieving the dependent object comprises checking for a dead-lock condition, wherein checking for the dead-lock condition comprises; determining whether an interrupt flag of the task is set, wherein the interrupt flag is set to false when the task is created; if the interrupt flag of the task is not set;
setting the interrupt flag for the task, if the dependent object is locked and a dependent object time stamp is greater than a task time stamp; and
waiting to retrieve the dependent object; andif the interrupt flag of the task is set;
aborting a transaction associated with the task; and
re-queuing the tasking in the event queue; andcommit the modified initial object to the master object store to update the multiplayer game environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer readable medium, encoded with software instructions executable by a processor on a computer system, for executing a task, wherein the executing the task comprises:
-
receiving, by the computer system, an event generated by a user manipulating a multiplayer game environment while connected to the computer system; queuing the task corresponding to the event in a task queue on the computer system; removing the task from the task queue; requesting an initial object corresponding to the task from a cache on the computer system; retrieving the initial object from an object store layer, wherein the object store layer comprises a master object store shared by a plurality of computer systems and a cache on the computer system, wherein the cache is configured to store a subset of the plurality of objects from the object store layer, wherein the initial object is retrieved from the cache when the initial object is in the cache, wherein the initial object is retrieved from the master object store when the initial object is not in the cache, and wherein the computer system is one of the plurality of computer systems; assigning a transactional context and execution thread to the task, wherein the transactional context comprises a time stamp portion and a random number portion; executing, by the execution thread, an initial method present in the initial object to generate a modified initial object; requesting a dependent object using the initial method; retrieving the dependent object, wherein retrieving the dependent object comprises checking for a dead-lock condition, wherein checking for the dead-lock condition comprises; determining whether an interrupt flag of the task is set, wherein the interrupt flag is set to false when the task is created; if the interrupt flag of the task is not set; setting the interrupt flag for the task, if the dependent object is locked and a dependent object time stamp is greater than a task time stamp; and waiting to retrieve the dependent object; and if the interrupt flag of the task is set; aborting a transaction associated with the task; and re-queuing the tasking in the event queue; and commit the modified initial object to the object store layer to update the multiplayer game environment, wherein the plurality of computer systems modify a same multiplayer game represented in the master object store. - View Dependent Claims (11, 12, 13, 14)
-
Specification