It’s been four weeks since the last snapshot release of the suite of assistive programs for players and Judges of Strategic Primer, so despite how hectic this week is for me it’s time for another development report and another snapshot release, which you can download from GitHub as usual.
As usual, most of the month’s changes were warning fixes, suppression of unwarranted warnings, and other such “basic code maintenance.” And I did some work to improve “test coverage,” the proportion of “code paths” that are exercised by the test code. But there were a handful of other items of note:
- The report generators had a bug that caused the “sanity check” at the end of the generation process to declare that just about everything in the map hadn’t been included in the report, and may have even led to items showing up in the report more than once (the player’s fortresses in “other fortresses you know about” as well as “your fortresses,” for example). Now fixed.
- In the worker-management app, the dialog that asks the user to confirm an instruction to dismiss a worker (or other “unit member”) now specifies which worker it thinks the user asked to dismiss.
- In the worker-management app, the UI now no longer displays (in the “member details” panel and in the description in parentheses after each worker’s name) Jobs that the worker has no levels in and no Skill levels in.
- The code that asks the user to choose a file now correctly handles the selection of a non-existent file (for example, when the user selected “Save As,” or wanted to export a proto-strategy from the worker-management app), instead of treating this the same as if the user had clicked “Cancel” in the dialog box.
The Pivotal Tracker backlog is currently fairly close to what I’m hoping to get done in the near future.
One item that would be at the top of the list if I had any idea of where to begin is making a Mac-native “application bundle” that actually works (I would say “fixing,” except none of the versions I could test worked at all), followed by other adjustments to make the suite behave like a native app on the Mac platform.
Other items on the roadmap are:
- Adding a mining-model generator that fits products like sand better than the “vein-oriented” current model.
- An app feature to suggest combining resources in a single tile that are identical in “kind” and “name” and use identical units.
- An app to allow the user to view and manage his treasury, armory, etc.
- In the worker-management app, the user should be able to apply orders to multiple kinds of units, or multiple units of different kinds, at once.
- Change the way unit orders are represented so they can be set per-turn
- Add support for unit results to the map format
- Make subset checking treat location as another property, instead of treating a fixture that moved as a ‘new’ fixture in its location in the subordinate map.
- Fix the performance maybe-issues: that I use Swing APIs that “best practice” (according to my reading) recommends not using for loading images, drawing images, and limiting the drawing area
- Make the GUI execute some operations in parallel to the GUI-update thread
- Anywhere the GUI allows the user to cause a fixture to be created, allow the user to enter an ID #.
- Add a way for the user to preseed the ID-numbers-in-use cache with a map without actually opening that map. (That is, without leaving the map open—I don’t intend to reimplement, or shell out to call,
- Convert the “Display …” menu to a panel containing checkboxes that the user can drag to set a custom display-sort order to control what appears on “top”.
- As a user requested, when zooming in using the mouse scroll wheel, the zoom should center on the mouse cursor. (The ‘center’ menu item and hotkey help with this, but it’s still a good idea.)
- Make the apps behave (more) like native apps (following human-interface guidelines) on the major platforms, starting with Mac OS X. The Window menu is a good start, and finally works, but there’s more to do. I need to enumerate what more needs to be done …
- Changesets need to become a priority, because maps are no longer immutable from the players’ perspective. First, I need a list of operations that need to be supported.
- The turn-running helper apps should be able to tell me such facts as how much meat any given animal produces, how much grain should be produced in a harvest, etc.
- Related to that, “resource management,” eventually including modeling resource production and accounting in the map and the helper apps.
- Something like the mine-model-generation program for stone deposits. However, I currently make do with the existing model, just with different proportions for each level.