Okay okay, yes. I'm writing about game engines again. How can I not? Game development has taken over that space in my brain that screams to learn something new. Start a new hobby. Tell my wife that it's going to definitely be "my next big thing" (sorry sweetheart).
However, this time I'm going to write about a game engine that I haven't spoken much about. I referenced it in my post about game engines here. In that post, I went over the many reasons why I was choosing Unity as my game engine of choice for 2023. A synopsis of my reasons, most of which I cover in my post:
- It was code first. No emphasis on visual scripting like in Unreal.
- It had an insane amount of assets available on the asset store, which was actually usable (again, looking at you Unreal).
- It's 3D capabilities were only beaten by one other publicly available engine that I researched (point to you this time, Unreal).
- It fit my project well.
I didn't discuss that last one much in my previous post, but I was working on the preproduction phase of a game I was calling "Journey Beyond", which would be a spiritual successor to the game my father helped develop in the 90s called "Amber: Journeys Beyond" (yes, I like to dodge copyright by as little margin as possible). However, something pretty drastic happened just two weeks after that post. Unity sort of stabbed a lot of developers in the back.
I wrote a post about that too, but the short version? They introduced anti-developer pricing. Unity has since made several changes and rollbacks, and their focus on WebGPU has me excited about the possibilities for interactive digital experiences again, but at the time, I had lost all trust in the engine's eponymous parent company. That left me with a choice: Stick with Unity, or learn a new engine? I decided on the latter.
I dove head first into Unreal. I refreshed my memory with some quick C++ courses, and then built a few labs. I was loving it. However, the labs were not full games, and I needed to go to the next level. This is where things went awry. I ignored my own advice to junior web developers and I bought a lengthy, professional grade course on how to build a multiplayer shooter in Unreal.
I don't know why I did this. Journey Beyond wasn't planned to be a shooter. It was a puzzle solving, haunted house game, with light horror elements (not a cheesy dark hallway with a flashlight. More thrilling stuff. More eeriness). But I started syncing hours into learning things like the Unreal Online Subsytsem, and the Unreal game framework. I was picking up a ton of practical knowledge, and I don't regret that, but I wasn't making games.
That's when I got a video recommended to me by YouTube called "Make Video Games". An experienced game dev name Thor had put together all his knowledge into a free site and made a video accompanying it, urging people to just make games. It was so refreshing. It was my advice to all young web devs. The academics behind web dev are important. Learn them as often as you can. But more importantly, build stuff. Build so much stuff. Can't build an app? Make a fake one. Try to hook it up to a database. Try to roll your own auth. Host it on a web server you set up yourself. Try new things. Fail. Keep going. Build stuff!
I watched the whole video and thought to myself "Why am I spending all my time building a matchmaking plugin for Unreal games?" I should just make something small and fun. This lead me to two conclusions:
- I overscoped my first project. Journey Beyond would be a project that I could build after I built several MUCH smaller games.
- I missed Godot. I missed it a lot.
Godot was simple, easy to learn, open source, and powerful out of the box compared to plenty of other options. Would I be able to build the next viral shooter with AAA graphics? No. However, I've been really missing classic, 2D games recently as I've been playing through Stardew Valley, and I thought I could definitely make something like that (though much much smaller, Stardew is a gleaming masterpiece of an Indie game).
However, I'd have so much to learn! It's been years since I did pixel art, much less animation. I didn't know anything about sound design, or music, or even the programming language that Godot uses out of the box (GDScript). "No, wait, stop. Don't do this again. Just make games," my brain said. I could learn GDScript in a couple days (I'm at the point in my polyglot programming journey that I know my workflow for learning new languages). I could get art assets on markets like Itch.io (which by the way, holy cow. 2D assets are a LOT cheaper than 3D ones). I could use free sounds and music for my little hobby learning games.
So I dove in. I updated Godot to 4.2 and started working on a small game I'm tentatively calling "Levi's Dream". It's about a young boy who dreams he is an epic warrior, and must defeat dragons to free his dream realm. However, there's a serious twist on the dream lo...I mean game loop. ;) More details on this game later. However, the first stage is shaping up quite nicely. I love working with the artists on Itch, and Godot has been awesome. People often complain about the lack of tutorial content for the young engine, but I find it refreshing. There's usually 1-2 really high quality videos for the thing I'm trying to do in my version of Godot, and that makes them quite easy to find.
The development of Levi's Dream has been exhilirating. I'm making a game. It's coming together slowly. I learn something new every day, and I add a little something to it each day. I have almost completed the first level, save system, dialogue, and so much more. I'm testing out combat for crying out loud. All in a month. And maybe it sucks. That's fine. It's my first game, and I'm having fun. That's what matters. If I had done it the other way, I'd still be connecting to steam sessions with a bunch of copy and pasted C++ code into Unreal engine. I think I like it better this way.
This definitely won't be my last post about Godot. It's just a very slick, intuitive engine, especially for 2D. I think the 3D improvements coming to it around the corner could even make it better than something like Unity or Unreal.
A Quick Note
I'm going to be making some video content about the development of Levi's Dream as I go. I have been putting a bunch of short clips over on my Threads account. Follow me there if you're interested in short clips, or you want to know when the first official dev log comes out on my YouTube.
I also tried something new with this post. I'm trying my best not to use AI art in my blog content moving forward. While it has been very fun to use Midjourney to put a cartoon version of me in various scenarios, I'm going to stick to using the tool for ideation, not full content creation. I may write a post soon at length about why, but for now, all my featured images will just be me, fumbling around in Figma to make something passable.
Thanks for reading!