6 June 2020

How SSDs might really change gaming...

People keep saying that SSDs are going to change the way we play games now that they're on the next generation of consoles. Some people say that the PS5's increased bandwidth derived from the 12 channel PCIe Gen 4 SSD will lead to even better performance than the Series X's more traditional 8 channel PCIe Gen 3/4* SSD. However, we've had this sort** of performance available in the PC sphere for a number of years now. So what should we be expecting when developers haven't even been bothered to utilise the "awesome" power of the storage medium?

*I'm saying 3/4 because it's not clear from the actual performance numbers (2-3 GB/s is achievable by Gen 3 SSDs...)
**On the same order of magnitude, maybe not the same amount of IOPs 

Let's take a look...

I've mentioned before that random read speeds are the important factor in determining the general effect SSDs will have on the experience in games, not sequential read speeds. The reason for this is because the way a game is played is not like a movie - data is not read in a purely sequential manner - it can be revisited, duplicated and skipped during play. The only guaranteed sequential reading of data will be during initial loading of a level's assets - which can be stored in an optimal manner by the developers and performed in a repeatable manner. Even reloading a save game will not have this benefit unless there are only static pre-generated save points in which the player's equipment does not change*. However, generally you wouldn't see such intense optimisation because the "law of diminishing returns" applies. It's a lot of effort for a few seconds or tens of seconds return.
*Some games do have situations akin to this...
Of course, there are certain game engine designs that enable faster loading. Some engines almost purge the pre-loaded data in the RAM and start from scratch - even upon a reload during play. Other engines have better optimisation, not requiring complete reloading of assets, leading to less time (or almost instantaneous) during reloads. Traditionally, id software were good at this but I've not played the latest DOOM game so I can't comment on the current state of their engine's art, especially since John Carmack left the studio and took his design input with him.

The other end of this argument is that this sort of asset reload optimisation really only benefits loading from HDD, where read latency is (comparatively) terrible, and specifically slower HDD designs (e.g. the 5400 rpm drives that were in the Xbox One and PS4).

Anyway, loading of data during play is not entirely sequential - depending on the game, it's a semi-random process: open world games are /mostly/ random and harder to account for in engine design - lots of "pre-loading" of expansive areas and LOD grading. Linear games are more controlled environments and assets can be gated to specific points in the progression of the game*. Semi-open worlds (a la Borderlands or Mass Effect) are a middle ground that generally have loading areas (constrained areas where not a lot can be visually observed by the player) where new content can be brought into memory in time for the player to experience it without causing too much delay (i.e. loading screens/areas). 
*When you drop down one of those non-returnable ledges, you're experiencing the game designer drawing a line in the sand past which the game will not reload that content.
Therefore, the read IOPS will be a better comparison for how truly "Next Gen" games will benefit from the presence of SSDs.

This took forever to put together: all of these results are from reviews and reflect data from Crystaldiskmark benchmarks...
At the same time, those headline-grabbing sequential read numbers of more than 11x to 28x those available to an HDD pale in comparison to the 508x to 933x at a queue depth of 32 and 75x to 105x* at a queue depth of 1 increase in random reads! That's a really incredible improvement and means that even a low-end SSD will be fine for the majority of gaming scenarios in the upcoming generation on PC. Sure, an initial load time improvement from 30 seconds to 2.7 seconds is impressive, but not SUCH a transformative experience from the point of view of level and game design. Sure, it's nice to have that big load faster but it's the player who's waiting, not the game engine.
*I'm not including the Optane drive in these figures
However, loading within a game being reduced from 30 seconds to 0.4 - 0.3 (QD1) seconds really is transformative in terms of what developers can do with level design. However, this improvement will be somewhat offset with larger texture sizes (which is why Microsoft are focussing on it so much with SFS*) and greater geometric detail. Bump up the visual fidelity of games and the bandwidth to move that fidelity from storage to system memory increases too.
*Bear in mind that SFS will introduce some latency as it takes time to work out what needs to be streamed... but that's a trade-off Microsoft appear willing to make in order to reduce the amount of data that needs to be put into their sub-optimal RAM pool.
But that's not even the best part about SSDs...

Do I even need a caption for this? RAM exceeds any sort of PCIe Gen 4 storage by 5x - 90x...

Writing the future of gaming...

All of that can be offset on PC by inclusion of greater amounts of RAM and better/more advanced streaming of data from an HDD. The one thing that SSDs can do that HDDs combined with enough system memory cannot is write a lot of data REALLY fast! Yes, the SSDs will be able to load more data quickly but not so fast that they're really challenging the data transfer rates of DDR or GDDR RAM. However, SSDs will enable games to be designed that require writing a lot of data to disk.

Most game worlds are quite static or they are temporarily deformable. Think about the temporarily destructible environments of Mutant: Year Zero or Red Faction: Guerrilla. Once those buildings need to be reloaded into memory, their initial state is restored, or some default destroyed state is loaded instead - not the particular type/style or layout of destruction performed by the player. 

The games that spring to mind which write a lot of data to disk as those such as various 4X titles (Gal Civ et al.) and the Bethesda Softwork games (The Elder Scrolls and Fallout series). You'll see a lot of these games with huge save game sizes. Most other games do not mess around with huge databases of items or locations that need to be loaded into memory and permanently stored on disk because the option really isn't there so much. Now, imagine games where heavy simulation takes place and the world state can be effectively permanently updated and stored on disk. Yes, games like Noita and Dwarf Fortress have reduced simulation granularity outside of the player's immediate area but the effects of them are just for a particular level or gameplay session. Later on, everything is discarded.

This is where my imagination really fails me because I'm having trouble thinking of gameplay systems that could benefit from this but this is a feature we've really never had before. Sure, immediate restore and suspend functions are nice but they don't impact actual game design all that much other than the possibility for instantaneous reloading of world-states*. I think this could be the big revolution that SSDs bring to gaming and that is where we'll see games *requiring* them in their specs.
*To be fair, I don't know whether there are cases where it's faster to take a snapshot of the RAM to reload a quick restore point or to just reload all the data from scratch. My gut tells me it's overkill but perhaps there's some gameplay system where it might be beneficial, especially if the data can be read sequentially - in which case, the RAM can be filled much faster than random reads (as discussed above).

No comments: