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.
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.
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.
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 Simulations‘ Jaws 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.