Games Written by Wayward

Brad Wardell Catches Us Up on The Amazing Tech Behind Ashes of the Singularity

Undoubtedly, one of the most ambitious real-time strategy projects currently in the public eye is Oxide Games’ Ashes of the Singularity, which is being published by Stardock. Stardock have recently been high up on my interest list, as they are one of the few large companies out there still experimenting with the untapped potential of RTS games, shown by Ashes of the Singularity as well as the other titles they’re collaborating on, Servo and Offworld Trading Company.

Introduction

Ashes of the Singularity is the first DirectX 12 title, itself notable, but the hits don’t stop there. Oxide Games has a suite of technologies on board to support the game’s massive scale, including the Nitrous Engine,which will help make Ashes one of the largest-scale RTS ever produced, featuring potentially tens of thousands of units per player. Ashes is shooting to be a truly “post-StarCraft” RTS, utilizing custom-built tech to create a unique RTS experience.

Without further ado, I’ll happily turn you over to Brad Wardell, CEO of Stardock and an experienced programmer and game designer, who is obviously proud of the progress and technical details of Ashes of the Singularity. Take it away, Brad!

All of the text below is courtesy of Mr. Brad Wardell. Minor editing has been done for style. To set up the content, Mr. Wardell is providing an after-action report from a Skirmish battle against the AI in the game’s upcoming 0.70 release, and is showing off some of the fascinating tech that makes Ashes of the Singularity so unique.

Notes from Brad’s Ashes Match:

Using upcoming build 0.70

By the time I finally wiped out the AI opponent, I had over 8,000 units.  I mainly wanted to see how far we’d come on performance. We’re doing pretty well with memory. We might be able to bring down the memory requirement to 6 GB.  Video memory is still 2GB minimum. You need a 2013 or later video card.  I’m playing this on a Radeon Fury. Performance remained good throughout the game but obviously I have a pretty high end system.

The two key ingredients: DirectX 12 + multiple CPU cores. In my case, I have 6 cores with 12 logical processors. The result: 35fps with over 7,000 units. And those units have their own firing solutions, turrets and are firing projectiles with physics models.

In other words, that cool gaming rig you put together? The pay off is just beginning.  This was only on ONE GPU.  Before release, we’ll be adding multi-GPU for DirectX 12.  Imagine what this would look like on a 4k or 5k display?

Also: This is still a game that’s in alpha. Ashes of the Singularity won’t go into beta until mid January so the graphics, performance and of course the game itself will keep getting better as we add new units, new races, new types of weapons, new strategic options, etc.

In the meantime, if you’re a power gamer and want to see what your rig can really do you can join the early access version here: http://store.steampowered.com/app/228880/

ashes1

Note the framerate. And this is only part of the map (on a small map).

All my CPU cores are being used.

I put my cores to work!  Each logical processor can talk to my GPU thanks to DirectX 12.  This is what makes such high frame rates possible.

I just love that I can zoom in and see detail and then zoom out to over 15,000 feet.

This is our ugly situation map. It’ll get a big overhaul before release. Each dot is a group of units.

ashes3

Just more eye porn.

ashes4

Every shot has a physics model. Gravity, drag, etc. are all taken into account. They also are their own light source.

ashes5

The maps are procedurally generated. An artist didn’t make this map. The map designer says what they want the strategic elements should be and the engine then procedurally creates it including simulating erosion.

ashes6

The units channel gravity allowing them to hover over each other. This allow us to have some benefits of 3-dimensional battles despite fighting on a planet.

2 comments

  1. Well written blog entry and certainly captures the RTS genre’s ability to maximize modern computational power.

    I’ve been developing RTS Creator for awhile and developing an architecture that makes use of all system resources is no easy task and requires a bullet proof plan from the onset. Maximizing concurrency, minimizing locks, and off loading the appropriate calculations to the GPU all must be considered and balanced.

    My assumption is that they’re using a framework similar to the one outlined in the link below, where each units operations (weapon firing, physics calculations, movement, etc.) is distributed evenly to each core as tasks and then redistributed and balanced based on the time span of each task. After all tasks are processed, a copy of the data modified by each core is then redistributed to all cores.

    https://software.intel.com/en-us/articles/designing-the-framework-of-a-parallel-game-engine

    What’s phenomenal about a model like this is that it’s built to stand the test of time. The engine will most likely live a long a fruitful life as the backend for other future RTS games.

    Like

Comments are closed.