0x00 - A Dream Begins
Honestly, I’ve already been developing this project for quite some time, now. I never took the process of documenting the progress of my projects seriously, though. More often than not, ideas just died inside my head, never to see any sunlight. In the never-ending cycle of overthinking, nothing was ever good enough. I hope this time it's different.
The last few years have not been very kind. Not only to me, but the whole world seems to be spiraling downwards in a weird trend of chaos and numbness. At my age, I’m starting to feel haunted by the ghosts of what could have been, looking back only to see the remnants of a long trail of abandoned project, hopes, and dreams. This could possibly be my last try – you never know – at standing before a life of grayness, empty, devoid of purpose, running in circles like a dog forever chasing after its own tail.
Now, the game industry... Well, it seems pretty fucked up to me: Patent scandals, AI slop, runtime fees, increasing inflation of console and game prices, and I'm not even touching on any of the corporative problems of tech companies (hello, layoffs). Corporate greed is just squeezing every last cent from the industry. I remember when Unity once was who democratized the access to the best game making tools available at the time, only to fumble up pretty hard and lose the trust of a big part of the community. Myself included.
I became a programmer because I wanted to make games. I went to university because I wanted to make games. I graduated in Design because I wanted to make games. Heck, even my first paying job was to program a game. But things rarely work out as we want, and my skills were better compensated elsewhere. I had to give up my dreams, gradually.
Seeing all of this happening at the same time was like watching my world come crumbling down slowly, piece by piece. This is not the future I envisioned when younger, this is not a world worth fightning for anymore. For what? So that half a dozen men can watch dem numbers go up? Things need to change. I want to make things differently. I want to rebuild my world back, now with my own hands. I want to feel the joy of playing videogames again.
Not guilt. Not anguish. Joy. I want to make a game that makes me feel the same joy I had when playing Metroid. I always wanted to make a Metroid. Not a Metroidvania, I want to make a Metroid. I want to make MY Metroid. And that's what I'm gonna do. I want to dare. And I want to challenge the status quo, starting by the tools of the trade: As much as I can, I'll only use free and open-source software.
Enter Godot. And was I waiting for it. It's basically Free Real Estate™. And I'm in. Oddly enough, the language I'm mostly well-versed with is Swift. Oh, look! Swift is now natively interoperable with C++, and Godot now has Swift bindings – built by the community – to the underlying engine. How convenient!
Inspired by some Godot metroidvania plugins, and, with this unorthodox choice of a stack, I decided to tinker with the possibilities: I grabbed some open-source sprites for the main character, extended a CharacterBody2D node to make it move to my input, and made a sketch for the main music theme. In little time I made the character jump, grab walls, and shoot some stuff. Well, looks like I'm up to something!
To be honest, I gave up a couple times to this project. It was fun but I didn't believe that I could do it. It's way too much work. However, each time I picked it to play with, I added more stuff. And more. By the time I'm writing this, I've already built an importer plugin to convert Tiled's .tmx maps into Godot scenes, a minimap system for the HUD, 3 types of enemy AI, and all core movement mechanics, with, like, around seven different weapons to play with.
I replicated the beam weapons, playing with collision masks to imitate the wave and plasma beams, I did wall jumps, missiles, nasty water physics, the speed booster, and even a morph ball rip-off that morphs into a cube. But it really snapped the moment I pulled off the shinespark mechanic (eventually, it ended up being way easier than I thought). THAT was something.
But I want to go beyond. I programmed some new abilities, like water-walking and a functional hookshot. I want the movement game to be solid, to make a game built for speedrunning, by learning from the best titles and picking a little from each one to make something unique.
This post is getting dense already, so I think I'll take my cue to leave. I'll try to be more objective next time. Thing is that I have a working prototype up and running. And, for the first time, I have a clear direction to follow. Maybe, in the end, it turns out to be Just Another Metroidvania.
Tomorrow I have things to do.