When it comes to desktop gaming, Windows dominates the market. According to the Steam hardware survey, nearly 97% of users are on Windows. Linux takes second place with around 2% of users, with the majority using a Steam Deck. This market distribution highlights the importance of creating exports for both Windows and Linux to reach the widest possible audience.
If you’re interested in targeting the Steam Deck specifically, check out the tutorial on targeting the Steam Deck with Godot.
Getting Started
For this tutorial, you can either use your own project or download the sample project to follow along.
If you want to use the sample project, download the starter materials zip from the link at the top or bottom of this tutorial and extract it. Next, open Godot and import the starter project. The project is a small 2D shoot-em-up game called Aerixa.
Go ahead and run the project if you want to have a look at it.
What is Exporting?
In Godot, exporting a project is the process of packaging your project along with a binary that contains the Godot engine code. The binary is compiled differently for each target platform, allowing your project to run on systems that don’t have Godot installed.
Every supported platform has its own export template, which is a collection of files Godot uses to package and debug your exported project. They’re essential because they contain the Godot engine code compiled for each target platform, allowing your project to run on systems that don’t have Godot installed.
With the binaries in hand, you can then distribute your project on platforms like Steam, itch.io, the App Store and Google Play.
Getting the Export Templates
If this is the first time you’re exporting for the version of Godot you’re using, you’ll need to download and install the export templates.
You can check if you have the templates installed by selecting Editor ▸ Manage Export Templates in the top menu.
This will open the Export Template Manager, a small tool to manage your export templates.
At the top left, you can see the version of Godot you’re using; 4.3.stable in my case.
In case you don’t have the export templates installed yet, you’ll see a red text appear next the version as is the case in the screenshot above. To install the missing templates, click the Download and Install button at the top right.
Doing so will download the templates for the version of Godot you’re using and install them locally.
Once the download finishes, you can see where Godot installed your new export templates.
Note: If you have export templates installed in the Other Installed Versions section for a version of Godot you’re not planning on using anymore, click the trashcan icon next to the version name to delete them and recover some disk space.
With the templates installed, you can now export your project!
I recommend going through the all sections below even if you’re only interested in exporting for Windows as they contain general information about the export process that I’ll reference to later.
Adding an Export Preset
Exporting projects is straightforward, but understanding the details of the process helps you make informed decisions about your export settings.
To start off, open the Export window by selecting Project ▸ Export in the top menu.
The Export window will be almost empty at this point.
To add a Linux export, click the Add… button at the top and choose Linux.
This will add a new Linux entry in the Presets list and enables the options on the right side of the window.
Export Settings
Time to take a closer look at the various settings Godot presents you with for exports.
Shared Options
First up are the shared options at the top, this includes the Name and Export Path fields. These are the same for all platforms.
From top to bottom, the options are as follows:
- Name: A name for your export preset. This is useful as you can configure different presets for the same platform, so the different names make it easier to distinguish between them.
- Advanced Options: For some platforms like Android and iOS, extra options are available. Toggling this on will show options meant for power users.
- Runnable: If checked, this will enable one-click deploy for the export preset, enabling you to quickly deploy the preset via a single button click. The actual function of one-click deploy depends on the platform. For desktop platforms like Linux, macOS and Windows, it allows you to deploy exports over SSH once configured. For mobile platforms like Android and iOS, it allows you to install the export on your device or emulator. Finally, for web exports, it will start a local web server and host the exported project. For more information on one-click deploy, see Godot’s One-click deploy documentation.
- Export Path: The file path where the project will be exported to.
Options Tab
Next, take a look at the Options tab.
Again, from top to bottom, the options are as follows:
- Custom Template: Here you can set a path to custom export templates for both the Debug and Release exports. If you compiled your own export templates from the engine source code, you can set them here. This can be used to optimize your exports for size or speed by stripping out the 3D engine for example.
- Export Console Wrapper: When enabled, an extra executable will be included next to the exported project that will run your project in the console. This is useful for debugging and testing your project.
- Embed PCK: A PCK file is an archive file similar to a ZIP. It bundles the project’s assets like scripts, scenes and textures together in a single file. If enable this setting, the PCK file will be embedded in the exported project instead of being a separate file.
- Architecture: This sets the CPU architecture of the exported project. On desktop platforms, the most common CPU architecture is x86_64, which is the 64-bit version of x86. I recommend leaving this at the default value. The export templates that Godot provides only support the x86_32 and x86_64 architectures. If you need to export for a different architecture, you’ll need to build your own export template. You can find more info on that on the Building from source page.
- Texture Format: With these, you can choose how textures are stored. Both options here combine two texture formats into one. The S3TC and BPTC formats are primarily used for desktop platforms and consoles, while ETC2 and ASTC are used for mobile platforms, embedded devices and the web.
- SSH Remote Deploy: This option allows you to deploy your exported project over SSH. This can be useful to test your project on a remote machine.
For most projects, you can leave these at their default values, but I hope you’ll agree it’s useful to know what you can use these options for.
Time to take a look at the Resources tab.