Hi! I’m Andrew,
and I’m an independent game developer. I’ve spent years building an engine framework and gameplay implementation for my game Sky of Embers. Back when I started this project, I felt that even having been out of college and working at start ups for a few years, I still didn’t have a good core of fundamental knowledge for my work in programming and engineering.
I remember many painful lessons about building software and its architecture in college and shortly thereafter. When I started Sky of Embers, I wanted to dive as deep as I could into the technologies underlying the game engines I had learned in college, like Unity and Unreal, to fill in that gap. At the time, I considered neo-langs like Zig, Rust, or Nim too young to be candidates for a long term software project. Not wanting to self-inflict c++ I settled for c after discovering Casey Muratori’s Handmade Hero and Sean Barret’s stb libraries, which offered some insight into how one could use c and c++ in a more modern and less error-prone style.
In the meantime, for good reason, c and c++ look like they have real competition from Zig, Rust, and many others, for the future of code! Not to suggest that c is going away any time soon. In a very quietly alarming way, everything is built on top of it. But when I set out to start my next long term project, I have a feeling it won’t be in c or c++.
And so, this blog chronicles my observations working in c, while having the freedom to try many different coding style and architecture experiments. Not just my experience learned and learning to program in a scalable and bug-resiliant way, but an epitaph for what to me really feels like the end of c’s era. And what one can learn from working many years in a language with c’s many capabilities and limitations.