December is the cruelest month
This time for once my cheeks are warm
After long years in the monkey-house
I am ready for the storm - The Waterboys, December
On 22-Dec-2025, I was finally able to get my ex-wife’s heavy furniture out of the house we co-own. However, “The Thorn”, as I will henceforth refer to her as, sandbagged me as the mover’s arrived. She and my son wanted to sleep in the house on Christmas Eve and so, with the moving day slated for the 22nd, asked if the beds can stay behind. I replied that I had no problem with them sleeping in the house, but that they’d be camping as the beds would be in their new home.
Minutes after the movers arrived, and over an hour after my arrival at the house, I got presented with “they’re not moving the beds, right?”. Sigh… followed by a “We talked about this.” Same shit, different decade. Yeah, we talked about this, and I had strongly disagreed. I told her as much as a response, but I was not about to have yet another verbal altercation with The Thorn, especially in front of the movers. I relented with a “Fine, but I’m not certainly not moving them. You’ll have to find someone else to muscle those things up 2-3 flights of stairs.”
As setbacks go, it is minor. I got what I needed: the heavy furniture is out of the house. Phase Two is now complete, but I’m still royally pissed off. Phase Three is paint and plaster repair. It is also time for me to put my foot down and force compliance. Enough is enough. Even Jesus got pissed off and literally whipped people into shape.
Brick Mill Games Dissolution
The efforts of December, which included some family health support (nothing major), pushed some items to the back burner. As of the end of 2025, BMG is dead, if not officially. With the aforementioned Phase Two completed, I was able to take a more detailed look into the legalities of dissolving an LLC. Of course, there are forms and fees, but, at this point, it’s mostly a matter of task scheduling and timing.
Gemz
The Gemz app that I wrote is working a treat. I’ve begun to dig into supporting the command-line interface via the “gem” tool, but right now it is hosting all of my Ruby gems. I do not need the CLI as yet as these are all gems that I have developed, but it’s still a feature that will come in handy downstream and one that I will definitely need to support Repo, my git repository service.

A Series of Catastrophes
My research into making a corps-level WWI game is ongoing, occurring between all of my other tasks. I have a counter manifest + notes for 1914 Germany, Austria-Hungary, France, Britain, Belgium and Russia. The research into each nation’s artillery assets, including their heavy siege guns like “Big Bertha”, has been both enjoyable and frustrating.
The German Army in 1914 enjoyed a huge artillery advantage over their opponents. On paper, they were nearly unstoppable, especially given that in WWI, artillery was queen of the battlefield. The fundamental trick in designing this game will be to illustrate the “why” of their historical defeat, but also support the “what if” possibility of a German victory. First things first, however. I need some idea of the counter manifest and a map.
HexMap: My Kingdom for a Map
A quick text to my friend, artist and NES “queso grande”, Mark Hinkle, regarding the possibility of him making a WWI map for me evoked the following response, “Which do you want me not to get to first — the map for KG/Overlord or this?” Good point.
This led me to look at my various graphics toolkits and hexmap logic routines. As it turned out, most of what I needed was written in Javascript to support the BMG efforts. I had never ported it back to Ruby. It was also glommed onto my Cartesia 2D geometry library and not in its own library.

Fast forward: the screenshot above was generated with a Ruby script which used my new HexMap gem, a port of the hexmap tools that were embedded within the JS Cartesia library. I spent a few days decoupling the code from Cartesia, porting the JS to Ruby, fixing quite a bit of technical debt and adding some new functionality.
One bit of functionality that was added was for maps which don’t have half hexes along the top and bottom borders. Some games provide maps where those half hexes are playable; other games provide maps where they aren’t. The map graphics above shows unplayable half hexes. The original code only provided support for playable half hexes.
Unfortunately, this required changes to code which relied on playable half hexes. One piece of map logic that I wrote was the ability to trace hex paths on a map for highlighting purposes. For example, you might want to see all hexes “east of hex 38.03”. The following screenshots illustrate this type of functionality when showing hexes east of an odd column and an even column:


The HexMap gem supports four major logic blocks:
- Layout
- PathEngine
- Intrahex Coordinate System (ICS)
- ICSPath
Layout is used to describe the map: number of hex columns, hex rows per column, are half hexes in play, pixel size of each hex. PathEngine is used to define a drawable path based on a codified description as well as a clockwise or counter-(anti-)clockwise direction. These blocks are used for map-wide definition and management.
The Intrahex Coordinate System, or ICS, and the ICSPath, are logic blocks used to describe and/or draw regions or paths within each hex, treating each hex as its own tile. For example, there is an elevation contour line which enters this hex, goes around the perimeter across four hex sides, and exits. How can we describe this path in a repeatable way and also not make it a “cookie cutter” solution which will negatively affect the look of the map? Simple. Path and pattern swatches with known entrance and exit points around each hex’s perimeter. I say simple, but I haven’t really taken advantage of building these swatches yet.
The following screenshot shows a map, similar in layout to the map above, written with a similar Ruby script, but where each hex was mapped with an ICS overlay of granularity 12 and where each integral coordinate is marked with a point and each 4th coordinate is marked with a larger point and the center of the hex marked with an even larger point.

This granularity, coupled with the ICSPath logic used to build complex intra-hex paths, will allow for a wide variety of detailed intra-hex and cross-hex map features, given the known, shared entry/exit points along each hex’s edge. Taken as a whole, the library will be able to handle map-wide and hex-local drawing and management.
On Hell’s Highway
OHH is nearing the production phase of development. While the play test crew is currently playing one final campaign scenario, there will be some play tests with the single-map scenarios.
To that latter end, I will be forming a new play test group with my cousin, Bryan, and a newly minted member of the Nashua crew, Yuri. Both Bryan and Yuri are relative newcomers to the paper map wargame genre so they will both be able to come up to speed in tandem.
KG2, S&S, Etc.
It will soon be time to swap A Series of Catastrophes with the new Killing Ground effort. While I have an updated counter manifest ready to go, I’m waiting for Mark to update the map. Unfortunately, the original maps are over a decade old and things have changed, such as fonts, software versions, etc. Our last playing of KG used my new CRT and it seemed to work quite well. I have quite a few other additions and subtractions to try out, but I really need an up-to-date map.
Steel & Steam, meanwhile, is still simmering in its own juices. I will try to get it ready for a showing at Stack Academie in May.
Stay tuned…