It’s been far too long since I’ve posted anything here. On the other hand, I did warn you up front that radio silence is a thing with me when it comes to working on projects and how I deal with the workload. Silence on its own means nothing without context and Paul and I have been extremely busy since our last posts.

External Influences

The day job commitments for both of us have been intense this summer, which hasn’t helped our productivity at times. Still, working on this stuff is more fun than our day jobs, so we do make the time. For me personally, I made the mistake of taking on an additional small project at work as a favor for a peer and it affected one of my own deliverables. As it turned out, the project was not as small as I thought. Still, I didn’t need the additional workload. Thankfully, my team was able to provide enough benefits to the product that my deliverable was not required, so I’m not getting dinged (as far as I know). I did, however, work a lot of late and extra hours in an attempt to get that one last bit of code in, but to no avail.

New England Simulations

I also spend a lot of time working with Mark Hinkle at New England Simulations. I had been involved a bit behind the scenes with the published Jaws of Victory game and have been helping quite a bit with the as-yet-unpublished Winter’s Victory games. Covid-19 has impacted our playtesting time, but there’s quite of bit of work going on in the background. Mark, too, still has a day job, so the pace there isn’t terrible.

Mark did ask me a few months ago if I’d develop a reprint of the Overlord / Killing Ground game (and extension) as a single-box 2nd edition. I accepted, and have put quite a few notes and proposed changes together, but that was weeks ago with nothing more being done except for an on-again, off-again playtest game with my cousin using Vassal.

Bumpy Roads

Back in February, I was beginning work on the WebUI in order to create a browser-based game client. The goal was to have something ready for the Nor’easter ASL tournament that we both go to and play test. With Covid-19, those plans were dashed and the work fell off a bit.

We still had our playtest in April, however, but without the game client. The results, from my point of view, were mixed. Trying to test a double-blind game using tools not meant for such a thing led to a couple of rules misinterpretations that only came to light after several turns of game play. While the lessons learned during the playtest were valuable, my morale fell a bit here as the playtest did not give me definitive results in the areas that I was hoping to test.

My reaction to this was a renewed emphasis on TO&E research which led to the discovery of a major TO&E error in the American forces we had been using for playtesting from the very beginning of this project. My morale fell a bit more, but I was thankful for the discovery.

Then came the OS X Catalina upgrade. This upgrade destroyed the software scaffolding that I’d built to support graphics generation on my system. Without getting too much into the details, the system of Ruby modules, Ruby binding gems and underlying C code libraries stopped loading properly. I spent days worth of free time trying to debug the reasons, upgrading software modules left and right, finally narrowing and resolving issues down to one final problem: the Pango Ruby gem wasn’t loading properly. Pango is used to do text layout within my graphics code and is one of the two primary pillars supporting all of my graphics work.

As a part of debugging all of this, I bought and installed VMware Fusion to have a Linux virtual machine on my system. Everything worked in that environment w/o the need for any upgrades: something about the new OS X system killed a functioning software ecosystem. I did have a workaround solution, but my morale sank even more as more and more work seemed to be needed before I could return to the game client. Months had passed by now.


What followed was a renewed emphasis on infrastructure. Paul and I had several bits and pieces of a working development system, patched ad hoc here and there, but the hard kernel was there. We’d figuratively cut cart paths through the woods. It was time to pour some asphalt and turn them into roads.

In no particular order, these are our accomplishments over the past three months or so:

  • Repository reorganization: 3-4 repos into 1
    • tocs-core, tocs-modules, tocs-scripts → tocs
  • TO&E spreadsheet format overhauled to support a better understanding of formations and command reporting structures
  • TO&E fixes and updates applied to AttM and OMGN modules
    • Research sources purchased and/or links added to private wiki
  • Improved generation of player “docpacks” (documentation packages: rulebooks, charts, mission briefs) using XML document sources
    • as this is a double-blind system, each player gets their own set of tailored resources
  • Port of OMGN rulebooks, missions briefs to XML for docpack generation
  • Private wiki updates to ensure up-to-date information storage and sharing
  • Map improvements, especially as regards French town names / locations
  • Generation of XML counter / unit / formation manifests for server-side hosting
  • Creation of AttM and OMGN XML server-side game box definitions using XML
  • Creation of generated HTML web pages to review game module data
  • Addition of automated QA procedures to check our work against errors
  • XML validation and verification using Relax NG schemas (in progress…)
    • Proof-of-concept developed
  • Standardization and refactoring of Ruby code modules to remove dependence on the Pango gem (in progress…)
    • First real gem developed using hybrid Ruby / C code (“cartesia”)
    • Private gem server installed at cartesia hosted
    • “canvas” in development…
  • Utah Beach module fixes / ports / upgrades (in progress…)
  • Operational-level 1914 Western Front WWI research materials including TO&E spreadsheet (in progress…)

As you can see, quite a lot of work is happening behind the scenes, some of it forging ahead to the future and quite a bit of it stabilizing the existing structure. We may be quiet, but we’re quite busy.

We’re nearing the end of our stabilization efforts. Once I get Canvas gem-ified, I should be able to get back to the WebUI.