moonlight-stream / moonlight-common-android

Android common library - now embedded in Moonlight Android
GNU General Public License v3.0
116 stars 30 forks source link

Extend support for other game streaming protocols #23

Open mirh opened 6 years ago

mirh commented 6 years ago

Android version was released hours ago https://play.google.com/store/apps/details?id=com.valvesoftware.steamlink

Therefore, the thing seems as much similar to gamestream as possible now.

mirh commented 6 years ago

https://codingrange.com/blog/steam-in-home-streaming-discovery-protocol https://codingrange.com/blog/steam-in-home-streaming-control-protocol

Initial info on the protocol EDIT: https://github.com/OpenSourceLAN/steam-discover/blob/master/listener.js EDIT2: https://github.com/luser/steampcapdecode https://github.com/wireshark/wireshark/blob/master/epan/dissectors/packet-steam-ihs-discovery.c

mirh commented 5 years ago

https://github.com/luser/steamstreaming

http://media.steampowered.com/steamlink/rpi/public_build.txt Come on somebody. We are now talking about 4MB of plain C streaming client to understand.


~~In other news, the switch community has now its very own host open source streaming utility. It would really be cool if you could merge your efforts.~~

(even though I wouldn't disdain the also newly launched AMD's game streaming, or one of those other whatevers browser-based clients either)

cgutman commented 5 years ago

https://github.com/luser/steamstreaming

http://media.steampowered.com/steamlink/rpi/public_build.txt Come on somebody. We are now talking about 4MB of plain C streaming client to understand.

Did you actually look what was in there before making that claim? The client in there is a 4MB compiled binary. There is no C code in that archive whatsoever. The reason nobody has built a custom Steam streaming client already is because it's not as trivial as you make it sound.

I'm also not sure that there is much to gain for the community by doing so anyway. Valve already has Windows, Mac, Linux, Android, (iOS likely soon), and Raspberry Pi clients. Of course It would be nice to have open source Steam IHS clients, but Moonlight already provides an open source game streaming client for the community to reference on all of those platforms and more, so I don't see a ton of value there either.

In other news, the switch community has now its very own host open source streaming utility. It would really be cool if you could merge your efforts.

Yep, I'm aware and I've already talked with them about several ways they could improve reliability and performance. I'm happy to help with projects like these.

(even though I wouldn't disdain the also newly launched AMD's game streaming, or one of those other whatevers browser-based clients either)

Reversing AMD streaming could be fun, but you have to understand that it's not like I can turn around a magic version of Moonlight that works with Nvidia and AMD streaming solutions the day after I manage to figure out how their protocol works.

There is a lot of design effort and thought required to add a whole new streaming protocol without negatively impacting the existing large Nvidia userbase of Moonlight.

That said, I do think AMD streaming would be the best fit for a Moonlight-style reverse engineered client. Right now it is only on Android and iOS, so bringing it to PC, Pi, Vita, Switch, etc. could be compelling and it would undoubtedly complement GameStream by allowing AMD users to use the app too.