University milestones
08/12/2024 • story project C C++
The moment my programming skills really began to evolve was during university. I was learning a lot, mainly because we often spent Saturdays and Sundays there, developing concepts together. The first year started with simple projects, such as recreating standard C library functions like printf and strlen.
At that point, I wasn’t very confident with Linux systems yet, but I had already developed the (in)famous Racedriver title in C++. This gave me a slight edge, and the tasks weren’t as challenging for me as they were for some of my peers.
The first significant project we tackled was math-based. The objective was to calculate the angle of a ball hitting a paddle in a Pong game. There was even a bonus point for developing a complete Pong game—and of course, I went all in. I ended up putting way too much effort into making that game, simply because I loved making games. It thrilled me that game development was now part of my academic journey.
Now add some germans and guns, and you're there!
A few weeks later, we faced a new challenge: creating a project inspired by a legendary id Software game, Wolfenstein 3D. Aptly named wolf3d, the project required us to implement ray tracing to project walls onto a grid map. I was stunned—this was how developers in the early days created 3D games with minimal resources and basic renderers. In just a few lines of code, I had the foundation of a Doom-like experience. That project shifted my perspective on game creation and opened the door to the world of graphics programming.
Although I didn’t delve deeply into raw graphics after that and eventually transitioned to game engines, learning those fundamentals was amazing.
The journey continued with projects that explored the inner workings of systems. One standout was coding a Bash-like shell from scratch in C++. Through this, I discovered the intricacies of file descriptors, output/input piping, and shell behavior. It was a thrilling experience and one that later motivated me to start my StbxEngine project.
Another fascinating project was called CoreWar. It was a battle between two programs, each attempting to overwrite the other’s memory. The concept was—and still is—widely popular online, with communities continually developing AI for it.
I’m sure I’ve forgotten some projects, but these are the ones that left a lasting impression on me. They were milestones in shaping my understanding of programming and igniting my passion for creating.
Learning programming as a teenager... with C++ and cyphering
07/12/2024 • story project C++
It’s been a wild ride since the days when declaring a variable and assigning it felt like an insurmountable challenge.
Let’s throw it back to the very first day I learned programming.
I was in high school, the year 2011, and we had quite a lot of free time. While most kids spent their breaks playing outside, my friends and I chose a different path—we gathered in the school library to teach ourselves programming.
They decided to start with Java. At that age, with zero knowledge of any programming language, I couldn’t bring myself to be interested in it.
Instead, I began experimenting with something simpler: creating interactive prompts using the Windows Batch scripting language.
A good example of a very bad UI
After tinkering around for a while, I realized it was time to challenge myself further.
Around the same time, my friends had finished their metaphorical cup of coffee (finally),
and we all agreed to focus on a new deity of programming: C++.
We turned to a well-known French website called "Site du Zéro" created by Matthieu Nebra.
It was brilliantly written and provided a thorough introduction to C++ programming fundamentals.
I still remember summarizing the course on A5 cardboard notes, with 4-colour penballs.
Remarkably, I still have those notes in my office drawer to this day, like a “lucky charm” of sorts!
If only I was this dedicated at school at that time!
Armed with our newfound knowledge, my friends and I set out to write our very first program: a substitution cipher utility.
Looking back, it was hilariously bad, but it worked!
The project was a simple "choice menu" that, believe it or not, was incredibly inconvenient to use because it required a ridiculous number of inputs just to encrypt a file.
It used multiple encryption methods, all based on substitution.
One method swapped all the ASCII alphanumeric and special characters with integer values, which were written as 3-character sequences (yes, the output was three times bigger. I definitely wasn’t planning on encrypting my entire drive back then).
Other methods just replaced characters with random garbage symbols.
The real problem with the code, despite all the attention I paid in the C++ course, was that any complexity was handled using switch cases: one for each character supported by the method.
It was... not pretty. Just plain bad code. But, for the record, I’m oddly proud of it. I still have a copy tucked away in a private repository, mostly for the sake of nostalgia (and a bit of embarrassment).
The day I decided to create this space
07/12/2024 • story
Next year, I will turn 30. It feels like a big milestone. A turning point that has me reflecting on how I’ve spent my time.
Looking back, one constant thread through my life has been the countless hours spent in front of a computer.
It’s not just about the time; it’s about what that time gave me.
From the moment I first tinkered with a program or scribbled ideas for a new project, the computer became more than a tool—it was my creative canvas.
Over the years, I’ve poured my curiosity, passion, and countless late nights into projects of all kinds.
Some were small experiments, others grew into something I was truly proud of. All of them, though, were stepping stones that shaped my journey.
Now, as I reach this milestone, I feel compelled to look back at those projects, starting from the very first one.
By sharing these projects, I’m creating a record for myself—a future reminder of where I began and how far I’ve come.
And maybe, just maybe, it will inspire someone else to look back at their own journey or start one of their own.
Let’s dig into the archives and rediscover the magic of creating.