×

Simulation systems and methods

  • US 10,025,892 B2
  • Filed: 11/28/2016
  • Issued: 07/17/2018
  • Est. Priority Date: 08/24/2016
  • Status: Active Grant
First Claim
Patent Images

1. A spatially-optimized simulation system comprising:

  • at least one computer processor controlling some operations of the system; and

    memory storing computer-readable instructions that, when executed by the at least one computer processor, configure the system to run a spatially-optimized simulation comprising;

    a plurality of entities being simulated, wherein each entity of the plurality of entities comprises one or more components, and wherein each of the one or more components comprises one or more properties;

    a plurality of worker modules distributed over one or more computer servers, wherein each worker module of the plurality of worker modules performs a subset of the spatially-optimized simulation, wherein each worker module of the plurality of worker modules is configured to instantiate a subset of the plurality of entities and is further configured to update the one or more properties of at least one component of the one or more components of each entity in the subset of the plurality of entities instantiated by the worker module of the plurality of worker modules, wherein the plurality of worker modules comprises a first worker module and a second worker module, wherein the first worker module of the plurality of worker modules corresponds to a first game engine that simulates rigid-body physics for the spatially-optimized simulation, and wherein the second worker module of the plurality of worker modules corresponds to a second game engine that provides client-side rendering for the spatially-optimized simulation;

    a plurality of chunk modules, wherein each chunk module of the plurality of chunk modules is configured to monitor a subset of entities assigned to the chunk module of the plurality of chunk modules, wherein the subset of entities assigned to the chunk module of the plurality of chunk modules are located within a chunk region assigned to the chunk module of the plurality of chunk modules, and wherein the plurality of chunk modules executes on at least one server different from the one or more computer servers on which the plurality of worker modules are distributed;

    a plurality of bridge modules corresponding to the plurality of worker modules, wherein each bridge module of the plurality of bridge modules is configured to facilitate communications between a worker module of the plurality of worker modules and one or more chunk modules monitoring one or more entities being simulated on the worker module of the plurality of worker modules;

    at least one receptionist module, wherein the at least one receptionist module is configured to receive, from a plurality of client modules, at least one request for connecting to the spatially-optimized simulation system and is further configured to assign a corresponding bridge module of the plurality of bridge modules for communicating with each client module in response to receiving the at least one request for connecting to the spatially-optimized simulation, wherein at least one client module of the plurality of client modules executes on a device different from the one or more computer servers on which the plurality of worker modules are distributed and different from the at least one server on which the plurality of chunk modules executes; and

    at least one oracle module, wherein the at least one oracle module is configured to assign worker modules and bridge modules in response to requests received from chunk modules and from bridge modules for simulation of one or more entities not assigned to a worker module,wherein the at least one receptionist module and the at least one oracle module each execute on a different server from at least one worker module of the plurality of worker modules, andwherein the at least one oracle module is further configured to;

    determine that a new worker module is needed based on a change in simulation workload; and

    in response to determining that the new worker module is needed, instantiate and provision a new worker module on at least one server of the one or more computer servers on which the plurality of worker modules are distributed, wherein instantiating and provisioning the new worker module causes a bridge module associated with the new worker module to add one or more entities to an interest region associated with the new worker module and delegate write authority of one or more components within the interest region associated with the new worker module to the new worker module on the at least one server of the one or more computer servers on which the plurality of worker modules are distributed.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×