In the four weeks since the last snapshot release of the suite of assistive programs for players and Judges of Strategic Primer, there have been some fairly significant changes, but few that users should really have to concern themselves to know about. In any case, it’s time for another development report and another snapshot release, which can be downloaded from GitHub as usual.
In addition to the usual round of (sometimes merely attempted) fixes for warnings and the like, the past month’s changes included:
- Support for towns having portraits.
- Improvements to the resource-adding app:
- A log of everything added so far this session
- Use of “spinners” (with buttons to increase and decrease) for numeric quantities instead of just text boxes.
- A feature allowing the user to add multiple copies of a piece of equipment at once.
- If the user tries to add something without choosing a current player to add to, ask him or her to choose a player instead of supposedly adding it only to have it not be written out to disk later.
- If any required field is empty, pressing the button simply returns the cursor to that field instead of adding an incomplete item.
- The GUI versions of the pure-CLI utilities (map-checking and subset-checking, perhaps among others) that simply put the log into a graphical window now use a control that allows you to select (and copy, I presume) text, instead of just a “label.”
- In the map viewer (and the exploration app, and anywhere else it might show up …), animal tracks or traces are now represented by a different icon than “an animal” or an animal population.
- Some new possibilities in exploration as modeled by the helper programs:
- If the moving unit is told to stay in the same place, in addition to having local villages swear fealty, the unit can dig to expose what kind of ground is in the area, and sometimes even mineral veins.
- About 10% of the time, an explorer will notice two “sometimes-notice” features in a tile he or she is passing through, instead of just one.
- Explorers will now also sometimes notice tracks of animals that are nearby.
- Finally, I wrote a totally new iteration of the code to read and write map files, taking advantage of Java language features new in Java 8. I called it “FluidXML.” I started out having it call reading code from the “ReaderNG” framework, which was the “old” version before I started this that I kept around to test the (now-previously-)current version, and output code from the “CompactXML” framework (which had been the “current” version), then quickly replaced those references with independent implementations. Once it was complete, and the tests all passed, I removed the “ReaderNG” framework and marked the “CompactXML” framework as deprecated.
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.