I have never finished making my own game before. It has been a lifelong goal of mine, but there’s one thing that always seems to stop me in my tracks.

how do you make a game

Great question! If you want to make a game, you will usually need the following things:

  1. a computer
  2. a game engine or framework
  3. programming chops (optional depending on the engine)
  4. determination

My computer is my Space Gray, 13-inch, 2024 M3 Macbook Air. My programming chops come from years of screwing around on my computer, and my determination is…there? I guess? The real problem comes with choosing a game engine/framework.

But Oliver, you ask, what’s so hard about that? Just choose one!

the problem

Sometimes I suffer from crippling decision paralysis. I have a hard time making decisions, and I often end up not making any decisions at all. This is especially true when it comes to something like choosing a tool to make my game with. There are so many options out there, and they all have their own pros and cons. So now I’m putting off making a decision by writing about it.

I’ve been so obsessed with choosing the right thing to make games with that I’ve never even done any programming work on the games themselves. I have a few game ideas that I’ve been sitting on for years, but I haven’t even started working on them because I can’t decide what to make them with.

So today, I am putting my foot down.

the game plan

I have a few options at hand. All of them are fortunately free.

godot

Godot is a game engine that has been gaining popularity in recent years. It has a snappy UI and a large community of developers. It has a built-in scripting language (GDScript) and support for 2D and 3D games. The general consensus I’ve seen is that if I want to start prototyping and building fast, Godot is the right way to go.

libgdx

LibGDX is a Java framework that is used to make games for a variety of platforms. While game engines are more user-friendly through defined design patterns, frameworks provide more control and flexibility by allowing you to design your own game structure. LibGDX has a decently large community, but it is dying a little.

monogame

Monogame is a C# framework that is used to make games for a variety of platforms. It’s similar to LibGDX, but has a larger community. There are many pretty big games that have been made with Monogame (Celeste, Stardew Valley). Worse support for MacOS, so it would be a little cumbersome to develop with it on my computer. I have set it up properly before, so I know it works, but I don’t know if I want to go through the hassle of developing a full game with it.

löve

LÖVE is a Lua framework that is used to make games for a variety of platforms. It has a smaller community, but I know that LocalThunk used it to develop Balatro. I have never used Lua before, so it would be a bit of a learning curve to get started with it.

I will then use all of these options, one by one, to make a small game. Hopefully, I’ll be able to decide which one I like best afterwards.

See you in a bit…