What is this site about?
created: 2025-03-06 06:05:26 UTClast updated: 2025-03-07 03:43:22 UTC
I have been dabbling in some hobby, evening, game programming over the past year. It has ranged from just a little dabbling with C and SDL, not really making a game, to building a very bad space invaders clone with swift and metal. Then I spent some time just dabbling in C and a bunch of unfinished test projects. Well maybe you can say unfinished? It started them with the intent to focus on doing a single new thing and then move on to the next.
After watching Pikuma's C course on a Wolfenstein style editor, I decided to continue along that path. Take what I learned there and to extend it and make something new. Make a game and also just experiment with doing different things. Which leads me to the current project.
Intent
The intent is to turn out a game with a sort of minimally-hackable engine underneath. The game will serve more as a technical demo, but the key part is some amount of functionality where someone would then easily create their own game using the same structures without really touching any code. It will be software rendered by modifying and blitting a pixel buffer to the screen like Wolfenstein with its pseudo 3-D rendering technique. Levels and configuration of the game will be handled in YAML.
Woah, wait a minute
YAML? Yea, I agree. YAML really is a horrible mark-up language. But I am used to writing quite a bit of it maintaining Comtrya and other things I do. Also, it's a horrible choice, so why not? Why not speak this evil out into the world.
Tech Stack
First and foremost, will I stay with going in C? No. I will be implementing this in C++. At the end of the day, C++ rules the game development world. Lots of samples and material online assume C++, plus you can kind of just pick and choose the features of C++ you want. Don't want smart pointers or want them? Up to me. Don't want to use templates, or want to use them? Same. You can still pretty much write C with just taking a subset of C++ for what you find valuable.
I will be using SDL for managing input and graphics. It's pretty great, I like the API, so why not? And for yaml, I have so far been using libcyaml. Perhaps I will change that, perhaps not. Will see as I go alone.
What is this for, going forward?
Well, primarily, this is a bit of a dev log. But as the engine becomes more "complete," documentation and such will also appear on this site.
That is it for now. I look forward to building this more and posting information what the work and what I have learned along the way.
After watching Pikuma's C course on a Wolfenstein style editor, I decided to continue along that path. Take what I learned there and to extend it and make something new. Make a game and also just experiment with doing different things. Which leads me to the current project.
Intent
The intent is to turn out a game with a sort of minimally-hackable engine underneath. The game will serve more as a technical demo, but the key part is some amount of functionality where someone would then easily create their own game using the same structures without really touching any code. It will be software rendered by modifying and blitting a pixel buffer to the screen like Wolfenstein with its pseudo 3-D rendering technique. Levels and configuration of the game will be handled in YAML.
Woah, wait a minute
YAML? Yea, I agree. YAML really is a horrible mark-up language. But I am used to writing quite a bit of it maintaining Comtrya and other things I do. Also, it's a horrible choice, so why not? Why not speak this evil out into the world.
Tech Stack
First and foremost, will I stay with going in C? No. I will be implementing this in C++. At the end of the day, C++ rules the game development world. Lots of samples and material online assume C++, plus you can kind of just pick and choose the features of C++ you want. Don't want smart pointers or want them? Up to me. Don't want to use templates, or want to use them? Same. You can still pretty much write C with just taking a subset of C++ for what you find valuable.
I will be using SDL for managing input and graphics. It's pretty great, I like the API, so why not? And for yaml, I have so far been using libcyaml. Perhaps I will change that, perhaps not. Will see as I go alone.
What is this for, going forward?
Well, primarily, this is a bit of a dev log. But as the engine becomes more "complete," documentation and such will also appear on this site.
That is it for now. I look forward to building this more and posting information what the work and what I have learned along the way.