‹— back


Hell is over. I survived.

As part of the build process of my games some files are auto-generated. People think "eek!" at generating header files but it's sane, sensible, and readable to me. This is due a full blog post but it lets me have a data file like this:

And write logic like this:

Another part of the engine's build process is, though the engine is compiled into the game (it's not a separately linked library), viewing the codebase in two halves. So when game header files change (can be frequent when iterating), the engine half doesn't rebuild because the engine half never depends on the game half. And until now autogenerated code only happened in the game half, so I made the build tool out of engine parts with a game project having no code generation. A bit confusing? But it makes sense and worked.

Until yesterday, when the first components declared in that way were put into the engine. Which meant the build tool could no longer compile because it depended on things that needed autogenerating, which needed the build tool.

That build tool wasn't actually just a build tool, but general debugging and testing tool with other things. Without gory details, a bit of makefile shuffling later and now there's a game project that doesn't compile "with" the engine, but instead compiles in a single translation unity and includes engine source files it wants (file handling and string utilities). And it works, and everything is good.