Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement remote one-click-deploy to desktop platforms #4897

Closed
TheConceptBoy opened this issue Jul 17, 2022 · 3 comments
Closed

Implement remote one-click-deploy to desktop platforms #4897

TheConceptBoy opened this issue Jul 17, 2022 · 3 comments

Comments

@TheConceptBoy
Copy link

Describe the project you are working on

A game with steamdeck compatibility in mind.

Describe the problem or limitation you are having in your project

Having to install Godot engine on the steamdeck and transfer project files over ftp or git for performance testing.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

A feature allowing Godot to compile the game on the development machine but run the application on a network devices. This is meant to help test the game on remote or multiple computers with varying hardware configurations, as well as portable gaming platforms like the Steamdeck easily.

Press compile, look over at the second computer or steamdeck and see the game launch and run without having to download the project files and compile. This would also allow to compile larger projects on more powerful machines while testing on weaker hardware without having to wait for weaker hardware to compile the project itself as it would take longer.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Master > Slave arrangement. Godot on the main development machine is up as a master server (akin to a web server). Then any testing computers are set up to listen an IP address of the master machine. When the master machine compiles the game, the slave machines download the compiled code and execute the program on their end. This should work as long as the development and slave machines are running on the same OS.

Possible issues arise when the slave machine is a Linux or mac where the master machine is a Windows. In that case either the development machine can compile multiple targets or the slave machines could download the project and compile on their own target.

If this enhancement will not be used often, can it be worked around with a few lines of script?

I think this would be used often in later stages of the game development cycle where optimization is handled. Being able to make use of powerful hardware to compile a heavy project quickly but then test the game on something weaker would be useful.

Is there a reason why this should be core and not an add-on in the asset library?

Not sure if it can. Maybe an extension could do the job.

@Calinou
Copy link
Member

Calinou commented Jul 17, 2022

Related to #2608.

I don't think this can be implemented without a lot of intrusive changes to the editor. Without SSH access to the remote machine, it's impossible to tell another remote machine to download a Godot binary and run it (even on the same local network).

If you find a way to synchronize the project files across both machines (look into Syncthing), you can tell Godot to connect the debug server to a remote machine: godotengine/godot#60819

@TheConceptBoy
Copy link
Author

TheConceptBoy commented Jul 17, 2022 via email

@Calinou Calinou changed the title Stream game compile to a network computer. Implement remote one-click-deploy to desktop platforms Sep 9, 2022
@akien-mga
Copy link
Member

This was implemented by godotengine/godot#63312.

It currently requires a bit of manual configuration to set up the SSH connection. For Steam Deck, I'd like to provide a preset that includes all / most of the config out of the box, but I need to double check if that's possible.

@akien-mga akien-mga added this to the 4.0 milestone Dec 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants