Introduction#
As someone who once carried a desktop case back and forth between school and home to enjoy gaming more comfortably (a bit of a fool), after going through a series of operations like buying an airline case and switching to a smaller case, I finally came to a stunning conclusion—carrying a case to school is really inconvenient.
Streamer, streamer, playing games on a desktop is indeed very enjoyable, but it's still too troublesome. Do you have any recommendations for a more portable, high-performance, and long-lasting computer? Yes, there are options, my friend. I'll give you a pillow, and you can dream it up yourself. (You want it all, right?)
So, is there a solution that combines portability and high performance?
Actually, there is, or I wouldn't be writing this article. Now let me introduce you to: the lightest choice for gaming in dorms, the strongest performance at the same weight, the best partner for gaming on the go, the experience of AAA titles in your pocket, and the assurance of worry-free gaming without battery anxiety—cloud gaming. (Written by AI, not me, it sounds a bit awkward, but I still want to include it, hehe)
Ahem, this cloud gaming is not the same as that cloud gaming; this solution is based on the remote streaming solution built on Sunshine and Moonlight streaming software.
Streaming Effect#
First, the results:
Remote host from Hangzhou to Ningbo, network latency is around 9-11ms, total encoding/decoding latency is about 7-8ms, and the total latency is estimated to be around 20ms.
At a bitrate of 30Mbps, you can play games like Baldur's Gate, Potato Brothers, and EVE Online at 90 frames (120 frames) at 1080P resolution without much bitrate consumption.
After testing for the past couple of days, it turns out that playing FPS and TPS games that require high bitrates is also possible. Playing Battlefield 2 feels quite similar to being in front of a computer, with streaming frame rates reaching seventy or eighty (mainly because my graphics card can only run at that frame rate). However, the performance in Battlefield is a bit lackluster; there is still some blurriness at a distance, making it hard to see distant players. However, there was no noticeable delay, nor was there any delay when shooting (as for the blurriness in Battlefield, it was already quite blurry at a distance, so a bit more blurriness in streaming doesn't really matter).
Network Environment Requirements#
To implement this solution, a rather specific network environment is needed. First, let me praise our school's campus network; it's so stable that it doesn't feel like a campus network, with 90M downlink and 90M uplink. Secondly, there is a requirement for the server to support either IPv4 or IPv6. If you can apply for an IPv4 address from your ISP, that would be best. If you can't get an IPv4 but both networks support IPv6, that can work too. If neither an IPv4 address nor IPv6 is available, you might need to consider using Jiaoyue Lian for internal network penetration.
For comfortable streaming, the server needs at least 30M uplink, and the client needs 30M downlink. Here are two websites for reference:
Speed Test: https://www.speedtest.cn
IPv6 Test: https://ipv6ready.me/index.html.zh_CN
How to Deploy This Streaming Solution#
I recommend checking out the videos by Bilibili user Photographer Yunfei; his tutorials are very detailed and hands-on.
The solution I use is the Sunshine base version and the modified Moonlight version, with remote booting using a Xiaomi smart plug, and the IP is updated dynamically using DDNS-GO. Here are a few issues I encountered:
-
When installing the Sunshine base version, it is recommended to disable antivirus software first, as it may block the installation of the virtual display, causing the installation to fail. Kaspersky is known to block it.
-
In the new version of the Sunshine base version, you no longer need to modify that file to change the resolution of the virtual display; you can directly add the resolution in the Sunshine control panel.
- It is recommended to use H.265 encoding, as H.265 offers better picture quality at the same bitrate compared to H.264, and most devices now support H.265 encoding and decoding. As for encoding/decoding latency, changing the encoding method generally does not affect latency much, at most adding a millisecond or two. (AV1 encoding is also very advanced, but my device doesn't support it, so I have to give it up.)
-
Question: Hey, you said I've installed the virtual display, can I unplug the original monitor? Answer: No, the virtual display cannot utilize all the performance of the graphics card, which may cause occasional stuttering.
-
What to do if you encounter a black screen? Don't worry, just press Win+P a few times to fix it. If you want to end the streaming, please press "End Conversation" instead of "Disconnect."
Lastly, I want to mention that since I use a Lenovo Xiaoxin tablet as the streaming client, this tablet cannot have its screen go black while an external display is connected, and it uses an OLED screen, which could lead to burn-in. So I came up with a genius idea: as we all know, even burn = no burn, so I opened the gallery on the tablet, found a pure black image, and set it as the display. OK, problem solved.