SoatDev IT Consulting
SoatDev IT Consulting
  • About us
  • Expertise
  • Services
  • How it works
  • Contact Us
  • News
  • June 13, 2023
  • Rss Fetcher
Godot x GMTK Jam 2023
Godot Logo (CC-BA-SA-3.0 Andrea Calabró) x GMTK Game Jam 2023 Logo (By Mark Brown)

A guide to help you choose between Godot 3 and 4 for your game development, as well as some tips and tricks to avoid last-minute problems when using version 4 for a game jam

The GMTK Jam 2023 is around the corner, and many of you may have decided to jump ship and try Godot 4 for the first time. You may be frustrated with Unity, upgrading up from Godot 3.X, or maybe this is your first dive into game development.

Game Maker’s Toolkit on Twitter: “I asked GMTK Game Jam participants to tell me which game engine they used to make their submission. Here’s the data:(♿️Image contains alt text) pic.twitter.com/KJEqdKAftO / Twitter”

I asked GMTK Game Jam participants to tell me which game engine they used to make their submission. Here’s the data:(♿️Image contains alt text) pic.twitter.com/KJEqdKAftO

Jams are a great opportunity to learn new tools. The stakes are low. It “forces” you to apply your work concretely after fooling around with step-by-step tutorials but without an excessive time commitment. Plus, Godot 4 just released earlier this year with great new and expanded features!

Now, before you go and download Godot 4 at the start of the jam, here are a few things you should know.

Godot 4 Is Great, but It Still Has a Few Rough Edges

Godot is a great choice for Game Jams. It is lightweight (it is just a 50 MiB download, and it will probably open your project instantly); it is open source with a vibrant community and multiplatform (you can even run the editor itself on the web and Android!).

And while Godot 4 included a ton of new features and deep internal refactoring, it’s been just a few months since 4.0 was released, so some issues are still being worked on. Here’s some of these lingering issues:

  • Stability: I don’t remember Godot 3.x crashing for me a single time while using a stable release (it is true that I normally stick to not-very demanding 2d games). Godot 3.5 is rock solid; sometimes stability and not features are what you want for a jam.
    While Godot 4.0 is not prone to crash, it sometimes ends up in a “bad” state, forcing me to restart the editor after a long session. This is not a big deal because opening a Godot project, unlike other engines, takes just one or two seconds, but it is something to consider. In any case, I’ve never had stability issues with the games I made with Godot 4, only with the editor.
Godot 4.0.3 screenshot with a default warning
Default warning messages, while helpful, can be scary for beginners
  • Documentation: Official tutorials and guides have not yet been fully upgraded to work with Godot 4 APIs and workflows, which may be confusing, especially for those using Godot for the first time. This is especially true for localization to languages other than English.
    The class reference manual is complete, but some guides may have gaps that are slowly being covered. You can help fix this! 😊
  • UI weirdness: Like with many open source software, core functionalities are implemented or updated first, and the UI polished and optimized afterward. Due to the rewrite of some internal architecture, some workflows are still not 100% in their final, desired state, requiring a few more clicks than they should. For example, I like the new model for handling 2D tilesets and tilemaps -as it is more powerful and flexible than the old one, but more emphasis must be put on making simple tasks easier and more advanced, more hidden.
UI for tileset Setup of physics
My least favourite UI in Godot 4 — a complex interface for a very powerful feature set (CC-BY-3.0 Juan Linietsky, Ariel Manzur, and the Godot community)
  • Feature regressions: While Godot 4 is mainly a major release with new features, some old ones have been deprecated or need more work before being re-enabled. While very few people will miss the visual scripting language, other things like the lack of web export when using C# may be a deal breaker for some, especially for a game jam, in which the web export makes your game way more accessible.
  • Community resources: Godot 3 has been out for over five years already — which means multiple issues, workarounds, guides, and tutorials have been created for it by the community. Given, in some cases, how deeply the engine and the API have changed for version 4.0, there are yet not as many community-made resources as with 3.X, and for questions that apply to both, there will be more answers using the 3.X syntax than the latest version.

For example, the following Godot 3 shader code from GDQuest to create outlines (from https://github.com/GDQuest/godot-shaders/blob/master/godot/Shaders/outline3D.shader):

shader_type spatial;
render_mode unshaded, cull_front, depth_draw_always;

uniform float thickness = 0.1;
uniform vec4 outline_color : hint_color = vec4(1.0);

void vertex() {
VERTEX += NORMAL * thickness;
}

void fragment() {
ALBEDO = outline_color.rgb;
if (outline_color.a < 1.0) {
ALPHA = outline_color.a;
}
}

It only needs to change its hint_color keyword to source_color. However, as it is, it will return an error and will confuse the casual or new user that just wants “things to work.”

  • Learning curve: If you are familiar with Godot 3.X workflows, you may be frustrated at first that converting automatically existing projects to Godot 4 is a “best effort” process. Tilesets won’t work without a manual update. The Tilemaps’ new UI will be confusing at first. KinematicBody classes have been renamed and refactored into a new CharacterBody, with different properties. And collision shapes are likely to need adjustment, among many other changes. You will feel dumb for a while because everything will be very, very familiar, but at the same time, almost everything has been touched and optimized.
    You will write yourScene.instance(), and it won’t work because it is now the more correct yourScene.instantiate().

It’s an Unfair Comparison: Godot 3 Had Literally Years of Advantage and Polishing Over Godot 4

Does that mean you shouldn’t use Godot for the next Jam? Actually, there may not be a better time to jump into it than now because you are spoiled with choice. Here is my advice on how to decide between 3.5 and 4.0:

  • If you are new to game dev, just go directly to 4. 4 is mature enough for you, and you will rarely find issues that advanced users will encounter. Plus, you won’t be kept down by outdated knowledge. Just if you search for help with Google, Stack Overflow, or ChatGPT (which is banned for the GMTK, anyway), please be aware that many of the solutions will still apply only to Godot 3, so either search for “Godot 4” specifically (and drop ChatGPT, which has no Godot 4 knowledge) or stick to the official documentation.
  • If you come from Unity and want to keep using the familiar C#, be aware that you won’t be able to export with Godot 4 from that language to the web, Android, or iOS. You will need to export to a Windows executable (which may reduce the accessibility of your game for potential testers) or stick to Godot 3.5. Otherwise, if you want to use the more native GDScript, I would recommend going directly to 4. Note that Safari is having issues with the web export, too.
  • For people already familiar with Godot 3, it will depend on your goals. The main decision is if you want to have a 100% stable, comfortable, polished experience with no surprises (even at the cost of the new features) and center the Jam around getting things done; or if you want to use it as an excuse to finally upgrade your skill set to Godot 4, even if that means getting yourself uncomfortable a little bit.
    Godot 4 is clearly the future, but again, the above web export outstanding issues will also apply to you, plus the changes on the Node APIs and shader language changes, as well as potentially some additional bugs to deal with.
    Remember that Godot 3.5 is never a bad choice, as some quality-of-life improvements have been backported to it from the 4.0 branch!

Here is someone else’s take with similar opinions to mine, although not just in the context of a Jam:

Here Are Some Tips if You Go for 4, so You Avoid Last-Minute Surprises

If you finally take the plunge and go for Godot 4, here are some tips to avoid getting frustrated during a high-pressure 48-hour game jam (applicable to both newbies and veterans):

  • Test the full workflow in advance
    Download Godot 4, quickly program a square (or a cube) that moves over your window (the new built-in templates will help you do that without writing a single line of code), and do the full workflow, including exporting, compressing and uploading your game to Itch.io. You may hit some limitations early (like the lack of working HTML5 templates for C#), and you may be able to workaround it or change your version. There cannot be a more frustrating thing than spending 48 hours developing a game only to realize at the last minute that the platform you aim to export to is unavailable or has performance issues.
  • Web export requires using GDScript and has performance issues in OSX/iOS and Firefox+Linux.
    Sadly, with the move from Mono to .NET 6 — allowing the usage of modern C# features — the web export feature is missing from Godot 4.0 (when used with C# as a language). The GDScript version is not problem-free, though. WebGL 2.0 support (compared to WebGL 1.0, used in Godot 3.X) is lacking in some combinations of browsers and OSs. This is not necessarily Godot’s fault, but something to highlight if non-Windows users are important to you.
    Due to the extra functionalities, it doesn’t also help that the export size of an empty project has doubled (from 13 to 24 MiB without compression), contributing to longer load times.
  • HTML5 exported code uses SharedArrayBuffer, which requires specific headers in your web server
    If you find the following error shown when posting Godot’s 4 web export in an external service:
Error shown for the Web export if not using a secure context

Error
The following features required to run Godot projects on the Web are missing:
Cross Origin Isolation — Check web server configuration (send correct headers)
SharedArrayBuffer — Check web server configuration (send correct headers)”

This means two headers are missing from the web server where the game is hosted. Those are:

Cross-Origin-Embedder-Policy: require-corp 
Cross-Origin-Opener-Policy: same-origin

For Itch.io, SharedArrayBuffer is an option that you can enable when uploading your files just by pressing the right checkbox:

How to enable the right headers on Itch.io for your Godot 4 Web export

If you use another hosting service, check how to set custom headers for that environment. Here is the config I added to my personal web server using Apache HTTP Server (after enabling the headers mod):

# For Godot 4
Header set Cross-Origin-Embedder-Policy: require-corp
Header set Cross-Origin-Opener-Policy: same-origi

This change will require an Apache reload (or a restart if the module wasn’t already enabled).

Conclusion

Despite apparently being a bit negative, I want to set expectations clear about what to expect on Godot 3.5 vs 4.0. As a system administrator, I am a big fan of being conservative about software upgrades. Given 4 is only a few weeks old, some things may affect you (even if some are not due to Godot itself, but the ecosystem still has to adapt to it).

I daily drive Godot 4 since its first official release, and I am not going back (I will use it for GMTK 2023, too!). Otherwise, I would be missing out on so many things! However, as this will be the first time many people download it, I hope these tips and warnings will be useful for everyone to choose wisely and be satisfied.

Godot 4.0 editor with a simple one-bit platformer project by Jaime Crespo

I also want to thank the developers and Godot community members because they are working hard and supporting many people in polishing those last bugs and rough edges, as well as helping people upgrade to make the old LTS version completely obsolete.

And no matter if you use Godot 3.5, 4.0, Unity, or any other engine, see you at the Jam!

Resources

  • Godot Engine Website
  • Godot 4.0 Official Documentation
  • Godot source code and issue tracker
  • GMTK Game Jam 2023 itch.io page
  • Itch.io SharedBufferArray support note

Want to connect? I am jynus on Twitter, GitHub, and Itch.io.


So This is Your First Jam With Godot 4? Here is What You Should Know Beforehand! was originally published in Better Programming on Medium, where people are continuing the conversation by highlighting and responding to this story.

Previous Post
Next Post

Recent Posts

  • After its data was wiped, KiranaPro’s co-founder cannot rule out an external hack
  • Meet the Finalists: VivaTech’s 5 Most Visionary Startups of 2025
  • Trump fast-tracks supersonic travel, amid spate of flight-related executive orders
  • TechCrunch Mobility: How Jony Ive’s LoveFrom helped Rivian and what Uber’s next-generation playbook looks like
  • Omada Health IPO signals healthier market, avoids ‘down-round’ trend

Categories

  • Industry News
  • Programming
  • RSS Fetched Articles
  • Uncategorized

Archives

  • June 2025
  • May 2025
  • April 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023

Tap into the power of Microservices, MVC Architecture, Cloud, Containers, UML, and Scrum methodologies to bolster your project planning, execution, and application development processes.

Solutions

  • IT Consultation
  • Agile Transformation
  • Software Development
  • DevOps & CI/CD

Regions Covered

  • Montreal
  • New York
  • Paris
  • Mauritius
  • Abidjan
  • Dakar

Subscribe to Newsletter

Join our monthly newsletter subscribers to get the latest news and insights.

© Copyright 2023. All Rights Reserved by Soatdev IT Consulting Inc.