Building games with Godot Engine

I thought I’d start a thread specifically about Godot Engine, where those of us who use it or are learning it can share tips, ask questions, etc. Godot is free open source cross-platform software that is similar to Unity, Gamemaker, or others commercial applications.

It is known for being excellent with 2D games, though the Godot 4.0 release (coming in early 2021?) supposedly does a lot to improve 3D workflow and performance, including a full implementation of Vulkan, a modern replacement for OpenGL.

To start, here’s a list of resources that I’ve found useful when learning:

  • The Godot website is home to project roadmaps, documentation, etc. There are lots of links there to learning resources and tutorials.
  • The Udemy Godot course is an excellent way to get an introduction to the engine and GDScript, the python-like language that Godot uses. (You also can use C# with Godot, but the implementation is newer. In fact, you can use any language with Godot through the gdnative bindings.)
  • Juan Linietsky (Twitter profile) is one of the project leads. He posts frequently about Godot on Twitter. He’s been doing the Vulkan and 3D overhaul for Godot 4.0. I believe he originally created Godot for client work and open-sourced it 6-7 years ago.
  • Rémi Verschelde is the Godot project manager and also posts a lot about it on Twitter. He’s based in Denmark. (@Razgon - they probably have local Godot meetups?)
  • There are a lot of Godot communities, but the Godot Discord community probably is the most active.
  • I follow the Godot Subreddit, which frequently has good information and links.
  • Nathan at GDQuest creates a lot of tutorials and resources for learning Godot. He has a ton of videos on YouTube, etc. Yesterday, he put up a GitHub repository about procedural generation in Godot.

Finally, Kenney’s Assets are all free and open source, great for getting started with learning to program in Godot. Check out his Asset Forge software, if you want an easy way to make 3D models for game (that also can be exported as 2D/isometric). Kenney is also on Twitter. He’s done a lot of good things for the open source gaming community over the years.

So, who here is using Godot besides me? I know that @rhamorim likes it and @Razgon is dabbling. @JoshL was arguing with it this past weekend…

Nice idea for a thread! I just started yes, rekindling my memory of forgotten days programming. Its funny that, when I was 13, programming for fun , I understood what Directories, arrays and so on was (We made a ton of DnD character generators), but now I struggle a bit! :-D

Anyways - very interested in this, and will be sure to be picking some brains here if you dont mind!

I’m happy to help answer/explain anything here. If you have questions about a code snippet, for example, you can post the snippet here and I’ll do what I can to explain. I’m sure there are others here who can help, too.

I love it. I just wish I had the chance to spend more time with it, but right now I have plenty of other priorities getting in the way.

That said, of all the open-source game engines I’ve ever dabbled with (and there were a lot of them) when I had time for that, Godot is definitely the best.

It’s true, I was messing with it last weekend. I’m interested in writing online multiplayer turn-based games (e.g. boardgame adaptations). So just to see if I could get Godot talking to itself, I wrote the world’s worst chat program. I got it to build for Windows and Android, and I got the two to talk to each other on my home network. Not too bad. Now I just need to figure out what I actually want to make.

I’ve been meaning to boot it up and have a go. I’m currently in the middle of a Gamemaker Studio project and want to finish it up before moving on to new software.

Here’s a game that I threw together with Godot last year. It doesn’t work great in the browser (my fault, but try Chrome, Edge, or Firefox) but the Windows and Mac download links are there.

It’s free.

Here’s the Mac App Store link:

I’m still waiting for 64-bit support—there are a few things I’d like to try that would benefit from the increased spatial resolution. (I’m not altogether sure Godot is the right tool for them, though. What I think I want is less a full-on game engine and more a game rendering/sound/input front end, but I don’t know if such a thing exists, or even can exist.)

I did write Hexagone in Godot, to @Dave_Perkins’ design, for the Qt3 10-Minute Game Jam, back in the day, which was a hoot.

Godot is on my list of game engines to try. I’m currently doing a Udemy refresher on GameMaker. I own GameMaker 7 & Studio 1, but have been dabbling with the current release, GameMaker Studio 2, in order to re-acquaint myself with GML and decide if it’s worth upgrading from 1 for my next project.

Because I’m on a limited 30 trial of v2 I’ll be staying here for the next couple weeks, but next up I was planning to demo Construct 3, and then see about Godot. And I know Unity is worth giving a shot as well, but it isn’t as specialized as something like GMS (or perhaps Construct or Godot) for my needs.

I’ve been perfectly happy with GameMaker in the past, and the online resources and communities are many-fold, but the freeness of Godot and lack of baggage in trying to support older or migrated code/projects certainly has its appeal too.

But I’m still super early in my Godot research (not so with GM or Construct), so I’m not up to speed on its viability as an actual program/app development tool for various platforms, as opposed to a learning or prototyping tool. Unfortunately I don’t expect to be able to make the time to fully immerse myself in Godot and give it a fair shake at least until my GMS 2 trial expires closer to the end of the month, but I’ll do more reading on Godot in the meantime and move it forward in queue, ahead of Construct 3.

So whilst its loading will i be waiting for Godot?

There we go. I’ve got what I needed from this thread.

Thank you.

I’ve been playing with it a bit.

Along with the resources mentioned, I found Heartbeast’s stuff pretty decent. This series is using 3.2 and is updating regularly:

This one at Kids Can Code is also good:

But the best learning resource for me was the official docs. :)
I prefer reading to videos, and like how they have little projects scattered throughout.

Such a wasted, golden opportunity, stolen by a layman two posts below!

There was a big Godot bundle on Humble Bundle a week or two ago. Maybe they’ll do another sometime.

But I’m not as motivated as I was when I was young. RPG Maker is about as difficult as I can tolerate.

Every time I try out Godot I see the disclaimer on launch that C# is not for production and I put it away again. It’s a shame because Unity is a pain in the ass.

I think C# is ready for all but iOS? But that’s almost done

@jitspoe on Twitter is a developer working on a game in Godot.

I think he also streams some of his development, though I’ve never tuned in. Not sure if that’s of interest to anyone, but he’s a nice guy. I don’t know him that well but we were at college together.

So, really dumb question but it wasn’t spelled out in the Udemy course:

When I’m painting a bitmask on a tilemap, what exactly am I telling the engine? If it’s not something as simple as wall vs not wall, how do I know what where to put the bitmask?

Probably not spelled out because it’s kind of hard to explain… :D

A tile’s bitmask tells the engine which tile to place, based on the layout of the tiles surrounding it.

Imagine you’re using the 3x3 method. For each of your tiles you paint a 3x3 bitmask that defines the situation in which a given tiles gets picked to be drawn.

When you’re drawing your map you paint down tiles, and Godot looks at the layout of the surrounding 3x3 grid of tiles that are already there. Say 1 if there is a tile there, or 0 if there isn’t.

Then it looks through your bitmasks to find a match for that 3x3 layout, and draws that tile (or randomly picks one if there are multiple matches).

Check the image below, which shows 16 tiles each with a 3x3 bitmask painted in red.


See the tile at bottom right has a bitmask consisting of one red square in the middle. So when you place down one lone tile in your map, this is the one that gets drawn as its mask tells the engine that it is only meant to be drawn when there are no neighbouring tiles.

The tile above it has a bitmask with two red squares - one in the middle and one above it. So this tile will get used when you place it below another tile, and there are no other tiles below, left, or right of it.

The middle tile there that has a bitmask that is totally filled in red, tells the engine that this tile is used when it is totally surrounded by other tiles.

And so on. The 3x3 bitmask is like a little minimap of the surrounding 3x3 tiles in the level, with itself in the center.

The picture is from the below video, worth a watch as it’s probably far easier to understand than reading the above! :)

Got it. Thanks very much.