![ashes of the singularity units ashes of the singularity units](https://assets2.rockpapershotgun.com/ashesheader_TKfiuoa.jpg)
With more units, it becomes harder for the player to directly manage units. There's also an emergent property from the large number of units the game supports. More importantly, the AI workload is massive since the behavior of each unit needs to be simulated. Simulating the physics of this many in-game objects across a large terrain generates a large CPU load. The game supports many units for each player, as well as large maps. With that in mind, the Nitrous Engine has well-tuned support for the latest graphics APIs, multiple GPUs, and async compute. They started from scratch to build the Nitrous Engine* to make Ashes of the Singularity possible.Īny new engine must first deliver high-performance rendering. To build this next-generation RTS game, the development team knew that they needed a new game engine existing game engines couldn't support the unit counts or map sizes they wanted. Oxide wanted to create a more complex RTS than any built before, with support for larger armies with more units and larger maps. Without that serialization, it's now practical for games to fill command lists from multiple threads and have much better overall threading.īy taking advantage of these changes to the API, Ashes of the Singularity runs best on Direct3D 12. With the API changes in Direct3D 12, this fundamental limit doesn't exist anymore. However, there's so much serialization required that games never got much speedup from multithreading with the older version. It's possible to create commands from multiple threads in Direct3D 11. In version 12, the API incorporated several changes that remove these bottlenecks that tend to slow down games: multiple objects are now simplified into pipeline state objects and a smaller hardware abstraction layer minimizes the overhead in the API and makes it possible to remove resource barriers from graphics drivers.
![ashes of the singularity units ashes of the singularity units](https://s2.gaming-cdn.com/images/products/3469/screenshot/game-steam-ashes-of-the-singularity-escalation-wallpaper-3.jpg)
Earlier versions of Direct3D run well, but have a few bottlenecks. To get the best frame rates in Ashes of the Singularity, the Oxide team used Direct3D* version 12. Direct3D* 12 eliminates bottlenecks and allows high performance You can use these same techniques in your game to get the best performance from your CPU. It runs great on a typical gaming system and scales up to run even better on systems with more cores. You'll see how it delivers excellent gameplay and performance on systems with more CPU cores.įigure 1: Ashes of the Singularity* shows how a well-threaded game can get better frame rates on systems with more CPU cores.īy building a new engine and using Direct3D* 12, Oxide made it possible for Ashes of the Singularity to use all available processor cores. This video showcases Ashes of the Singularity*, a recent real-time strategy (RTS) game from Oxide Games and Stardock Entertainment.
#Ashes of the singularity units code#
To use all that available CPU compute power, applications run fastest when they're multithreaded so that code runs concurrently on all available CPU cores. Modern microprocessors have great single-core performance, but depend on multiple CPU cores to give better overall performance. In addition to the usual CPU loads from game logic, physics and artificial intelligence (AI) calculations, the graphical effects that make your game feel immersive can be CPU-intensive, typically making the bottleneck shift back and forth between the GPU and the CPU throughout development of the game itself. The GPU is the most obvious bottleneck you'll encounter as you add graphical effects and features to your game, but your game can also become CPU-bound. You face a constant balancing act between features and performance as you build your game.