2014-12-12, 10:49
Starting a new thread for this concept since garbear is back and posted some ideas about adding Game Streaming / Cloud Gaming (ometimes refered to as gaming on demand) functionality to RetroPlayer,
http://en.wikipedia.org/wiki/Cloud_gaming
The basic idea is that you have a more powerful computer on your network (on internet) with faster CPU/GPU that actually does all or most of grunt work and then you basically either just try to do low-latency streaming over the network as a captured video stream with hardware encoding and a low-latency player, or do can go a other way and just do partial pre-processing and then actually stream the game data and finish the rendering on the target machine, which obviously if much harder to achieve.
Examples of open source open source projects that offer Cloud Gaming / Game Streaming:
OBS (Open Broadcaster Software) also offer GPU-based game capture for high performance game streaming to video and compatible with multiple game streaming protocols
https://obsproject.com
https://github.com/jp9000/OBS
GamingAnywhere looks very promising at first glance
http://gaminganywhere.org
https://github.com/chunying/gaminganywhere
Limelight which is suppose to be an open source implementation of NVIDIA's GameStream protocol, downside is that its written in Java and looks only to be compatible with Nvidia GPUs
http://limelight-stream.com
https://github.com/limelight-stream
In addition, maybe RakNet comprehensive C++ networking engine can also be good to hbe part of the the implementation of Cloud Gaming / Game Streaming here too regarless which backend engine is choose as it can be used for other stuff as well that would also be very interesting for RetsroPlayer and Kodi?
http://www.jenkinssoftware.com/features.html
https://github.com/OculusVR/RakNet
RakNet is already being discussed here for the other stuff that it can do related to networked gaming http://forum.kodi.tv/showthread.php?tid=201868
http://en.wikipedia.org/wiki/Cloud_gaming
The basic idea is that you have a more powerful computer on your network (on internet) with faster CPU/GPU that actually does all or most of grunt work and then you basically either just try to do low-latency streaming over the network as a captured video stream with hardware encoding and a low-latency player, or do can go a other way and just do partial pre-processing and then actually stream the game data and finish the rendering on the target machine, which obviously if much harder to achieve.
(2014-12-12, 00:42)garbear Wrote: I'm thinking of adding a TCP transport to the Game API. this would have two benefits: multiplayer support, and the ability to run a libretro core on a different machine. so you could run a core on a fast computer, and either do multiplayer - by sending the video/input to a RPi client - or simply run the core in the background and do single player on the RPi.There are already several other open source projects that offer Game Streaming, not sure if any of their core concepts or even source code could be reused for this in order to add it to RetroPlayer?
Not sure how well this would work for 3D rendering, maybe the host could render the graphics and loopback the RGB data so it could be sent to a client...
Examples of open source open source projects that offer Cloud Gaming / Game Streaming:
OBS (Open Broadcaster Software) also offer GPU-based game capture for high performance game streaming to video and compatible with multiple game streaming protocols
https://obsproject.com
https://github.com/jp9000/OBS
GamingAnywhere looks very promising at first glance
http://gaminganywhere.org
https://github.com/chunying/gaminganywhere
Limelight which is suppose to be an open source implementation of NVIDIA's GameStream protocol, downside is that its written in Java and looks only to be compatible with Nvidia GPUs
http://limelight-stream.com
https://github.com/limelight-stream
In addition, maybe RakNet comprehensive C++ networking engine can also be good to hbe part of the the implementation of Cloud Gaming / Game Streaming here too regarless which backend engine is choose as it can be used for other stuff as well that would also be very interesting for RetsroPlayer and Kodi?
http://www.jenkinssoftware.com/features.html
https://github.com/OculusVR/RakNet
RakNet is already being discussed here for the other stuff that it can do related to networked gaming http://forum.kodi.tv/showthread.php?tid=201868