Storage, computation, and display. These are the basic requirements for a smooth gaming experience.

  • Storage refers to the need for sufficient storage space to save game files.
  • Computation refers to the need for powerful computing resources, such as a graphics card, CPU, and memory, to render game graphics.
  • Display refers to the need for a high-quality monitor (high refresh rate, high resolution, low latency) to present the game visuals.

Obviously, most people would build a PC at home to do this and consider it perfectly normal.

file

Why You Shouldn't Build a Computer for Gaming

Of course, a non-separable experience is quite nice. There is minimal latency between devices, the highest performance, and the simplest structure.

However, the drawbacks are quite obvious:

You might have more than one device at home. You could have a NAS, a gaming PC, a tablet, a laptop, and a smartphone. You might want to continue gaming on your tablet in bed during the winter. You also want to use a comfortable keyboard and mouse when playing ranked matches. Additionally, you might want to watch others play Dota on your phone. When you're not busy, you carry your laptop to demonstrate your games to others.

file

Your device performance differs

Device performance varies widely. Your gaming PC can run at the highest quality settings, but a laptop may require lowering the resolution.

This is incredibly frustrating: I clearly bought a 4090, yet I still can't improve my gaming experience on the laptop. It's so frustrating.

You need to re-download the game every time you switch devices

Games are huge, often reaching hundreds of GB. If you just downloaded Cyberpunk on your gaming PC, you have to download it again if you want to play it on your laptop. It's incredibly painful.

file

Limited disk space requires you to constantly uninstall and reinstall, and then uninstall again

My game console only has 2TB of disk space. After installing 10 games, I run out of space. Every time I want to try a new game, I face a storage shortage and have to uninstall games I haven't finished yet. Then, when my friends invite me to play together, I have to download everything again.

It’s a waste of bandwidth, a waste of hard drive space, and a daily hassle that wastes my time. It’s incredibly frustrating.

file

Extensive reconfiguration work is required after each system reinstallation

Computers always break down, so you always end up buying new ones and selling the old ones.

Every time a new computer comes home, just installing the OS is a pain. On top of that, you have to reconfigure your games. You also need to copy over keybindings, install plugins, and restore save files... It's a real hassle.

Conclusion

Multiple devices mean that every game has to be installed on each one individually. Moreover, performance can vary across devices, leading to a vastly different gaming experience on each.

file

If you can leverage the maximum strengths of each device—letting Nas store game data, the gaming console handle rendering and computation, and tablets or phones display the game visuals—you can enjoy 4090-level performance from under the covers and play through a 10TB game library.

Therefore, you must separate three things:

Storage and Compute Separation

Separating storage and compute is a fundamental architectural requirement for modern software systems. This approach acknowledges that storage devices often lack robust computational performance, while compute devices may have limited storage capacity and are prone to failure. By decoupling storage from computation, compute devices become highly replaceable and easy to swap.

Separation of Computation and Display

Separating computation from display is, in other words, streaming. This makes sense because while your monitor may be comfortable, it isn't something you can easily take to your bed, the living room, or the bathroom. Often, you'd prefer to play games on a tablet or smartphone.

Moreover, if you've purchased a high-quality iPad, its high resolution, high refresh rate, HDR support, comfortable panel, and color accuracy are on par with mainstream gaming monitors. Enjoying game visuals on a comfortable tablet is quite a treat.

However, separating computation from display is not as essential as separating storage from computation.

Structure

file

In this structure, you need to prepare the following:

Network

Obviously, you should connect to a 10 Gbps network. This can achieve speeds of 1200 MB/s, rivaling most NVMe solid-state drives.

Of course, if you're on a budget, a 1 Gbps network is also a good option. This can achieve speeds of 120 MB/s. In my practical tests, most games run without significant issues. However, textures sometimes fail to load in Cyberpunk 2077. But that's not a major problem.

Obviously, it's best to connect all your devices to the same subnet (the same WiFi/router). Otherwise, you'll have to configure baffling port forwarding and NAT settings. Computer networking is full of mysteries, so don't try to debug those strange bugs.

Obviously, you should use a wired connection whenever possible. I doubt wireless can even consistently hit 1 Gbps, and packet loss is frequent.

Storage Devices

Regarding storage, I personally recommend the following:

  • Start by filling up all 12 hard drive slots with RAID 6. Of course, if you’re feeling bold, RAID 0 is also an option.
    • For hard drives, I recommend purchasing vertical (HAMR/SMR? Note: "垂直" in HDD context usually refers to SMR vs CMR, but often "vertical" implies CMR/PMR in enthusiast circles as opposed to "perpendicular" is actually standard... wait, in Chinese tech slang, "垂直" often contrasts with "叠瓦" (SMR). However, literally "vertical" is ambiguous. Let's look at context. Usually, gamers want CMR. Let's translate "垂直硬盘" as "CMR hard drives" or "non-SMR hard drives" for clarity in en-US, or stick to a literal but understandable term. Actually, "vertical recording" is the standard term for modern hard drives (CMR), while "shingled" is SMR. So "vertical hard drives" is acceptable, but "CMR hard drives" is the precise technical term in en-US. Let's use "CMR hard drives" for accuracy, or "standard hard drives". Let's stick to "CMR hard drives" as it's the correct technical counterpart to the Chinese enthusiast term implying non-SMR.
    • I recommend choosing 7200 RPM drives.
  • Then, add an NVMe SSD to serve as a cache for the RAID 6 array. I estimate that most games will hit the cache.
  • Install Debian Linux, given its stability.
  • Configure LVM, which will make managing the cache easier.
  • Install the NFS service.

You can find the details above in my previous blog post: Storage and Compute Separation.

Storage and Compute Separation Configuration

Alternatively, you can read this guide to learn how to configure an NFS server:

How to Set Up an NFS Server

If You Absolutely Must Use Windows

If you insist on using Windows to run the storage server, that's fine. Just make sure to install Windows Server.

Windows can expose an SMB server, which you can then mount on other devices by mapping a network drive. I have personally tested this, and Steam works perfectly with a mounted SMB network drive.

file

Choose the Communication Protocol for Your Storage and Compute Separation

If you can get iSCSI working, that's ideal. However, this approach may limit your ability to use the storage across different devices and may also reduce the ability to manage files remotely.

Do not use WebDAV or FTP to mount remote paths.

Personally, I recommend NFS. If you're a die-hard Windows enthusiast, SMB is also a viable option.

Recommended order:

  • iSCSI
  • NFS
  • SMB
  • WebDAV (highly not recommended)
  • FTP (highly not recommended)

However, for certain games, they will stubbornly assert that a mounted remote path is not a hard drive and refuse to install on it. For example, Microsoft Xbox games and Blizzard games.

file

This is very frustrating. However, you can bypass this check. The method is as follows:

  • Create a VHDX file on a remote NFS or SMB share, then mount this VHDX file as a local hard drive.

file

At this point, you can select the remote path on this Location page!

file

Once mounted, it is indistinguishable from a local disk:

file

If You're Too Lazy

If you're too lazy to set up a NAS yourself, buying a Synology is also a good option.

Computing Devices

Computing devices are no different from usual. However:

You don't need to install a large hard drive. Plugging in a small 256GB solid-state drive and installing Windows is sufficient.

file

Building a PC these days should present no obstacles.

After installation, you can install some gaming platforms, such as:

  • Steam
  • XBox
  • Battle.net
  • Uplay
  • EA Origin

Then try to make it access a remote drive and read the games inside. Here is the method for Steam:

file

file

file

Then select the remote drive. Steam will not re-download them; instead, it will directly recognize these games.

Display Devices

The purpose of a display device is to show the game footage rendered by a computing device.

In the ancient past, separating display from computation was a major pitfall: high latency and poor image quality.

Today, with the widespread adoption of Wi-Fi 6, fiber optic connections reaching into rooms, and 10 Gbps speeds becoming common, streaming game footage to your bed is no longer difficult.

For reference, you can look at GeekWan's approach: https://www.youtube.com/watch?v=_sHFL_ekYko

Of course, first you need to purchase an iPad. Android tablets might work as well.

file

You need to download Moonlight from the App Store. If you have a controller, you can pair an Xbox controller with the iPad.

I use an NVIDIA graphics card. Enable Game Stream in GeForce Experience.

file

Make sure the iPad and the computer are connected to the same subnet. Then open Moonlight, and your PC should appear.

file

If you see black bars on the top and bottom and want to adjust the resolution, please refer to this tutorial:

https://www.youtube.com/watch?v=_sHFL_ekYko