
Show HN: I wrote an open source cloud gaming service by WebRTC and Golang - giongto35
https://webrtchacks.com/open-source-cloud-gaming-with-webrtc/
======
dijit
I recently had the unfortunate situation of watching my girlfriend struggle
with doing her job (QC for a AAA game publisher) via RDP (and over a VPN).

I looked at Parsec as a solution and it.. didn't work.

Although watching her do normal things over the RDP/VPN combo was still
painful, writing emails or using internal chat applications was incredibly
latency ridden..

But it made me think very seriously about cloud resources and how we interact
with them, especially when it comes to writing text...

Does anyone know of any IDE that is purely remote? as in you type locally and
it's automatically syncing in the background on save?

The idea of running your unit tests and compile jobs in the cloud is really
appealing, and you don't incur the latency of rendering the UI remotely.

~~~
Guillaume86
Visual Studio (including Code) have live share, never tried it but seems to be
what you're looking for: [https://visualstudio.microsoft.com/fr/services/live-
share/](https://visualstudio.microsoft.com/fr/services/live-share/)

~~~
choward
> In VS Code, your browser will launch while a notification will appear launch
> asking you to sign in.

Sign into what? I was assuming this was a peer to peer solution and that I
wouldn't be giving my code to a third party.

------
skocznymroczny
"Last year, Google announced Stadia, and It blew my mind. That idea is so
unique and innovative."

How is it unique and innovative if such services existed for over a decade
(OnLive)?

~~~
drusepth
Most of the initial innovations seem to be in the hardware, e.g. controllers
that hop over your PC/console, game servers in edge nodes, etc. They're
incremental improvements, but my latency on Stadia gets down to single-digits
at times (though is usually low-mid double-digits), which is something I never
saw with OnLive (not a direct comparison since I have better Internet now).

There's some interesting software innovations that may or may not be
implemented (I'm not sure?), but I haven't heard of other streaming platforms
doing things like running games at significantly higher framerates (to
minimize the time between player input and game response) and predicting
button presses to buffer a stream before they happen. Those seem like
innovations in the space, even if they're under a terrible umbrella of a name
("negative latency").

~~~
anonymousab
> predicting button presses to buffer a stream before they happen

That sounds a lot like the server and client-side prediction (or p2p
'rollback') netcode that is in a lot of online games.

------
z0mbie42
This is a really interesting technical write-up, but please no.

Adding more streaming to the cloud bullshit only adds dependencies, points of
failure, costs and energy consumption. Especially when it's for playing games
that can easily be emulated on any phone today.

Humanity's first goal should be to reduce its energy consumption! This is the
opposite of the way forward.

~~~
giongto35
In my view, it is to share and save hardware resources and hence reduce energy
+ material cost. It is the same as the way cloud provider optimizes resource
by virtualization.

------
joshbaptiste
This is great, you may want to look at getting this to run on retro gaming
handheld consoles such as r/Bittboy r/RG350/ r/SBCGaming.. I could definitely
see me playing with a friend on a retro console with the multiplayer feature.
Not sure if they have wireless capabilities, yet an interesting project
nonetheless, thanks for the write up.

~~~
giongto35
Those handheld consoles are different ecology. But with cloudretro you can run
it on mobile browser. It offers the same comfortability (Unless you like the
feeling of button and widescreen :D )

------
grenoire
Regarding Windows 10 in your browser, Azure Bastion rolled out recently and
does exactly that: [https://azure.microsoft.com/nl-nl/services/azure-
bastion/](https://azure.microsoft.com/nl-nl/services/azure-bastion/)

------
danbolt
It's good that they're picky about which WebRTC implementation they use. I've
found that Google's tree isn't necessarily the best sort of thing for
streaming video games. I think Parsec's R&D into the situation is a good fit
for the use case.

------
jhoechtl
> the Golang garbage collector is uncontrollable, so sometimes there are some
> suspicious long pauses. This greatly hurts the realtime-ness of this
> streaming application.

That doesn't sound ... inspiring confidence?

~~~
throwaway894345
I also don't know what that's referring to. There's usually quite a lot you
can do to optimize for GC here. Depending on the root cause, you can create
fewer allocations using buffers, arenas, etc and you can also trigger manual
collections or disable collection for certain intervals. Hard to know what
limits he ran into without more detail.

