It has been a while since I last provided an Onager update. Let’s see what I have been up to on my asset build pipeline toolset.
When I last wrote, I was still writing core foundation code. I was working on things like command line argument parsing, application flow, integrating various third-party libraries and, most importantly, working on my job system. Although none of these things are “finished” they were all in a great state for me to start actually piecing some things together.
Updates
Before I dig into details there though, here are some updates I have silently released:
Onager Features – This page got a major update with features I am considering, and in progress estimates.
Onager Configuration – Some documentation of configuration as it currently stands. The more I use it with my test plugins the more fleshed out it gets.
What have I been up to?
As for Onager itself, my work has been focused on the “Asset Compiler.” It is a CLI that compiles individual assets, types of assets, or entire configurations of assets. At this point, I have an application that loads up some plugins that generate fake asset metadata. My application properly goes through the steps of loading asset metadata, doing incremental asset checks, and persistence of results. My data schema is approaching completeness and the foundation of my Asset Compiler is in place.
With that foundation, I am now able to stub new features out, iterate quickly on how they interact with each other, and fill in the actual functionality approaching what the final design intent is.
And iterating on new features is exactly what I have been doing. I recently implemented database pruning and batched transactions. My current focus is on asset dependencies, which are still in the early stages. Next, I will be adding logic to manage asset files. I am very pleased with how quickly things have been moving lately.
GitHub
Speaking of my current focus, for increased visibility and self-motivation, I decided to use GitHub’s “Project” feature to track tasks I am working on. This doesn’t have everything from the “Features” page, but it gives a sense of what I have on the horizon and what I am working on now. That can be found at Onager Toolset Feature Log if you are curious.
Testing at Scale
With most of the basics of the “Asset Compiler” in place I am starting to stress the systems I have been building. This is where generated fake assets really shine. By combining adjustable “compile times” with the ability to generate any number of assets with real references to other generated assets I can test the entire workflow and all of its parts to see how it scales while iterating quickly. This has been key for measuring things like database write throughput, testing worst case contention on shared resources, and generating enough data to run it through its paces. With configurable “compile times,” I can additionally run tests centered around finding different race conditions.
As I get the rest of the basic functionality implemented, I will soon be able to move on from my metadata-only test plugin to one that simulates actual work by generating fake files and changes. This will help me take this scale testing to the next level and set Onager up for success.
Goals
My goal with Onager is to let dev teams focus on making their game, and the best way for me to do that is to develop fast, reliable, and scalable software that fits their needs and doesn’t require much of their attention.
Hopefully, with my current pace, I will have something more interesting to show in a couple of months, and increasing iteration speed for myself should mean faster iteration speed for anyone who eventually uses the toolset.
Looking forward to the next update!

Leave a comment