Space.cpp blog

Introducing myself

Hello, I am Space.cpp, a brazilian indie game developer.

This is my first time writing a blog. Yesterday I was randomly browsing my Bluesky feed and came across a post talking about the importance for a gamedev to have his own site and not rely on social media, as it may disappear or ban you all of sudden. So, why not give a try?
I was quite reluctant at first. I'm an introvert person, expressing myself to strangers never felt natural for me, but I know I must fight against this fear if I want to overcome it, so here I am writing this first post.

How I became a gamedev? Hmm, when I was in my early teens my father taught me the QBasic programming language, and I quickly became hooked with it. Being able to create a game from scratch was awesome! Even though it was extremely basic looking lol.
As the time passed I studied programming by myself, learned C, done a few simple programs, eventually I came across the Allegro library, and after following a step-by-step tutorial I was able to compile and start using it... it was DJGPP, a dos-based compiler. Moving from QBasic to C already was nice due the much better performance and more confortable coding style, and then being able to use graphics and sounds was incridible!
I made a few small games, unfortunately almost all of them was lost due a Windows error that happened and made me format my HD :(

Eventually I moved to Allegro 5, as the version 4 was made for dos and is very limited for today standards. I also moved from C to C++. That's when I started taking gamedev a little more serious. My first project in Allegro 5 was to port an asteroids game I had made from allegro 4 to 5 and make use of the new library features to improve the game on overall. I took like an entire week to convert all Allegro 4 calls to the new coding style, definitively worth it. The resulting game is available on my itch.io page. Talking about itch.io, that's the time when I began posting my projects online, it was daunting at first, like, how will people react about it? Will I receive hate? Or will I earn fans? And if I do can I attend their expectations? Being straight to the point, none of my games received much attention at that time, but it didn't stop me.
Now the "bad" part: until that time I had done games essentially as a hobby, simply because I wanted people to have fun. But reality isn't fun and games all the time, money was starting to become a problem and I convinced myself that I had to become profissional and release something that people would buy.
I don't remember all the details until this point, but eventually I started coding a turn-based strategy game using Advance Wars graphics as placeholders, the results were looking good, and that's how Eternal Warfare was born.
It was like 5 years of development, always learning new stuff for both C++ and Allegro. At some point Allegro performance wasn't being enough for the game and I went crazy looking at the official forums for ways to optimize the rendering. That's how I started learning how hardware-accelerated rendering works, found the FastDraw addon library and quickly introduced it to my code, reaching acceptable rendering times again.
The final line for releasing the game was crazy: I knew I must ship a finished product, so I disciplined myself into doing the necessary work every day without fail, like, creating 2 or 3 campaign maps every day, fixing the last bugs, doing minor balance fixes, not to mention creating the Steam page and setting everything up.
Releasing a game on Steam is such a nice experience, seeing people play my game and genuinely enjoying it. As expected, there was criticism, some valid, some pure nonsense, and a few bugs slipped on the initial release, and I worked quickly to fix them.
The time passed, money was slowly flowing in, and I kept updating the game introducing new content and fixing stuff. But something wasn't right. Over the time I found out that Steam requires many tricks to allow a game to be successful, and I missed most of them. But that's content for another post.

Eventually I took a break from updating Eternal Warfare and went back to studying programming. I started studying OpenGL. It looked very hard at first, but thanks the excellent tutorials from learnopengl I was able to learn quickly, doing several lessons per day, and keeping an archive of everything I had done. At some point I stopped doing the tutorials and went for a bigger, ambitious goal: creating my own game library!
But why not simply continue using Allegro 5? Well, Allegro is a nice library, but it got stuck on the past. Many rendering features that have been around for many years never got implemented on Allegro. I can't judge the devs, as Allegro lost popularity over time, it is demotivating to work on something that is barely being used.
Once again, I learned a lot on this new adventure of developing a library. I called it "Alegrinho" in tribute to Allegro. Alegrinho is a pun: in portuguese it sounds like the diminutive of Allegro, but means "little happy". Plus, I made the library logo a happy "A".
I worked mostly quiet on the library, creating several game prototypes as a way to see what features the library needed, and possible to find out if I can turn one of these games in my next Steam game. Until now I haven't decided.

And that's it. I plan to talk about Alegrinho and my prototypes in more details in further posts. Thanks for reading!