It’s now been four months since the last snapshot release of the suite of assistive programs for players and Judges of Strategic Primer, with my only public comments about development progress being a few lines in the quarterly goals check last month. Most of my development efforts in the past months have gone into porting the suite to Ceylon, but that port has been essentially complete for several weeks now, and I’ve implemented some new features as well, so I’ve built a new “snapshot release,” or to use a new-to-this-project term, a “release candidate.” Players, please try it out and let me know of any issues you run into! You can download it from GitHub as usual.
The biggest change here is that I’ve ported almost the entire project from Java to Ceylon. (It still only runs on the Java platform, however. And the reason I say “almost” is that there is one class that I can’t port.) As I said, the port is essentially complete, but because I rewrote the suite of apps in Ceylon one piece at a time, it’s entirely possible that I introduced bugs or failed to include features and haven’t caught and fixed my mistake yet.
That is not the only change, however.
- In the exploration GUI, the data model can now keep animal tracks in separate lists instead of adding them to the map, which should finally fix the problem of animal tracks getting added to the main map.
- The exploration GUI now takes explorers’ “relative speed” (degree of care in observation of surroundings) into account in proposing findings.
- In exploration apps, particularly-observant explorers can now discover unexposed Ground.
- The duplicate fixture remover can now detect and remove duplicate-except-for-ID Forest and Ground even when one of the duplicates is the “primary” Forest or Ground for the tile.
- The feature that shows a tool-tip when the mouse hovers over a tile in the map viewer or the exploration GUI is now responsive to the “dynamic Z-value” specified by the user, so it shouldn’t mention fixtures that the user has said not to show.
--verboseis specified on the command line, any usage message will include a more lengthy description of the app in question.
- The “TODO fixer driver” now offers to fix ocean villages with non-aquatic races.
- There is now a command-line app to export a (proto-)strategy from orders stored in a map file. This feature was already available in the worker-management GUI, but now you don’t have to start up that app just to use that feature.
- The suite should now respond to
--helpbeing specified on the command line.
- The list that lets the user change the visual sort order of tile fixtures now matches animals and animal tracks separately.
- In subset calculations, one resource pile is now considered a subset of another that is the same except that it has a larger quantity. Previously, only an equal quantity or a zero quantity were subsets of a non-zero quantity.
- The map-checker GUI now calls the map-checker CLI instead of duplicating its checks.
- In the report generator, in the section about towns, active towns should now appear first, and ruined towns should appear before burned towns.
- I made several tweaks to the GUI on the Mac platform:
- scrollbars are now always visible there, even when they aren’t needed
- The older but more “platform-native” AWT file-chooser is used.
- Two hot-keys were changed: “Open in map viewer” is now Option-M, because Command-M was also used for “Minimize,” while “Center” now responds to the system-standard Command-L instead of Command-C.
- If a player completes (and thus “takes ownership of”) an adventure, this no longer makes maps belonging to other players who knew of the adventure, but don’t yet know that it has been completed, not strict subsets.
- The version-1 to version-2 format converter now skips conversion on maps that are version-2 already.
DistanceCalculatorclass, used in the report generators among other places, now accounts for the toroidal topology (“world wrapping”) of the map in its calculations. As does the version-1 to version-2 converter.
- Animals can now know the turn they were born; this is the first step toward properly modeling young animals.
- A map can now include data about the populations of villages and other active towns: population size, the skill levels present in the population, which fields or orchards the town claims, and what resources (in what quantities) it produces and consumes each year.
- If an app is open, and a map file is dragged from the desktop (or otherwise from outside the app) and dropped on the app (or on the Dock icon on Mac), most apps in the suite handle this sensibly: for those that have a “master map” and “subordinate maps,” they open the map file and add it as a “subordinate map.” The map viewer is supposed to open a new window with the dropped file, but my testing was inconclusive as to whether that worked properly.
- In the stat-generating CLI, racial stat adjustments are now loaded from file (files bundled with these apps), which would make adding a new race simpler.
As I mentioned, I’ve declared this a “release candidate.” Ceylon requires “modules” to have a version attached to them, so I’m slowly adopting versions as more than just a monotonically increasing snapshot number. I’ll mark “version 0.4.9014” once I’m more sure (preferably because another user has tested the apps) that there aren’t any significant bugs introduced during the port to Ceylon.
The Pivotal Tracker backlog is currently fairly close to what I’m hoping to get done in the near future. Here are some notable items:
- Allowing the user to choose multiple files at once when choosing a file to open.
- On Mac, making the program stay open, showing a menu bar with suitable options available, when all windows are closed, as is usual on that platform.
- Extending the “community population” modeling to cover former contents of non-active communities, and adding a similar data structure for battlefields.
- An app to enter, and where I don’t have prior data generate, those “community population” details.
- Adding population count to Animals.
- Making sure that the test suite is sufficiently complete.
- Adding a feature to allow a user to edit results of unit orders (which can be stored in the map format, but not edited in an app)
- Extending the map format to include roads.
- In the worker management app, allowing the user to apply orders to multiple units of different kinds, or multiple kinds of units, at once.
- Adding a resource-entry feature to the map viewer.
- In subset checking, reporting moved units (or other fixtures) as such instead of “extra” in their new location.
- Creating a “fortress-design” or “tile-planning” app.
I’m not currently planning to spend much time on adding new features soon, however.