I have quite a few things to talk about today, after a seemingly long hiatus from writing posts. Frankly, with Nor’easter XXIV around the corner, there’s still a lot of work to do to get our game client up and running. The good news though, is that we keep making progress.

JSCanvas

One of the biggest items that I tackled over the past couple of weeks was the port of our Canvas graphics tools from Ruby/Cairo to Javascript. As I had suspected when I wrote about Javascript frameworks and the number of source code files that were involved with some of them, the number of Javascript files has bloomed through the course of this port. The JSCanvas support has added 12, not including the test harness itself.

As one might expect, writing a wargame using HTML5/&c will be image intensive. Maps, charts, tables, markers and the units themselves all require imagery. A wargame with 1000+ counters, even small ones like 100×100 pixels, will require 1000+ network connections to download them. Will they be cached? Sure, but that initial download will be a killer.

What if the JS code could build the image graphics based on a single XML file manifest? The system could simply download (or read in a cached version of) the manifest and, boom!, 1000+ graphic images could be generated in game. Better yet, if the unit isn’t being used yet, such as a late game reinforcement, it doesn’t have to be generated at all until needed.

JSCanvas Test Harness
JSCanvas Test Harness

Well, I can now say that the concept works, as the test chit in the image above shows. While JSCanvas isn’t fully ported, 95% of it is and that is good enough for now. In fact, Ruby/Canvas needs a bit of tuning as well, but that work can wait, too. We have a game client to build.

Catching Up to the Past

As the WebClient gains steam over the next couple of weeks, I find myself having to catch up to past milestones in the past projects. The TClient application, written in Swift as a macOS native application, had reached the point where users could login and gain an authentication token. The initial JRubyFX application had a map and stackable counters and “snap regions” where units would snap to the center of the hexes on the map. With all of the recent JS foundation work in place now, I can finally get back to the fun stuff of building the actual application.

Next on the WebClient docket over the next development sprint:

  • User Experience
    • User Authentication
    • User Dashboard and Game Management
    • Game Start, Invitation Management, Game Load
  • Game Play
    • Map Controls & Piece Management
    • Game State Communications

Ambitious? Of course, except that these concepts have been floating around in my head since the JRubyFX prototype work from 18 months ago. And, I still have all of that sweet prototype code that I can use from past milestones. The languages may change, but the concepts don’t.

Playtest Preparation

Meanwhile, Paul has been hard at work going through all of the rules, charts and updated concepts based on notes and user stories taken from our last playtest. He’s using our new XML-based system and it seems to be working quite well. It has already improved our ability to do documentation reviews as the content itself is in XML, which, being a text-based markup language, allows us to use the built-in source code comparison tools that BitBucket has. We no longer need to rely on using the document application’s tools and navigate our way around the document to do reviews. Any differences are already highlighted and our source code control system acts as our document management system. It’s not wysiwyg-friendly, but we gain more than we lose from doing it this way.

Steel & Steam and Other Games

I know I’ve mentioned it before, but non-TOCS games have been pushed to the back burner. Unfortunately, this doesn’t mean that I don’t think about them; I’m constantly writing notes down for the future. But having lots of good ideas without publishing a finished product is a tried and true way to kill a company. We have to finish something and TOCS will be that initial product. The other projects aren’t dead, just dormant.

Outside the Mill

While I don’t usually mention any of my non-BrickMill activities, I want to crow a bit about the release of New England SimulationsJaws of Victory game. Not only is this a great game, but I contributed quite a bit to it. This is the 3rd published game where I have a playtest credit, but it is the first game where I also have an editing and proofing credit as well. This is the first published game where I was involved from the start to the finish and I’m very happy with how it turned out.