Go, Go, Godot!
  • 0

Running Godot Games on Steam Deck

August 1, 2022

Right after I got my Steam Deck, I wanted to know how hard it is to get a Godot game running on it. What’s the developer experience for someone who’s stepping through this for the first time? It was really easy to do, so I’m sharing this here, whether you’re following along or like to live vicariously.

Developing vs Publishing

It’s worth noting that this is not the same as getting the game published on Steam. I’m just using a Godot 4 tilemap proof-of-concept code doodle with some purchased assets. Nothing to write home about. I’m only taking a quick peek at this from a development feedback perspective:

  • I have a Steam Deck
  • I have Godot and made something.
  • I’d like to see my Godot thing running on the actual Steam Deck hardware.

If you’re developing a game, it’s incredibly helpful to get feedback for the gaming experience from the actual, physical device. At a high level, a Steam Deck roughly “works the same as a controller.” But it’s important to get a feel for the minutiae. Are the controls mapped to the right buttons? Is the text too small? Is the camera shake effect too much? Things hit differently when you’re looking at a 7″ screen, not a 35″ monitor, a large TV, or something even bigger. Getting feedback early and often is valuable during development.

What’s the process

In a nutshell, your game should be compiled/exported for Linux (the native Steam Deck OS), and then, per the official Steamworks instructions, use the SteamOS Devkit Client to “package it up” and install it to your Steam Deck as a playable title.

It’s easy and doesn’t take long, depending on your Internet speed.

You’ll need:

  • The Godot Engine along with the Godot Export templates, if you don’t have them already. They’re 500MB+ and may take some time depending on your connection. So if you’re planning on trying this out, kick off the download for the export templates first. I’ve tested both Godot 3.5-rc7 and Godot 4-alpha12/13.
    • Downloads for Godot 3.4.4
    • Downloads for Godot 3.5-rc7
    • Downloads for Godot 4-alpha13
  • Download the SteamOS Devkit Client, directly from Steam.
  • Set your game to run in full-screen at a resolution of 1280×800 (WXGA, an aspect ratio of 16:10 ).
  • Export your Godot Game for Linux ( Linux/X11 in the UI)

Switch the Steam Deck into Developer / Devkit mode

The Steam Deck settings experience feels almost Android-like. Go to Settings and enable Developer mode, then scroll down to the Development Kit section, and click Pair new host

SteamOS Devkit Client

Run the SteamOS Devkit Client, which can be done either directly in Steam or from the command line.

I’m running it from the command line because I’m gonna leave it open for days, so I can quickly reopen it, and so it doesn’t tie up my Steam client.

gray@Battlestation MINGW64 /d/SteamLibrary/steamapps/common/SteamOSDevkitClient
$ ./windows-client/devkit-gui.exe
Setting PYSDL2_DLL_PATH: 'D:\\SteamLibrary\\steamapps\\common\\SteamOSDevkitClient\\windows-client\\lib\\devkit_client\\gui2'

This is what the thing looks like:

Enter the Steam Deck’s IP. Once confirmed, your computer is connected / the devkit is registered:

Head over to the Title Upload tab, you can configure your game.

You create a configuration, specify the source directory on your computer, and the command to start the game.

Once you click Upload the tool will bundle up your files (usually that’s just the game.x86_64 and the game.pck ), uploads the package to the Steam Deck, and create a non-steam game called “devkit: your game name“

My two test installations. The cleverly named arpg is a Godot 4 project, and the even more descriptive arpg_game one is Godot 3.5 project:

launch them like any other title and load right up.

Seeing your game in action

It’s quite thrilling to see your game in action on a real device. Probably even more so if it were not just a thrown together barely there proof of concept.

All in all, this is quite exciting. This stuff used to be reserved for console developers that had to sign Non-disclosure agreements (NDAs) with game console companies.

Yep, that’s a portion of a Godot 4 TileMap.

I didn’t add any UI, or handling for Godot to exit the game. During development on PC, I just press F8, but that doesn’t help with an exported game on the Steam Deck. The Steam button (to the left of the screen) has a menu that will let you end the game, even if the game doesn’t provide a way to exit.

godotSteam Deck
Posted in Godot, Steam.
Share
PreviousGodot Engine on the Steam Deck – Developing games on the go?
NextMy Steam Deck has arrived!

Leave a Reply Cancel reply

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

Related Posts

  • February 29, 2024

    Inventory System v1.12 available

    Crafting is here! The latest inventory system version is now available with the following features: The bug fixes:

  • February 11, 2024

    Inventory System v1.7 available

    A couple of corrections and a new feature: Bug fixes:

  • Strings
    December 17, 2022

    When not all strings are Strings. Detect bugs in your GDscript more easily with static typing

    One of the benefits of working with Godot Engine is that GDScript allows one to operate high level. GDScript is dynamically typed, so not even variable types have to be specified, but I would strongly recommend using static typing wherever possible. It can help with performance but primarily adds clarity when trying to follow the …

  • December 22, 2022

    A GDScript refactoring exercise

    Arguably, more fun than writing code is removing code. I was assembling a split-screen multiplayer UI. The goal behavior is to show/hide the appropriate displays for the players, depending on how many players there are. Initially, the code to update the UI was very simple, because I started with two players. In that case, you …

    © 2025 GoGoGodot.io. All rights reserved.