Frameworks vs EnginesIt's Not You, Godot, It's Me
I've been learning how to work with Godot 4 for the past few months, and honestly I think it's a great engine. I like the whole modular design of its scene/node system - it suits the way I like to structure mechanics and stuff really well. GDScript is incredibly easy to pick up if you have any previous programming experience. It's got a ton of useful tools for setting up your 2D (and 3D, but you couldn't pay me to make a 3D game) environments and handling collision physics and all of that stuff. And it's Free and Open Source! Theoretically and philosophically, it was a perfect fit.
But actually making an actual game in it was going... okay. I mean. It was fine? It was fine. I was doing a rework of Flower Magic as my main project, and I had all the major mechanics reimplemented. I made a little pipe-connecting game for practice doing all the finishing touches like GUI and SFX. It was all going pretty well.
I was not having a good time.
Now, don't get me wrong, it wasn't because it was challenging. I'm the first one to emphasize to anyone, gamedev is hard. I know this! I don't expect it to be easy! But it's the kind of hard that I typically enjoy, you know? Coming up with a design, refining it to something feasible to implement, figuring out how to implement it, fixing all the bugs, fixing all those fixes that created new and excitingly different bugs, reworking all those implementations because I didn't think of something earlier, making all the game content (okay, that one I enjoy less, but it's a universal constant), all of that is difficult and time-consuming and sometimes disheartening but I generally enjoy the process and the learning and the suffering.
Making games in Godot, once I got past the very early initial learning phase, was just... not enjoyable. I was not enjoying it. It was, quite frankly, a drag, and this was a very confusing and unexpected development.
So there I was, struggling through making things in Godot with determination and rapidly decreasing enthusiasm, when I got a Steam post about a new demo. The creator of APICO, which is a pretty fun game about breeding bees, has been working on their new game, Mudborne, which is a delightful game about breeding frogs, and the post was them announcing that there was a demo available.
I am not super excited about frogs, but I do love me a game about hybridizing and cross-breeding things, so I checked it out. And there, in the game startup sequence, was the most unexpected splash screen ever:
Made with LÖVE
Let me tell you, I have never felt so excited over a bloody splash screen in my LIFE.
LÖVE, since you've probably never heard of it, is a 2D game framework where you work primarily with Lua scripts. I worked with it back in another lifetime, but never picked it back up again for reasons I honestly don't know. Inertia, maybe. Or that thing where it's been so long since you looked at something that your brain just kind of forgets it's there.
Now here was this Mudborne, proudly proclaiming it was made in LÖVE, and as I started playing it I was absolutely blown away. It was polished. It was snappy. Not only did the dev very clearly take everything they learned making APICO and apply it again but better, but the game performance itself was miles better than whatever APICO was made in. Probably Unity. Maybe Godot. I didn't actually care, all I was thinking about was "how did I decide that LÖVE isn't good enough?? THIS IS AMAZING".
And then. Thinking back to when I was working with it, and thinking about how I've been enjoying working with Evennia the past few years, and thinking about how much I'd been struggling with Godot, I had a sudden revelation.
I just don't like game engines!
Even when it means it's harder and more work for me, what I prefer is having a library, a suite of tools, a collections of functions and methods that I write code using to build the game myself. I don't like having to figure out the best times to use piece A versus piece B. I don't like having to work around elements of the engine. I like typing symbols into a file and those symbols turn into a game.
So I decided it's time for me to put Godot back up on the shelf and pick up my old LÖVE projects again, instead. I'll still recommend Godot to people looking for a game engine, and I don't feel like I wasted time learning how to use it - I might want it for something in the future, who knows! And I still support it as a project.
But for me, I've gone back to the kind of game dev I love. Typing code into a text editor that makes a game happen.