Since around 2012, I have had an ongoing interest in learning about game engines. Particularly open source ones. For the purpose of settling on one and using it for a major project. I've even tried my hand at making my own game engines. In the earlier days, I was unhappy with a lot of game engines, hence my desire to make my own. But recently, a lot of game engines have really started to shine and I'm quite spoilt for choice now.

Top tier (want to work on)

  • Godot!
    • Used for game jam games, may use for bigger project(s)
  • Allegro 5
    • Using for current game
  • KorGE
    • Early stages but very impressive
  • LibGDX
    • Ideal for mobile games
  • Raylib
    • For learning a new programming language – eg Odin, Go
    • For making a game with a language that I like, eg. Python
    • May consider for future projects in C
  • 32Blit engine
    • For my future 32Blit game console

Godot Engine

Godot has really come quite far in the last 2-3 years. It is now a very serious contender to Unity, especially for indie game developers. It's my current go-to for most projects, however I find fun in using other game engines as well.

Why I like it

  • Easy to use and powerful editor
  • Small file size and portable
  • Open source
  • Has a lot of useful features that you would want in a game engine
  • Good at 2D, alright at 3D (better than most open source engines)
  • Community addons
  • Live debugging/coding
  • Multiple deploy platforms (PC, Mobile, web, possibly consoles)

What I don't like about it

  • Gdscript isn’t quite as powerful as Python, C, C++, Java (but easy and versatile)
  • Still using OpenGLES2/3 (Vulkan on the way)

Allegro 5

A very old game engine, but it's still quite useful today. Good for basing your own game engine off of it.

Why I like it

  • Very easy API to learn and use, easier than SDL2
  • Old-school build design, can port to multiple platforms, including mobile, possibly console
  • Fun to use to make your own engine
  • Linux-friendly (Install library in package manager, good to go)

Why I don’t like it

  • Has been very difficult to deploy to desktop (but I managed)
  • Have to write your own engine (but I managed..)

KorGE

The only (current) game engine that takes Kotlin files and compiles it into native, web (via JS) or JVM. This makes it a very versatile engine.

Why I like it

  • Utilises the power of Kotlin – build for Native, Web, JVM
  • Kotlin language
  • Various other useful libraries

Why I don’t like it

  • Still very early stages – limited documentation, some features may be missing

LibGDX

This was the main open source competitor to Unity until Godot. It's still good for mobile game development.

Why I like it

  • The most fully-featured open source game engine best suited for Android (and iOS) development
  • Experience with Java and IDEs
  • Read book by author of engine (Beginning Android Games, 2012)

Why I don’t like it

  • Java can be a bit slow for game development due to it’s verbosity
  • Missing an editor like Godot, Unity

Raylib

Recent discovery. I like it because it's similar to code I've been working on for 2 years :O

Why I like it

  • Like my Allegro 5 game engine, but with more features
  • Bindings! Learn a new language – eg. Odin, Go
  • Bindings! Use a preferred language, eg. Python, C#

Why I don’t like it

  • No Tiled map editor importer by default (but library available)
  • 3D side of it is a bit basic (but I wouldn't use it for 3D)

32Blit Engine

I backed the 32Blit handheld game console, and I have one on the way. I'm looking forward to making game(s) for it. In particular, porting my current game, Wizards with Rockets.

Why I like it

  • It’s the main engine for developing games for the 32Blit game consoles
  • Will probably use it to port my game to it

Why I don’t like it

  • Not sure, yet to explore it fully
  • No sound support currently (I'm sure it's on it's way..)

Other Engine notes

Other game engines that are quite interesting, but don't quite make my shortlist of engines of choice

Unity - Nice but bloated, proprietary, requires separate editor for coding, Editor stuck in the early 2010's (for now)

Love2D - Good for smaller games, but I don't really like making full games with Love2D/lua as you basically need lots of third party libraries (eg. Classes or ECS), and it becomes very cumbersome

SDL2 - Ideal from a certain perspective, but more complex API, less features than Allegro 5

jMonkeyEngine - Good for making 3D Android games, but not really interested in that atm

Urho3D - Technically impressive, but a bit complex to set up

Unreal Engine 4 - Seems best suited for 3D games, not my thing atm

Defold - Very geared towards mobile games, I want to make desktop games currently

Orx - Requires thinking in a different way to make games (data-driven), but very versatile and has many good features (inc live-reload)

Amethyst - Still very new, need to learn Rust

Leadwerks - Not as interested in making stand-alone Hammer editor style games. But I own it.

Construct 3 - Great for rapid prototyping with potential to deploy to multiple platforms, but need to pay ($13+ per month) to get the most out of it.

PySDL2 - Still SDL2, but a bit faster to code. But with less deployment targets.

Clanlib - Objectively good, but not as much fun as other game engines to develop with

There may be more, but those are the ones that stand out to me off the top of my head.