Sidenote: The Potential For MMOs and Open World Games With Upgraded Storage Solutions

With all the hype (and jokes of physical design) around the Playstation 5 reveal last week, something interesting has been bubbling up with regards to its hardware.

Both next-gen consoles have shifted from SATA-attached mechanical hard drives to full NVME SSD solutions, skipping a SATA SSD entirely and making clear that part of the expected performance increase for next-gen comes down to much faster storage.

At first, this is both obvious to some extent (duh, NVME drives are a hell of a lot faster than spinning rust) but also is not clear (on PCs, after all, NVME drives only really aid with loading times, and they do so to an extent that is less impressive than the sticker speeds of an NVME drive would lead you to believe). Couple that with Tim Sweeney of Epic singing the praises of the PS5 design in particular as the fastest storage available to consumers at present, and you have enough dressing to warrant a deep dive into the issue. To do so, I want to approach the SSD technology and storage in general from 3 angles – where the software is today, where the hardware is today, and what the PS5 (and to a lesser extent, Xbox Series X) do differently that is worthy of praise and makes their SSDs a critical component in the performance improvements promised for next-generation.

The Hardware Situation of Today: The PC market has 3 major types of storage available in use in an average desktop PC – mechanical hard drives, SATA-attached solid state drives, and NVME solid state drives. The differences in speed are orders of magnitude – a really high-capacity 18 TB hard drive might be able to hit a sequential read speed of around 200 MB/s if we’re exceptionally lucky, with smaller drives being slower due to the physical travel needed to read data being larger. SATA-attached SSDs have pretty much been at or near the maximum limit of sequential read performance on SATA III since it was introduced in 2011 – 550 MB/s of sequential read is a number that nearly every half-decent SSD can hit. NVME SSDs add some complexity, in that they depend on the protocol feeding them communications, but a good PCI-Express x4 drive with 3rd gen PCIE support can hit sequential reads of around 3,500 MB/s, and upgrading that to a 4th gen PCIE interface with the same lane count can reach peaks much higher – currently available consumer drives usually hit around 5,500 MB/s, but the interface should be able to get as high as 7.8-ish GB/s at its peak.

There are only a few things that hold back the hardware mentioned here – the first is that SATA SSDs, fast as they are, are using a 9-year old version of a nearly 20-year old protocol, and while most of us think of SATA as the port or connector type alone, SATA is actually a robust protocol that includes communication standards and how the drive is interfaced with – hence why some M.2 format SSDs are still SATA. SATA was a revolution for hard drives, but most of its feature set is designed to accelerate hard drives – and while features like Native Command Queuing (allowing a hard drive to read data in the order it is physically stored to meet requests for reads instead of bouncing physically all over the drive) do make hard drives faster, it wasn’t until revision 3.1 in mid-2011 that features to aid SSDs were added to the protocol. Even then, it was fairly clear that SSDs would need a newer interface to unlock their potential, and thus NVME.

All of this, however, writes off one factor that interferes with PC desktop performance more than the consoles – operating system optimization. The overhead of Windows (or most general purpose OSes, really) can be crippling in a way, and reduces performance. In the Windows environment, a game would have to note it needs something from storage, which it then requests from Windows, which Windows then requests from the file system used for the target drive, which then hits the hardware which references its buffer for the location (if an SSD) or seeks the data out (if a hard drive). This then has to be reversed through once the data is found and read, adding layers of latency and speed reductions to what is (or should be) a relatively straightforward process.

And the software issues don’t end there!

The Modern State of Games: Games and their relationship with storage is something we actually don’t talk or think about much, even as that role has grown more prominent. With the current generation consoles using mechanical hard drives and PCs using any variety of storage options (hell, my current desktop has NVME, SATA SSDs, and spinning rust all at the same time!), smart developers have to build and assume the lowest common denominator – a slow mechanical hard drive. The types of optimization done for hard drives are exactly the kinds of things that don’t improve much with vastly higher read and write speeds – thus, the end result being that SSDs are fantastic when at a loading screen and can reduce pop-in from streaming asset management, but fail to do much more than that.

In fact, to properly optimize around hard drives, games have had to make use of a variety of different technologies and design choices. Game install sizes are ballooning ever larger not because a modern game needs 200 GB of data or even has that much, but because in order to reduce the negative impact of slow seek times, it is easier to have 2+ copies of a frequently used dataset. If there is a specific map, model, sound file, or the like that you need to have ready at hand but can’t store in RAM for indeterminate lengths of time, well, then you just write an extra copy of it near the end of the installation for the game. This kind of planned data economy carries into game design as well – if you currently play WoW Classic, you’ll note that a lot of zone boundaries in the game use long tunnels or various line of sight blocking objects that stretch just a smidge longer than you might anticipate. These serve as loading buffers, giving the game a chance to predictively load up assets based on what direction you’re moving towards and what it thinks you’ll need. FFXIV does this through just straight-up making you load between zones, which actually makes a fast SSD a better investment for it than for WoW! Modern WoW tries to keep this straight by loading more data when launching the game, giving you a bigger chunk of the map so that flying overhead can be managed, but still using some data streaming as you push the boundaries of draw distance and the game requires more data. It accomplishes this as the game has grown more complex by using a more segmented world (every expansion behind its own loading screen, BfA behind two) so that it has less overall data to manage at a given time and can maintain some degree of comfortable running on older PCs. However, initial loading into the game can take a while and changes of continent can yield similar issues – here’s a video that illustrates that!

For most MMOs outside of FFXIV (because of the PS4 version), some degree of SSD optimization is possible, and you’ll notice that Blizzard has, starting with BfA, noted that their recommended requirements include an SSD to install the game to, with a minimum requirement of a 7,200 RPM mechanical hard drive. However, a lot of MMOs are also designed to run for folks on sub-optimal hardware, and the end result is that MMO developers build games to an expectation of lower speed storage, using predictive streaming of data, bespoke travel routes to optimize this process, and a similar amount of data bloat to most modern console-first games.

So in summary, we have hardware that still relies on protocols built mostly for mechanical hard drives and with layers of interaction and abstraction that adds latency, and we have games built for consoles or low-spec storage, resulting in little more than loading time improvements that don’t scale 1:1 with transfer rate improvements. What does the future look like?

The Future: SSDs As Normal, Low-Level API Support to Reduce Latency: With the upcoming console generation, we will see a massive leap forward in storage hardware baselines thanks to the fast SSDs in both the XSX and PS5. It will take 1-2 years before games really start to lean on this heavily, outside of first-party titles, as most games currently in-development for the new systems started life on the PS4 and Xbox One and are going to be cross-platform, like Cyberpunk 2077.

The hope for the future comes with what the new SSD technology inside of both systems is capable of. For a detailed look with far more detail than I can summarize, Anandtech’s writeup of the SSD technology inside both systems is well worth a read, but I will provide the salient points here.

First, the less-impressive on this front Xbox Series X. It seems to use a mostly off-the-shelf drive, even referring to it as NVME rather than fully custom. At 1 TB of storage, it is a good size, and it offers two different read numbers – a standard sequential read performance of 2.4 GB/s, while compressed reads offer an increase to a theoretical 6 GB/s maximum. This is accomplished through Microsoft’s BCPack compression, which has dedicated logic in the system to managing the compression and decompression of data in real time. This means that doing these intense operations shouldn’t strain the CPU at all, and it should extend the useful capacity of the 1 TB drive, especially when coupled with more svelte game installations that don’t have to account for extra copies of asset data. It used DirectStorage as a low-level API to allow games to run their own storage for the most part, and this is something we’ll revisit in a moment! The system has what equates to a modern memory card slot which allows you to buy a custom-cased NVME drive sold by Microsoft and slot in another 1 TB of equivalent performance, keeping game installations on fast media rather than a slow USB external drive.

As for the Playstation 5, it has the vastly more interesting SSD technology. Sony has done far more tweaking and tuning with the hardware in their SSD than Microsoft appears to have. Sony is using what appears to be a 12-channel flash interface, unusual in the consumer space but seen in the pro-grade SSD market, and has several patents which describe a different modality of operation, like using larger byte-size file system pages to allow the use of a smaller buffer to cut costs, and dedicated hardware not just for compression and decompression but also for direct memory access, allowing the SSD to dump data directly into RAM instead of needing to bounce around multiple steps to get the data where it is needed. All of these combine for Sony to claim a standard, non-compressed sequential read of 5.5 GB/s, right up there with current PCIE4.0 x4 NVME SSDs on PC, but then with their Kraken compression technology, it can reach a theoretical maximum of 22 GB/s with a rated “typical” output of 8-9 GB/s.

So they’re technically impressive, yes, but what is the secret sauce?

Primarily, it is the combination of the custom IO coprocessing each system has coupled with the low-level API access. Both systems use on-the-fly compression and decompression to store data more efficiently and to be capable of filling RAM and getting a game operational literally thousands of times faster than the slow platter drives of the current generation equivalents. If this was left up to the CPU to do, it could manage the work, but compression and decompression are computationally expensive and relying on the CPU to manage that workload and a game effectively would cut into the power available for the game itself. By designing and building custom logic units for doing this work, Sony and Microsoft can both offload this work from the main CPU, leaving it fully to engage with the game being played. The direct memory access is a boon as well, as both the DirectStorage API on XSX and the DMA logic in the IO coprocessor of the PS5 allow games direct access to storage.

Above, when talking about the current state of hardware, I mentioned how much red tape in software and OS the games we play have to go through to even get the data they need from storage, but these technologies simply allow the game to manage its own storage needs and requests directly with the hardware. This approach removes a lot unnecessary handoffs from the software side, which in turn offers substantially faster performance in that data can be made available with no undue delay.

So back to the actual topic relevant to the majority of this blog’s readers – what does this mean for us?

Well, to start with, Microsoft has committed to bringing the DirectStorage API to Windows 10, meaning that games will eventually be able to skip the multi-step handoff process as it exists today due to hardware abstraction and instead be able to directly manage their own storage, drastically improving response time to data requests. This will have knock-on effects across storage types, as even hard drives could benefit from lower latency accesses. However, where this should be most pronounced is in games built for it from the ground up and designed to use it to maximum effect.

One big thing it means is that from a hardware side, we’ll see a renewed push towards solid state storage on most gaming desktops. Costs are down and continuing to drop and a 1 TB NVME drive has been a sub-$100 cost for much of the last 18 months, meaning that they should see their way into a larger number of prebuilt computers and the cost analysis should mean that most DIY enthusiasts will be using them in new builds, if they weren’t already planning on it.

From the software side, I would fully expect games to start using SSD storage as a baseline and that SATA SSDs will be a minimum spec for most games after the next year and change. Game installs should get smaller as this becomes the normal, and eventually storage performance will finally force the upgrade for anyone interesting in continuing gaming on PC.

For MMOs, though, I have so much excitement about the theory of what that would enable. Right now, the thing that keeps us to limited maps, zone-based loading screens, and the like is down to storage technology in many ways. In a scenario where typical read speeds can reach and sustain 8-9 gigabytes a second, you could then load full current world maps in most MMOs every second. With that kind of speed, there is a lot of creative possibility opened up. Larger worlds with more intricate details and no pop-in, dungeons built into the world and ready to explore without a loading screen, or even stepping outside the bounds of a planet into space and larger boundaries for play. There is a lot of potential for reducing loading screens to zero while also increasing the playspace and giving us actual virtual worlds loaded with detail. Imagine Destiny 2 with no loading screens between planets, FFXIV with no zone boundaries, WoW with no continent boundaries, or The Division with seamless movement all over the virtual cities both games showcase. Some of this depends on servers, of course (instant dungeons most notably) but the battle between hardware manufacturers makes even that less likely to be a bottleneck!

Overall, it is very worth noting that by drastically improving the performance of what ends up being a base-level gameplay experience that new games will be designed for, the new consoles have set the stage for a fascinating race forward in storage on desktop PCs and I hope that us MMO players reap the benefits!

One thought on “Sidenote: The Potential For MMOs and Open World Games With Upgraded Storage Solutions

  1. I am pretty sure you can play WoW from a USB stick, as the transfer rates are higher than a mechanical drive. I’m thinking of something like Monster Hunter’s 90sec load times on PS4 vs. 5 second load times on PC/SSD.

    To me this console generation is more about a new hardware standard, allowing devs to focus on a standard platform for development, as you’ve pointed. SSD as default, 4k+ RTX video, and better networking protocols.

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.