Posted September 24, 2024 by XPTZ
#PostMortem
SO, A POST-MORTEM HUH?
Time to finally move on. GiantessRun is now a legacy game, with the last update at v1.11. As a personal duty as developer, I’m sharing its source code for free download here at Itch.io for future studies (last verified and tested on Godot 3.6). As I go to Godot 4.3.x, with highly changed patterns and more sofisticated personal game libraries, new ideas appears to me, like dialogue sequences, destructible objects, longer levels etc. So it’s not like building a remake version, but focusing on creating new games. For it, we must let go of legacy projects.
GiantessRun was built initially on Godot 3.2.x, and now we are on Godot 4.3.x. Although I went into a big test fight to upgrade the entire game into the new paradigm, more and more I found that an learning gamedev’s job should be used as guide for iteration, not maintained for so long (the first version was made in 2021 I think).
THE BEGINNING
I always wanted to be a game designer, like for over a decade, before even creating my art pages. Since emulating Metal Slug on MAME, or playing it on coin-op arcades, as my fond memories of getting a Sega Genesis with Sonic 2 as my first videogame, I always wanted to create my worlds. I grew in love with computers and programming, so it’s in my blood.
I enrolled into Unity classes, Coursera/Udemy/Youtube, even paid 2 years of Unity Pro (or Plus? I don’t remember) - I guess it was $250/year back then, waaaay back before their shitty “activation fee”. And learned a few things… none of it worked. I’m a self-taught developer, the “do-it-anyhow-you-have-a-deadline” developer since the first moment I learned my first programming language. Also, the fact I paid ~$500 for a software membership without even using it to earn something… and U.S Dollar not even being my main currency… meh. (I kept the Unity assets I bought, although they’re already old enough. Still, some PNG and sound/music assets I have the right to use in any project in the future, amirite? Sadly not on Unity tho.)
I left game designer not soon before the half of second paid year (reason: life sucks), but the dream was still bulding inside me. I wanna be a big game designer/programmer, but my lack of motivations made me really slow, and I simply couldn’t afford such big dollars.
That’s when I found Godot Engine. It’s amazing. My first touch on it was on version 3.1 (now it’s on 4.3, with 3.6 the latest 3.x version). Open-source, Python-like syntax, focus on 2D elements, royalty-free, it was my perfect playground, so I could build everything with it. I learned the basics (if, for, loop) and went to build my own library of reusable codes.
I avoid using other’s libraries, I like to learn how something is supposed to work. Reinventing the wheel is the law when you’re learning a new paradigm and how to do youw own thing, although not everybody agrees with it. Despite of that, I learned a lot.
Slowly and iterating the code, I learned myself how to make:
Slow but steady, I was increasing my own library, but I still needed a way to test it. How could I improve my code without beta testers?
That’s when GiantessRun project came along.
THE GAME
The idea was really, really simple. A character running on the screen, like Super Mario Run. The map was basically endless. You collect coins, spend ’em on artworks. A venue to test loadings, fade screens, loading bulks of objects (each level has between 8-12 chunks), safe deletion of nodes avoiding memory leaks, and the DLC system that allows a screen to load the desired files in runtime.
For instance, I had a second project that was basically the folder of a character, and every artwork that should be loaded inside it, including backgrounds, music, rewards, ending cards etc. I’d export the .PCK file, rename it to .GTS and put in the .EXE’s folder, and the game would import it and put in the scene. So the game has a single level scene with infinite platforms.
All sounds I used are from royalty-free sites, except the levels music, as I have a friend who made ‘em (anonymous), that’s why I ain’t including the sounds in the code.
THE UPDATES
Finally, version 1.0 with a giant feet going down on you. The DLC system was finally working. The level was endlessly loading, the background had a simple but pretty parallax. The coins were being collected.
Version v1.02 followed with a new character, Callie, the first unlockable artworks, and the DLC downloader system! I was able, for the first time, to update the game by simply uploading the updated .PCK file on a server (it’s off today, but the code is still there).
Version v1.10 was the one who got the most changes:
NOW WHAT?
I have friends who commissioned me to make their OCs appear in GiantessRun, but I contacted ‘em for the project change. I have new ideas for the game, which basically makes it an entire new game. I love the Wonder Boy I/Adventure Island I game, and I want to make one similar to it, destructible objects, dialogues, powerups and a basic story behind it. It’s gonna be a new GiantessRun game, maybe with another name, idk yet.
Since Godot 4.2.x came and I jumped into the pattern change, I was able to update my game core:
On the future goals:
A last question: why don’t you use other’s code? Because for me reinventing the wheel is fun! Godot is a powerful yet simple system, and it was fun to work since the first player jump up to lots of particles moving at the screen in high speed. Also, if I had done it in the beginning, I wouldn’t learn a lot of things. I wanna make my career in game development, but I needed the know-how first, and instead of simply downloading ready-to-use libraries, I made my own, iterating and learning good practices until stability. It’s a testbed for future projects, reusable code and self-learning. I bet that’s how Stardew Valley started.
I could say the only thing that turned wrong was my real life, which prevented me to work on the game for more time - new levels, new characters. I consider GiantessRun a giant success. I never thought of that game being really really big, with dozens of thousands of downloads. I wanted to learn how to make a game in the way I intended (file updates, endless running areas, no memory leak, server updates, game expansions)
Everything I’ve learned during those years, all experiments and the codetest made by lots of people (who even without updates are still downloading the game for free today). I should thank everybody who tested it and commented about bugfixes and suggestions. You made this game possible, testing and giving feedback, now an amateur can call himself a gamedev and is finally able to tackle harder challenges.
TYSM ALL GUYS/GIRLS! THANKS FOR PLAYING MY SILLY GAME! FOR THE NEXT ADVENTURE!! ♥