Tag: development

Assistive Programs Maintenance Release (0.4.9019.1)

In the year and several months since the last release of the assistive programs, which coincided with the official acknowledgement of the end of the 2009-2022 campaign, most of the thought that has gone into Strategic Primer has been devoted to considerations of the changes to the game design and mechanics for the next campaign. Recently, however, I did some maintenance of the code of the assistive programs, and made a new release.

The only really notable change is that all dependencies were updated, including one that had an announced security vulnerability—though not one that could only affect these applications with the user’s active and deliberate involvement (if then). The minimum Java version required to run the code has also been bumped to 21 (the latest “LTS” release).

There will most likely be another long wait for a next release, which will probably be version 0.5.0 and be completely incompatible with existing map files—in preparation for the next campaign, whenever I’m ready for it.

Assistive Programs Release (0.4.9019)

In the more than a year (eep!) since the last “release candidate”, a very great deal of development has gone on in the suite of assistive programs for players and Judges of Strategic Primer. There are a number of new features, mostly having to do with automating details of running a turn, but the biggest change is the port back to Java. Because of a change in development direction I’ve given the new release the number 0.4.9019 even though the amount of change from the last “release candidate” is immense; more about all of that below. Continue reading “Assistive Programs Release (0.4.9019)”

Assistive Programs Release Candidate & Development Report (0.4.9018-rc3)

Over the past more than six months since the last release candidate of the suite of assistive programs for players and Judges of Strategic Primer, I’ve done quite a bit of development intermittently; at first I held off on making a new release candidate because what I was working on was still very much “in progress”, and then the Continuous Integration system that builds the release for me wasn’t working. I’ve now switched over to a new CI provider and gotten the build there working, and I’ve gotten the biggest new features into what I think is a basically-presentable state, so it’s past time for a new release candidate. There was also one minor fix for an issue that was also present in 0.4.9018, so I’ve made a new “stable” point release. You can download the new release candidate or the new “stable” point release from GitHub as usual, or read a summary of these changes below. Continue reading “Assistive Programs Release Candidate & Development Report (0.4.9018-rc3)”

Assistive Programs Release Candidate & Development Report (0.4.9018-rc2)

After last month’s release of the first release candidate in a new series, a user reported several issues and feature requests. I’ve done my best to address at least most of the most pressing ones, as well as some of my pain points, in the intervening weeks, and have now tagged a new release candidate and stable-series point release. You can download the new release candidate or the “stable” point release from GitHub as usual, or read a summary of these changes below. Continue reading “Assistive Programs Release Candidate & Development Report (0.4.9018-rc2)”

Assistive Programs Release Candidate & Development Report (0.4.9018-rc1)

In the months since the last release of the suite of assistive programs for players and Judges of Strategic Primer, I’ve added some new features and (especially this past weekend) fixed a number of bugs. In the interest of getting this code into players’ hands, I’ve now released a new release candidate for 0.4.9019 and a point release in the 0.4.9018 “stable” series. You can download the new release candidate or the “stable” point release from GitHub as usual, or read a summary of these changes below. Continue reading “Assistive Programs Release Candidate & Development Report (0.4.9018-rc1)”

Assistive Programs Release & Development Report (0.4.9018)

In the weeks since the last release of the suite of assistive programs for players and Judges of Strategic Primer, I’ve added a fair number of features to the turn-running app and made a few other changes, but things have solidified enough that I’m reasonably comfortable making this “the release” rather than another pre-release. You can download the new version 0.4.9018, or the final 0.4.9017 point release, from GitHub as usual, or read a summary of the changes in this release below.

Bug Fixes

There are three changes in 0.4.9017.4, which are of course also included in 0.4.9018 as well:

  • First, a “security” fix. The map-reading code (if I implemented this fix properly) now no longer supports “external entities” in the XML in map files; this could have been exploited, with effects I’m not clear on, if an attacker convinced you to open a specially-crafted malicious XML file with one of the apps in this suite.
  • Second, in report generators, in an internal class, a method to “clone” itself created an instance with empty state instead of its current state. I don’t think that method is ever actually called, but if it is, that would have caused a report generator to give incorrect results.
  • Finally, the sample map included with the apps triggered some warnings in the map-reading code; it has been fixed to no longer trigger those warnings.

There’s a couple of other fixes in 0.4.9018 for bugs that were introduced in 0.4.9018 release candidates:

  • In the worker management app, “kind” nodes are now properly highlighted when a unit with that “kind” is highlighted.
  • Also in the worker management app, the new feature to sort unit members now works when operating on more than one map at once.

Performance Fixes

Version 0.4.9018 includes some changes to reduce the size of any of the files you have to download to get the release or to improve the performance of apps in the release:

  • A number of unused icons were removed.
  • The main app icon, which is the single largest file in the source and the single largest file other than one third-party library once the code has been built, was cropped slightly.
  • I improved a data structure used by the report generator and tabular report generator, so the tabular report generator now runs something like an order of magnitude faster when run on the whole main-world map.

New and Improved Features

All of the new features since the last release candidate, except one, are in the turn-running command-line app.

The one feature outside the turn-running app is in the worker-management app, which now optionally (this is controlled by a command-line option) allows editing as well as viewing of results.

The turn-running app gained a few new applets to ease the development of results for a turn:

  • A woodcutting applet
  • A food-preservation applet
  • Basic farming and mining applets (which don’t do any calculations or anything, but allow the addition directly to the map of whatever resources are created in those results)
  • A utility applet to allow running multiple applets on the same unit (because any individual applet will overwrite any previous results)

And several existing applets were improved:

  • The exploration (i.e. unit-movement) applet now asks if a unit should take provisions, and if so what and how much, when the unit leaves a fortress. I intend for the food-consumption applet to eventually only support consuming food in the same place as the workers.
  • The herding applet now skips animals that are not domesticated or tame, and allows the user to choose to skip some (previously trying to skip one would abort the applet)
  • The herding applet now also allows the calculation to account for more labor than just the workers in the unit in question.
  • The hunting and trapping applets now support capturing animals, adding captured animals to a unit of the player’s choice.

Major Features from Release Candidates

Here’s some highlights of the most important new features and other changes since 0.4.9017:

  • The way apps in the suite are invoked on the command line has completely changed. Formerly, you used options to indicate which app(s) you wanted, possibly more than one in a single session, interspersed with filenames, non-invocation options, and other arguments. Now, you must specify a single “subcommand” as the first non-option argument.
  • “Immortal animals” are now represented as immortals, even if they were represented as animals in the XML file, and are always written out with their own unique XML tags.
  • Support for reading version-1 maps has been removed.
  • There is now a turn-running command-line app, and most results-generation features of the “query” app have been moved there instead.
  • The “report tree” feature of the worker-management app has been removed.
  • Tiles can be bookmarked in the map viewer
  • The worker-management app gained worker notes and unit member sorting features
  • The map format and map viewer now support roads
  • All command-line apps now support “quit” at any yes-or-no question.
  • The way rivers are drawn in the map viewer is significantly improved; however, the way they are drawn in the list of fixtures is currently broken.

Roadmap

On my roadmap (the Pivotal Tracker project is sadly out of date, but between that and the GitHub issues page you can get some sense of what I’d like to work on):

  • Making a turn-running GUI (the new CLI has been a great help, but using it is tedious in ways that a GUI can significantly speed up)
  • Reworking unit organization, so equipment can be associated with individual workers and units can be “grouped” together
  • Adding some way to record players’ “standing orders” and the like in their map files.

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.

Assistive Programs Release & Development Report (0.4.9018-rc3)

In the few weeks since the last release of the suite of assistive programs for players and Judges of Strategic Primer, I’ve added a few major new features as well as fixing one notable bug, so despite my hope to be able to make this “0.4.9018 final” I think a new release candidate is the more prudent choice. You can download the new 0.4.9018 release candidate or the 0.4.9017 point release on GitHub as usual, or read a summary of the changes since 0.4.9018-rc2 below. Continue reading “Assistive Programs Release & Development Report (0.4.9018-rc3)”

Assistive Programs Release & Development Report (0.4.9018-rc2)

It’s now been well over a year since the last release of the suite of assistive programs for players and Judges in campaigns of Strategic Primer; development went into hibernation, as it were, for most of that time, but some recent additions and older improvements warrant a new release, and there’s been enough changes since the 0.4.9018-rc1 that I felt a release candidate was more appropriate than an official release. I’ve also made a new point 0.4.9017 point release, including a couple of fairly-minor bug fixes (and nearly a dozen fixes to problems in the build system that crept in over the last year). You can download the new 0.4.9018 release candidate or the 0.4.9017 point release on GitHub as usual, or read a summary of the changes since 0.4.9018-rc1 below. Continue reading “Assistive Programs Release & Development Report (0.4.9018-rc2)”

The Middle Period of Strategic Primer Development

After the first campaign of Strategic Primer, I tried to run another campaign the following year. By 2003 I had gotten expressions of interest from several people, and had received and run a few first-turn strategies, but the campaign went no further (which is why I call the current campaign “the second campaign,” not “the third campaign.”) There are several reasons I see for that failure, which I’ll briefly describe below, but from the end of the first campaign until the beginning of the present campaign the design of Strategic Primer underwent a series of significant changes, which I will then explain at greater length. Continue reading “The Middle Period of Strategic Primer Development”