The state of Godot Engine on (homebrew) consoles
The recent drama surrounding the Unity engine price structure change has given a popularity boost to competitors such as Unreal and Godot engine. This got me curious about the level of support of Game engines on the homebrew scene, Godot in Particular.
Disclaimer: This article is about using Godot for creating homebrew games. Generally this implies the created games will only run on a Jailbroken console. For support of consoles on Godot for a commercial game, please check the very informative official page here (TL,DR: it is possible to port your godot commercial game to consoles, but you will have to work with a 3rd party company for legal reasons)
TL,DR: There are very good homebrew ports of Godot 3.x on the Nintendo Switch and PS Vita. Other consoles, the PS4 in particular (and the PS5 as well, of course), apparently still need to wait.
Note: Humble bundle currently have a great Bundle going on if you’re looking to get started with Godot: The complete godot software bundle, which provides $1000 of courses and software. Pay what you want for the bundle, support charity (affiliate link)
Godot Engine for Homebrew consoles – why and how
Developing a game isn’t always easy. Developing a game for a homebrew console just adds a layer of difficulty to the mix. For some people who are interested in homebrew development, I feel the easiest way to get introduced to hacked consoles is to be able to use tools they are used to, in more conventional environments.
The Godot game engine is a very popular cross platform game engine nowadays, which has the insane benefit of being open source. This means that, theoretically, porting it to homebrew SDKs is a possibility.
When you publish a godot game, what you are really publishing is the full Godot engine, along with a resource pack that represents your game. Porting Godot to a console (and in particular its homebrew SDK) means creating a single “engine” binary (aka template) for that particular console. Once that is done, taking into account some particular limitations of the console such as its level of OpenGL support, “all” Godot games could potentially work on that console, with little to no modifications.
This is exciting in particular because a game you developed for Windows could probably work on your Nintendo Switch or PS Vita out of the box.
Nintendo Switch and PS Vita Homebrew have Godot 3.5x support
As it turns out, Nintendo Switch and PS Vita have Godot ports for the homebrew SDKs. These are ports based on the 3.x version of godot (which is the mostly used nowadays. 4.x was released in 2023 and is slowly taking over, though). We did talk about the Vita release by SonicMastr last year.
Support discord for both versions: https://discordapp.com/invite/yUC3rUk
In both cases, all you need to to is run the editor, create your game, and then in the export menu, select the platform of your choice (Vita or Switch). Due to how the two codebases are separate though, you’ll need to use the separate engine builds to export for Switch and Vita respectively, although you would only need to create your game once, of course (just load it in the two separate editors).
There are limitations, related to the godot ports themselves, or the console you’re targeting. For the PS Vita in particular:
- Any LiveArea assets HAVE to be 8-bit indexed AND have to be the sizes listed. Otherwise VPK installation will fail
I like to use pngquant
- Version HAS to be in XX.YY format. If it is not, it will be defaulted to 01.00 to protect from failed installations
- Parental Level has a range of 0 (off) to 11 (adult). Anything above or below will default to 0
- Always change the Title ID from default if planning an actual release to avoid overwriting other applications
- Make sure you enable fallback to gles2 no matter what (for now, need to fix this or it probably already is. I’m too tired)
A short list of existing Switch Homebrew Godot ports can be found here.
The PSP has Godot 2.x Support!
This is more anecdotal at this point, but even the PlayStation portable also has a godot port available, but it is for a fairly old version of the engine. You might still want to give it a try, but a lot of people developing for PSP or 3DS end up creating their own engines.
- Godot 2.x for PSP by PSVita-Dev
The PS4 is crying in a corner – You can still use SDL though (question mark)
I started this article in the hope to find a homebrew godot port for the PS4. There isn’t one!
To be honest, GPU acceleration support is in a confusing state on the PS4 Homebrew SDK. The SDL port you’ll find with OpenOrbis isn’t apparently supporting hardware acceleration. There is a hardware-accelerated port of SDL for the PS4, by CPasJuste, and I’m a bit confused as to why it isn’t used as the default in the OpenOrbis SDK.
Furthermore, OpenGL is supported on the PS4 Homebrew SDK, as shown by this piglet sample. Despite that, I repeatedly read that GPU rendering isn’t supported for PS4 Homebrew yet (except via leaked official SDKs) and I’m a bit lost.
CPasJuste has stated a while ago that porting Godot to the PS4 would be “too much work” without shader compiler support, but that was before he ported SDL, so maybe his stance on this has changed.
With all that being said, currently, it appears that your best bet to create (hardware accelerated) homebrew games on the PS4 would be using CPasJuste’s SDL port, which can be found here: https://github.com/PacBrew/SDL/tree/ps4.Check out my guide on how to get started with PS4 Homebrew here.
Godot 3.x on the PS4 would be awesome, but unfortunately I haven’t found any ongoing project for that port to happen.
What about godot 4.x on Homebrew consoles?
Godot 4.x is dropping OpenGL ES 2.0 support (it will use GLES3 and Vulkan), so consoles that do not support those will have issues. As far as I can tell, none of the consoles mentioned above have Vulkan support for Homebrew toolchains, but it seems the Switch has GLES3. There is an ongoing port of godot 4.x for the Switch, but development has stopped.