Launching Godot Games on Steam Deck from the command line via Remote Shell
For some reason, my Godot game would no longer launch on the Steam Deck. I could hear it running as if it were running in the background, but the screen kept showing the Steam Deck’s UI.
Since it’s all Linux I figured it should be possible to just drop to the command line and launch a game from there. Linux typically uses the DISPLAY environment variable to tell the application where its output should be shown. And it turns out, it worked exactly as expected.
In the Steam Devkit Management Tool, there’s a
Remote Shell
button.
Once the shell is launched, I was curious about the OS:
Last login: Sun Jul 3113:40:302022 from 10.10.1.10(deck@steamdeck ~)$ uname -aLinux steamdeck 5.13.0-valve15-1-neptune-02197-gf6ec7ad3762a #1SMPPREEMPT Thu, 26 May 202219:57:25+0000 x86_64 GNU/Linux
The location where Steam keeps its games is somewhat hidden:
(deck@steamdeck ~)$ls /home/deck/.local/share/Steam/steamapps/common/ Age2HD RiME'BattleBlock Theater'RimWorldCarrion rocketleagueControl'Sea of Thieves''Deep Rock Galactic'"Sid Meier's Civilization V"'Disco Elysium''Skyrim Special Edition'"Don't Starve Together"'Stardew Valley''Elite Dangerous''Steam Controller Configs''Fable Anniversary'Steam.dllFactorioSteamLinuxRuntime'Fury Unleashed'SteamLinuxRuntime_soldier'Neon Abyss''Steamworks Shared'OutwardStickFightTheGame'Proton 7.0''Super Meat Boy''Proton - Experimental'TerrariaRBSValheim'Red Dead Redemption 2'
But a devkit game won’t be found there. It’s in the “devkit-game” directory instead:
And it’s running. Launching games via the command line works well, and this may be great for debugging slightly more complex issues during launch, especially when attaching a debugger, or even when passing arguments to trigger specific scenarios on an actual device.
We can take this up to another level. How about sharing your PC’s mouse and keyboard with the Steam Deck? Let’s go.
Godot Engine is an open-source game engine. With the 4.0 release on the horizon, it’ll gain quite a bit of attention. And it’s an engine worth keeping an eye on. Internet Gaming. Serious business. Game development is serious business. The global gaming market size was 203 billion USD in 2020 (per fortunebusinessinsights). It is predicted …
Godot Engine 4.0 has been released per official announcement. With version 4.0, Godot has gone through “3+ years of breaking and rebuilding from the ground up, a complete core overhaul and a full engine rewrite, through 17 alphas, 17 betas and 6 release candidates“. The announcement post is credited to “2000+ Godot contributors.” It’s a …
I’m wrapping up development on version 1 of the Inventory System, which is currently at v1.18.1. All core functionality is in place, and it provides many quality-of-life features. The guide covers and walks through most of the code base, and the demo projects show off a lot of use cases. This first version has been …
Godot Engine 4 has a bug (#50824) that causes particle jitter when the game is paused. It does look quite distracting. The Bug in Action This is a proof-of-concept wave shooter running in Godot Engine 4.0.2. Pausing the game was initially just a simple process_mode toggle. But as shown in the video clip above, there …
Launching Godot Games on Steam Deck from the command line via Remote Shell
For some reason, my Godot game would no longer launch on the Steam Deck. I could hear it running as if it were running in the background, but the screen kept showing the Steam Deck’s UI.
Since it’s all Linux I figured it should be possible to just drop to the command line and launch a game from there. Linux typically uses the DISPLAY environment variable to tell the application where its output should be shown. And it turns out, it worked exactly as expected.
In the Steam Devkit Management Tool, there’s a
Remote Shellbutton.Once the shell is launched, I was curious about the OS:
The location where Steam keeps its games is somewhat hidden:
But a devkit game won’t be found there. It’s in the “devkit-game” directory instead:
To run a game, go to the devkit directory where your game is and run it from the command line:
In Linux, output goes to the device specified via the DISPLAY env var. When connecting to the Steam Deck via shell, that is missing, hence the error.
Let’s run it again, with the DISPLAY environment variable set to the first device:
And it’s running. Launching games via the command line works well, and this may be great for debugging slightly more complex issues during launch, especially when attaching a debugger, or even when passing arguments to trigger specific scenarios on an actual device.
We can take this up to another level. How about sharing your PC’s mouse and keyboard with the Steam Deck? Let’s go.
Related Posts
Is Godot is the Linux of Game Engines?
Godot Engine is an open-source game engine. With the 4.0 release on the horizon, it’ll gain quite a bit of attention. And it’s an engine worth keeping an eye on. Internet Gaming. Serious business. Game development is serious business. The global gaming market size was 203 billion USD in 2020 (per fortunebusinessinsights). It is predicted …
Godot Engine 4.0 released!
Godot Engine 4.0 has been released per official announcement. With version 4.0, Godot has gone through “3+ years of breaking and rebuilding from the ground up, a complete core overhaul and a full engine rewrite, through 17 alphas, 17 betas and 6 release candidates“. The announcement post is credited to “2000+ Godot contributors.” It’s a …
Inventory System v1.18.1 available (and v2 progress update)
I’m wrapping up development on version 1 of the Inventory System, which is currently at v1.18.1. All core functionality is in place, and it provides many quality-of-life features. The guide covers and walks through most of the code base, and the demo projects show off a lot of use cases. This first version has been …
The Pause Handler: Working around Godot 4’s particle jitter bug
Godot Engine 4 has a bug (#50824) that causes particle jitter when the game is paused. It does look quite distracting. The Bug in Action This is a proof-of-concept wave shooter running in Godot Engine 4.0.2. Pausing the game was initially just a simple process_mode toggle. But as shown in the video clip above, there …