Strategic Primer assistive programs development report and roadmap

Christ is born!

It’s only been three weeks since my last report on the development of my suite of assistive programs for players and Judges of Strategic Primer, rather than the usual four or so, and I’ve already had one (seasonal) post today, but to avoid having three posts on New Year’s Day (or delaying the release of a version that fixes major bugs by yet another week) I decided to schedule this development report a week early.

As usual, you can download new the new version from Bitbucket, and if you want to know more details than I list below, you can see the full history in the Mercurial repository.


There weren’t very many changes this month. What changes there were can be divided into three categories:

  • Exploration bug fixes. As I mentioned in last week’s post, while writing that exploration-program User’s Guide I uncovered a couple of major bugs. One caused the exploration GUI to crash if no “subordinate” maps were specified on the command line, and the other caused a “null” object to leak from a utility class that GUI used to select fixtures.
  • Code simplification and warning fixes. The only really notable item here is that a mutable collection of tiles can no longer contain immutable tiles.
  • Improvement of the hunting, fishing, and gathering model.

Previously, all of these activities were run by selecting “fixtures” from a specified tile at random and displaying either “nothing” if they were an unsuitable type of fixture, or their string representation otherwise. This had the advantage of making hunting more difficult on a more-populated tile, but it was otherwise almost more frustrating than helpful. So I rewrote the code entirely. Now it finds all possible quarries (excluding aquatic animals while hunting and non-aquatic animals while fishing!) in the surrounding (up to two tiles, i.e. a mile, away) tiles, weighting those on immediately adjacent tiles more heavily than those further away, and those on the tile itself still more heavily, and gives randomly-selected results from that list, or about half the time “nothing.”


The list of “planned” features (which has debatable correspondence with the Pivotal Tracker backlog, remains largely unchanged from previous months.

The first item is to make the apps a proper MDI application, with a Window menu keeping track of windows and their status, and to make them behave like native apps (following human-interface guidelines, etc.) on the major platforms, starting with Mac OS X. But because my first attempts failed, I’m still at a loss as to where to begin.

Second, with it possible for players to make changes to a known-world map using the “helper apps” (rather than just a text editor) and send it back, changesets need to become a priority.

Third, I want to “finish,” test, and switch to (once I’ve demonstrated it won’t lose data) the new map API; this may make developing changesets easier, and it’s possible it’ll bring performance improvements, but we’ll have to see.

Fourth, I want to write programs to automate the more tedious parts of running a turn, such as agriculture, herding, food gathering, and hunting—the latter two are much better now, but how much meat any given animal produces, for example, still has to be looked up by hand.

That ties into the fifth item on the list, “resource management,” eventually including modeling resource production and resource accounting.

Sixth, I hope to add larger images (“portraits”) for units and some other kinds of fixtures.

Among other planned features.

If you have any features you’d like me to add, or you run into any problems with the software, please let me know, perhaps using the issue tracker or contacting me directly.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s