GDevelop Player - Broadcasting projects to different devices

I’m really like the broadcasting feature in AGK2 which is allow you to broadcast your game to other devices over the network. This is extremely useful for testing as you don’t need to export your project and upload it to the target device every time you want to test something and see how it performs in general. You can just simply press a button and see your game running on a different device and having access to all features of the device.

And this is useful not only on mobile devices, but also on desktop PC’s and laptops running different OS and having different specs and screen sizes.
For example; The PC I’m using running Windows 7 and having a quad core CPU, 8GB of RAM and 1GB graphics but I want my game to be playable on my Laptop running Ubuntu and having dual core CPU, 2GB RAM and 256MB graphics.
Using such broadcasting feature I don’t need to move my project over to my laptop manually to compile it or dual boot my PC or run Ubuntu in a VM to compile it and move the compiled game to my laptop for testing every single time, I can just press a button in AGK2 and see how my game is performs on the Laptop running Ubuntu and having significantly less powerful specs (and also smaller screen and resolution).
In case of mobile devices I can also test mobile features such as touch and sensors during broadcasting.

I don’t know exactly how broadcasting works with AGK2, but here is what I think:
Basically to be able to broadcast an AGK2 project to any other device running Windows, Mac, Linux or Android require to run “AGK2 Player” on the target device and the device need to connect to the same network as the PC running AGK2 and basically the Player downloads the project to the target device and run it natively on the device.

So what I have in mind basically a modified version of GDevelop (called GDevelop Player) designed to receive, compile and run (preview) GDevelop projects over the network on Windows and Linux (also Mac when it comes) so we can test our projects on different devices without need to manually move actual projects from one device to an other, dual boot or running VM’s or upload our project to anywhere only for testing.
Basically the Player would be an empty shell (no editors and such) capable to receive, compile and preview GDevelop projects over the network when it broadcasting from GDevelop on the same network. Of course the Player should store projects only temporary while project is running, when project or broadcasting is stopped everything need to be deleted.

In my opinion it would be extremely useful even on desktop PC’s and Laptops running Windows, Linux and Mac.
If/When native Android support is coming I think it not a question how useful it is…

EDIT://
Actually, such feature would be also useful to send our project to target device to compile it and save it so we don’t need to run VM’s, dual boot and move files manually from one device to an other only to compile it for Windows, Linux and Mac…

So what the system would do is:

  • Send the game project (surely compressed) to the other devices (it’s still unclear how)
  • The “player” see that the project changed, and automatically ask GDevelop to compile…
  • …and run it.

That would almost be something that could be but as a separate tools :slight_smile:
Not sure if I’ll work on it but I understand how it could be useful.

Yes something like that.

What I have in mind really is when you broadcast a project, actually you would sharing and sync project folder on local network between GDevelop (the host) and the Player (the client).
On desktop PC’s I think it would make more sense if the player would compile the project and run it that’s why I mentioned “modified version of GDevelop”, so the player would be GD without the editors and staff, including only the core to be able to compile and run GDevelop projects. This way you can broadcast a project from Windows to Linux and Mac and vice-versa.
I don’t know much about it how file synchronisation could be done technically, but I have done a quick search for open-source file syncing tools and I’ve found this:

Unison:
cis.upenn.edu/~bcpierce/unison/index.html
It is available for Windows, Linux and Mac and it is open-source and as far as I understand it able to sync files and folder between different locations on the same PC and also between different PC’s over local network or internet.

I guess it would be lot of work to integrate Unison and GDevelop but Unison may using some libs that could help you to find your own way to do it, if/when you decide to give it a go :slight_smile:

Hum… is’nt it already possible with steam ? Because it works really great for “legacy games” but it’s supposed to work with third party softwares launched from steam.

In the past, i was using ultra vnc to stream civilization IV to my android device (and was able to play in my bed), it was not perfect but turn turn helped a lot (and also no sound…). Steam provides image, sound, low latency.

Ok, it’s not open source :stuck_out_tongue:

Streaming is different because during streaming the calculations are done by the host and the end-results transferred to the client.
During broadcasting the raw materials transferred to the client and the calculations are done by the client and that would be the point to see how the games are performing natively on the client.

But yeah Steam Workshop could be a way to do it but it would require GDevelop to be released on Steam and have Workshop integration so we could share projects in the Workshop using GDevelop, and we could simply browse/download/update and run shared projects on different PC’s from the Workshop.

But I’m not sure if anything can be kept private in the Workshop so only we have access to it, because you may don’t want to share your project with other people and I don’t know what is Steam’s policy on using Steam on multiple PC’s same time, I would guess you are allowed to use Steam client only on 1 PC at the time but maybe I’m wrong, need to look in to that.

But GDevApp could be an alternative for something similar :mrgreen:
We could use GDevApp to share/sync projects for such purpose right from GDevelop but Steam and GDevApp would require high speed broadband to keep uploading/downloading the project files :frowning:

The point of broadcasting would be that, you can just press a button in GDevelop and your game is start running (natively) immediately on all devices connected.

IMO it should be more like TeamViewer/VNC/RDP rather than what 4ian described.

I think, it’s not useful to do streaming, what ddabrahim is a solution that can launch the game simultaneously on all your devices so that you can test how it is behaving. Streaming will only show you a video of your game running on a powerful computer, surely 100 or 1000 times more powerful than your mobile devices that you want to test.

At least, if you want to do streaming well that’s not problem, go for it: just grab one of the wonderful solution already existing and start streaming your game :slight_smile: But that’s not the role of GDevelop to provide this streaming, and it’s technically maybe even more challenging to make a good streaming software than making GDevelop as a whole. :slight_smile:

That’s an interesting idea. For Steam integration, I don’t know how their workshop is working but just keep in mind that this is not a silver bullet and it would take lots of time to integrate this, for a result that is uncertain at best :slight_smile: