You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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
It could very well work with a basic FTP protocol. Just like git which
places a status file which blocks other git applications from tempering
with the repository while git is busy committing or pushing it. So too can
godot act as an FTP server and place a file containing latest compile data
and whether or not the data is safe to be accessed by a client application.
All the slave application has to do is pull the file every maybe five
seconds and check if it's compiled eight matches the compiled eight on the
remote file. If it does not, fetch the files and run the application. I'm
sure there are better protocols then that but this old lady seems like it
would work, I can imagine even P2P overeater net would allow us to have the
slave application listen to the master application commands to fetch the
data.
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.
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.
The text was updated successfully, but these errors were encountered: