My last blog post was … over a year ago. While Paul picked up the slack and wrote three posts since then, I cannot believe so much time has passed. So, what happened? Here’s the short list: parental eldercare, Covid, brain fog due to the Covid, day job responsibilities, you name it. I’ll spare you the details, but I can talk a bit about the brain fog.

I became symptomatic with Covid on 02-Jul-2022. I was sick for about a week, which included fever, fatigue, loss of taste/smell and “brain fog”. I didn’t really come out of the brain fog until early October. During that time, while I knew what I was capable of with regard to chores, errands, tasks, software development, game design, etc, I didn’t have the mental fortitude to do it. Plans made in the morning would erode like a storm-swept beach. I took a lot of mid-day naps on the couch, even during work days (made possible by the ability to work from home). My ability to multi-task disappeared. Every task took mental effort just to start it, never mind get through it.

All that aside, I was not idle, even though I had many distractions this year. I can summarize the progress we made since my last personal blog post here, as follows:

  • Nov 2021
    • Game Client: Tidied Account / Game Management
  • Nov 2021 to Dec 2021
    • Ported Cartesia Library from Ruby to Javascript (2D geometry objects and functions)
    • Ported PixMill Library from Ruby to Javascript (Graphics & Text Layout objects and functions)
  • Dec 2021
    • Created TFX Javascript custom controls library for the TOCS Game Client
    • TFX: added vehicular drawing capability
    • TFX: added unit patch drawing capability
    • TFX: added unit counter drawing capability (NATO style, vehicular silhouette style)
    • Crux Framework: added resource response API capability in addition to the typical JSON response
    • Services: added Resource Manager API to download graphic resources from the server
    • Crux/IMDE: improved capability to test services within the framework w/o requiring client changes
  • Jan 2022
    • Services: Module API to retrieve unit / formation manifests from XML game box files
    • TFX: Tiled Map object support with “lazy loading” of tiles
    • TFX: WW2TacticalContext to support the management of objects specifically related to WWII tactical games
  • Feb 2022
    • Numerous fixes across code and data modules
  • Mar 2022
    • WebFX: added Stackable Pane
    • TFX: added TableauPane with stackable tiled map and counter layers with zoom and opacity settings support
  • Apr 2022 to May 2022
    • WebFX: MEO (Mouse Event Observer)
      • handles click, dbl-click, drag, clk-drag and other mouse event semantics
    • WebFX: Object Dragging Protocol
    • WebFX: Full drag-n-drop of any HTML element, including custom ones (finally!!!)
    • Operational WWI rules additions as a new era / scale extension of the TOCS rules
  • Jun 2022
    • Cartesia: HexGeometry object support
    • Numerous fixes in TableauPane, TiledMap, Game Module infrastructure
    • Many Utah Beach module updates: air missions, victory conditions, reinforcement schedules, etc.
  • Jul 2022 to Sep 2022
    • Covid!
    • Fixes in Cartesia and in TFX when dragging counters across a map scaled > 100%
    • Fixes to Operation Market Garden:Nijmegen map metadata
    • Added Berms as a WWII tactical terrain type
    • Added Utah Beach module unit setup restrictions to the game box information
    • Added Utah Beach module mission briefs
  • Oct 2022 to Nov 2022
    • Services: creation of database tables designed to store game session information
  • Dec 2022
    • Updates to the Utah Beach order of battle
    • Updates to the Utah Beach map: fort names
    • Updated database schemas to entity-based ones
    • Updated game module development tools to support the new database schemas
    • Improved internal Crux API architectures
    • Updated Crux service code to handle new APIs and database schemas
    • Updates to the operational WWI Belgium map
  • Jan 2023 (so far)
    • Updated game invitation management and user services
    • Improved packaging and management of code to access remote services on the Crux server
    • Creation of new MDK (Module Development Kit) development app
    • Update of the TOCS game client and MDK code to use up-to-date libraries
    • More updates to the Belgium map

That’s just code changes. At one point, our internal wiki software needed to be replaced due to server upgrades. As the wiki software didn’t support the newer version of PHP, we were required to find another wiki platform. We spent over a week finding new wiki software that we’d be happy with and porting all of our wiki pages from the old format to the new one.

My Intel-based MacBook Pro also started dying pseudo-randomly due to a possible thermal issue. I’ve since replaced it with an M1-based Mac Studio desktop system and I can safely say, after migrating almost all of my files and configuration settings and git repos, that the compiled code libraries work on the M1 system as well, after a recompile of course.

A move to a desktop system inhibited my flexibility, as well as keeping me from being able to play a game remotely at the Nor’Easter con, so I also purchased a 17″ Linux laptop from Tuxedo Computers in Germany. Great system. We can now cover x86/Linux platforms in our code coverage now as well.

In between all of this, I’ve been adding documentation to all of the code that’s been written and updating the Codoc Ruby gem to support the project’s more idiosyncratic constructs.

Yes, it’s been a busy year fraught with obstacles. As I’ve written numerous times in the past, when I get busy, I go silent, and it’s been a busy year. The major highlight is our ability to drag counters across a map in our browser-based client. We don’t have “hex snapping” capability yet, or other ease-of-use goodies, but they’re coming. The switch from the UI to the services side is a requirement now. While we can theoretically push virtual cardboard across a virtual map, such operations need context. It’s time for Paul and me to be able to create a game and to do real game-like things on our game client. It’s underway, quite a few of the pieces are in place. We just need to hook them up and move deeper into the game client mechanics.

This year should be a special one.


Leave a Reply