SYSTEM AND METHOD FOR SCALING SIMULATIONS AND GAMES
First Claim
Patent Images
1. A method for computerized compilation a scripting language to perform agent-level scripting in the context of a computer simulation, said method comprising the steps of:
- receiving agent scripts for each agent, wherein the agent scripts include agent script properties of each of the agents, wherein the agent script properties are separated into states and effects, and wherein the agent scripts are separated into query phases and update phases, wherein the states, in the query phase are read-only, and the effects, in the query phase, are write-only, wherein the agent scripts can only modify the states during the update phase, wherein the effects are associated with aggregation fimctions, wherein the associated aggregation functions can only modify the effects and only in the query phase; and
converting the agent scripts into a set-at-a-time query plan, said step of converting executing computer instructions to perform the steps of;
building data parallel pipelines;
identifying locations in the data parallel pipelines where an index can be generated;
identifying ways to reorder the data parallel pipelines;
using database cost metrics to identify selected ways from the ways; and
annotating the data parallel pipeline with the index and the selected ways.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for modeling simulation and game artificial intelligence as a data management problem. A scripting language that provides game designers and players with a data-driven artificial intelligence scheme for customizing behavior for individual agents. Query processing and indexing techniques to efficiently execute large numbers of agent scripts, thus providing a framework for games with a large number of agents.
38 Citations
6 Claims
-
1. A method for computerized compilation a scripting language to perform agent-level scripting in the context of a computer simulation, said method comprising the steps of:
-
receiving agent scripts for each agent, wherein the agent scripts include agent script properties of each of the agents, wherein the agent script properties are separated into states and effects, and wherein the agent scripts are separated into query phases and update phases, wherein the states, in the query phase are read-only, and the effects, in the query phase, are write-only, wherein the agent scripts can only modify the states during the update phase, wherein the effects are associated with aggregation fimctions, wherein the associated aggregation functions can only modify the effects and only in the query phase; and converting the agent scripts into a set-at-a-time query plan, said step of converting executing computer instructions to perform the steps of; building data parallel pipelines; identifying locations in the data parallel pipelines where an index can be generated; identifying ways to reorder the data parallel pipelines; using database cost metrics to identify selected ways from the ways; and annotating the data parallel pipeline with the index and the selected ways.
-
-
2. A scripting language compiler to perform agent-level scripting in the context of a computer simulation, said compiler comprising:
-
an update phase processor receiving agent scripts for each agent, wherein the agent scripts include agent script properties of each of the agents, wherein the agent script properties are separated into states and effects, and wherein the agent scripts are separated into query phases and update phases, wherein the states, in the query phase are read-only, and the effects, in the query phase, are write-only, wherein the agent scripts can only modify the states during the update phase, wherein the effects are associated with aggregation functions, wherein the associated aggregation functions can only modify the effects and only in the query phase; and a converter converting the agent scripts into a set-at-a-time query plan, said converter executing computer instructions to perform the steps of; building data parallel pipelines; identifying locations in the data parallel pipelines where an index can be generated; identifying ways to reorder the data parallel pipelines, using database cost metrics to identify selected ways from the ways; and annotating the data parallel pipeline with the index and the selected ways.
-
-
3. A method for constructing a simulation with a scripting language compiler and a scripting language runtime including the steps of:
-
reading the agent scripts into the scripting language compiler to produce a set-at-a-time query plan; converting the set-at-a-time query plan to a data-parallel pipeline with indices and selected ways from the ways; embodying each step of behavior of the agent as a single execution of the data parallel pipeline to produce results; linking the results to the simulation; gathering pipeline statistics about the data parallel pipeline based on the amount of time/memory available; identifying which of the indices to create and which of the indices to eliminate at each of the steps of behavior; and reordering the set-at-a-time query plan according to pipeline statistics.
-
-
4. A scalable system for managing computer games, each computer game containing agents, the system comprising:
-
an environment table for each category of agents; a script that, at each clock tick, updates the contents of the environment table via set-at-a-time processing; and a linker that connects the environment table to the computer game.
-
-
5. A scripting language for customizing agent behavior for agents that are part of a computer simulation comprising:
-
a script analyzer to analyze agent scripts defining agent behavior; and
produce an agent database;a script compiler to convert the agent behavior into a database query plan; and a scripting language runtime for applying the database query plan to the agent database and linking the results to the simulation.
-
-
6. A method for indexing and code reordering to execute agent scripts to achieve scalability in the number of agents in a computer game comprising the steps of:
-
pre-computing results of expensive functions in the computer game; indexing the results of said step of pre-computing to access the results within the agent scripts; in a single clock tick, encoding effects generated by the agent script into an environment table; combining the effects into the environment table to produce a set-at-a-time table with a single value of the effects for each of the agents; and applying the single value of the effects using a post-processing step specific to the computer game.
-
Specification