Exploring Game Industry Technological Solutions to Simulate Large-Scale Autonomous Entities within a Virtual Battlespace (bibtex)
by McCullough, Kyle, New, Raymond, Nam, Noah and McAlinden, Ryan
Abstract:
In support of Synthetic Training Environment (STE) goals of a virtual battlespace, we explored experimental technologies in the commercial game industry to determine the feasibility of running one million autonomous entities while maintaining performant simulation and fidelity. In conventional software architectural methods, the number of entities represented do not exceed hundreds (or at most a few thousand) due to the expense of simulating relatively complex behaviors for each entity. Even when using group behaviors to provide the illusion of large quantities of simulated characters, these simulations fail to provide behavioral fidelity at a higher level. To tackle this problem, the Unity game engine was chosen to simulate this virtual battlespace, and specifically to explore the Unity-specific Entity Component System (ECS), Job System and Burst Compiler experimental technologies. Unlike traditional methods of Artificial Intelligence (AI) representation, the ECS uses a data-driven approach (not object-oriented one) to represent large numbers of identically-structured data. While it is an unfamiliar departure from usual game object representation, its format enforces low-level contiguous storage of the data in memory, dramatically decreasing in-cache misses and preventing loss of data representation compared to random location storage. This results in far quicker iteration and access through large numbers of data blocks in memory. Also, the Unity Job System allowed for better distribution of the computational workload among multi-core processors, while the Burst Compiler improved the performance of the overall system by translating the .NET C\# code into highly optimized native code. The work has shown promising results with its current implementation allowing up to 150,000 autonomous, simple-behavior entities to be simulated while running at relatively performant standards (20-30 frames per second (FPS) on average). Further optimizations can still increase the number of entities, but eventually, we will consider using a distributed systems solution to simulate a million entities in this virtual battlespace.
Reference:
Exploring Game Industry Technological Solutions to Simulate Large-Scale Autonomous Entities within a Virtual Battlespace (McCullough, Kyle, New, Raymond, Nam, Noah and McAlinden, Ryan), In Proceedings of the I/ITSEC 2019 Conference, 2019.
Bibtex Entry:
@inproceedings{mccullough_exploring_2019,
	address = {Orlando, FL},
	title = {Exploring {Game} {Industry} {Technological} {Solutions} to {Simulate} {Large}-{Scale} {Autonomous} {Entities} within a {Virtual} {Battlespace}},
	url = {https://www.xcdsystem.com/iitsec/proceedings/index.cfm?Year=2019&AbID=28302&CID=48},
	abstract = {In support of Synthetic Training Environment (STE) goals of a virtual battlespace, we explored experimental technologies in the commercial game industry to determine the feasibility of running one million autonomous entities while maintaining performant simulation and fidelity. In conventional software architectural methods, the number of entities represented do not exceed hundreds (or at most a few thousand) due to the expense of simulating relatively complex behaviors for each entity. Even when using group behaviors to provide the illusion of large quantities of simulated characters, these simulations fail to provide behavioral fidelity at a higher level. To tackle this problem, the Unity game engine was chosen to simulate this virtual battlespace, and specifically to explore the Unity-specific Entity Component System (ECS), Job System and Burst Compiler experimental technologies. Unlike traditional methods of Artificial Intelligence (AI) representation, the ECS uses a data-driven approach (not object-oriented one) to represent large numbers of identically-structured data. While it is an unfamiliar departure from usual game object representation, its format enforces low-level contiguous storage of the data in memory, dramatically decreasing in-cache misses and preventing loss of data representation compared to random location storage. This results in far quicker iteration and access through large numbers of data blocks in memory. Also, the Unity Job System allowed for better distribution of the computational workload among multi-core processors, while the Burst Compiler improved the performance of the overall system by translating the .NET C\# code into highly optimized native code. The work has shown promising results with its current implementation allowing up to 150,000 autonomous, simple-behavior entities to be simulated while running at relatively performant standards (20-30 frames per second (FPS) on average). Further optimizations can still increase the number of entities, but eventually, we will consider using a distributed systems solution to simulate a million entities in this virtual battlespace.},
	booktitle = {Proceedings of the {I}/{ITSEC} 2019 {Conference}},
	author = {McCullough, Kyle and New, Raymond and Nam, Noah and McAlinden, Ryan},
	month = dec,
	year = {2019},
	keywords = {UARC, STG},
	pages = {12}
}
Powered by bibtexbrowser