Go, Go, Godot!
  • 0

Launching Godot Games on Steam Deck from the command line via Remote Shell

August 2, 2022

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 31 13:40:30 2022 from 10.10.1.10
(deck@steamdeck ~)$ uname -a
Linux steamdeck 5.13.0-valve15-1-neptune-02197-gf6ec7ad3762a #1 SMP PREEMPT Thu, 26 May 2022 19: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'     RimWorld
 Carrion                  rocketleague
 Control                 '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.dll
 Factorio                 SteamLinuxRuntime
'Fury Unleashed'          SteamLinuxRuntime_soldier
'Neon Abyss'             'Steamworks Shared'
 Outward                  StickFightTheGame
'Proton 7.0'             'Super Meat Boy'
'Proton - Experimental'   Terraria
 RBS                      Valheim
'Red Dead Redemption 2'

But a devkit game won’t be found there. It’s in the “devkit-game” directory instead:

(deck@steamdeck ~)$ ls ./devkit-game/
arpg            arpg_game            arpg_game-settings.json  devkit-steam
arpg-argv.json  arpg_game-argv.json  arpg-settings.json

To run a game, go to the devkit directory where your game is and run it from the command line:

(deck@steamdeck ~)$ ./devkit-game/arpg/arpg.x86_64
Godot Engine v4.0.alpha12.official.2c11e6d9e - https://godotengine.org
ERROR: X11 Display is not available
   at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:4612)

(zenity:29986): Gtk-WARNING **: 10:56:25.372: cannot open display:
ERROR: Unable to create DisplayServer, all display drivers failed.
   at: setup2 (main/main.cpp:1715)
ERROR: BUG: Unreferenced static string to 0: interface_added
   at: unref (core/string/string_name.cpp:131)

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:

(deck@steamdeck arpg)$ DISPLAY=:0.0 ./arpg.x86_64
Godot Engine v4.0.alpha12.official.2c11e6d9e - https://godotengine.org
Vulkan API 1.2.203 - Using Vulkan Device #0: AMD - AMD RADV VANGOGH

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.

developer experiencegodotSteam Deck
Posted in Godot, Steam.
Share
PreviousShare your Computer’s Mouse and Keyboard with your Steam Deck
NextGodot Engine on the Steam Deck – Developing games on the go?

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Related Posts

  • November 23, 2024

    Inventory System v1.18 available

    A new version of the Inventory System is available. This release includes a new structure placement feature and improves crafting. Structure Placement Players can now place structures from their inventory. When using an inventory item representing a structure, the player is prompted to select where to place it. The included demo lets players place an …

  • Godot Game Engine Logo
    June 1, 2023

    Godot Engine 4.1.dev4 is available

    Development snapshot #4 of Godot Engine 4.1 is here. Among many other changes, it fixes a lighting issue related to using Light-only mode in CanvasItemMaterial (#44559). Unfortunately, it also introduced a UX issue with gradient color pickers (#77745), which makes it quite difficult to work with gradients at all. If you use gradients, I recommend …

  • Godot Game Engine Logo
    September 15, 2022

    Godot Engine 4 reaches beta

    Just a couple of days ago, Godot 4.0 alpha 17 was announced. Today, Godot Engine 4.0 beta 1 was released. Be sure to check out the announcement. There are lots of improvements across the board; rendering, lighting, physics and navigation, animation, and scripting.

  • March 27, 2025

    Inventory System 2 Alpha 5 available

    This release addresses an issue that arose due to Godot 4.4 changes in how JSON is deserialized. Relevant Godot issues: #103374 and #61464. Makes sense why it was changed, but it might impact anyone unaware who’s consuming a JSON-based API, and wondering why responses may not be as expected. In addition, this release now includes character damage and …

    © 2025 GoGoGodot.io. All rights reserved.