Posted on

New pre-release: v0.2.0-alpha.0

Get a first peek at what's up and coming

As already discussed, quartersbrief v0.2 will bring armor topics as well as powerful improvements to agendas. But that’s not all.

Sleek new user interface

While the core of quartersbrief’s look-and-feel hasn’t changed - it’s still all about delivering a maximum amount of information in as condensed a form as possible - the user interface has been overhauled to look much nicer. The background is now an atmospheric, naval-themed image. Previously, the large amounts of white space were sometimes experienced as being uncomfortably bright. Now, the background of briefings is slightly transparent, dimming them slightly.

Update logic improved under the hood

The way quartersbrief detects and handles updates to the game’s data has been completely rewritten. The new updater is faster and more powerful than the v0.1 updater. In addition, it now handles decoding of data natively instead of relying on an external script, which means you no longer need Python to use quartersbrief. Invariant checking (the logic by which quartersbrief asserts that central assumptions made from reverse engineering the game files are, indeed, correct) has been incorporated into the update logic and will now be run as a final integrity check after each update, instead of each time you start quartersbrief.

Incrementally delivered briefings

Briefings are now delivered topic by topic as each becomes available, instead of as a monolithic whole when everything is ready. This allows fast-loading topics to already be available for you to look at, even while slower ones are still being worked on. Previously, briefings were always delivered as a whole, and so could be held up by whichever topic was the slowest to create. (Frequently, this was the Winrate topic, being reliant on network traffic with the Wargaming servers.)

Processing of ships’ armor

This is probably the biggest new feature: Quartersbrief is now able to display the armor models of ships in the game.

This brings great new powers to the app, allowing it to assist you in all matters of armor penetration. As a direct result, three new topics have already been added:

As a side note, processing ships’ armor is a computationally very heavy operation, and you will notice that frequently the armor-related topics will be among the last to be delivered. To address this, armor processing is implemented in such a way that it uses all of your computer’s CPU cores, and employs some fairly intricate caching strategies to avoid having to recompute armor models whenever possible. Be aware though that at first, building armor-related topics might take a long time. As more and more ships are added to the cache, this will become faster.

Centrally administered agendas

One thing that wasn’t solved terribly well in v0.1 was the way that agendas were handled. (In case you had forgotten: agendas are the mechanism that controls what your briefing looks like, depending on the ship you are sailing in.) Agendas were essentially placed entirely in the user’s responsibility, with only a default set being generated on the very first launch. The idea here was that you as the user should be able to customize your briefings to your needs. However, an unwelcome side effect of this was that newly introduced topics were not available to you unless you manually altered your agendas, and agenda definitions were somewhat bulky and hard to use. This was one of the main things I wanted to change.

Therefore, with v0.2, agendas now come from two different sources. One is still in your responsibility, so you still have the ability to custom-tailor your briefings to exactly the way you want them. The other, however, is centrally administered by the installer. Thus, in the future, the way briefings are generated - including what topics to show - may change as I refine the centrally administered agendas. The advantage of this is that new topics will be used automatically, without you needing to do anything.

If you still want to create your own agendas, you can place them in a directory named Quartersbrief in your user profile directory, and they will automatically be used. In addition to TOML format (as in v0.1), agendas can now also be in JSON or YAML format - whichever you prefer. Note that a user agenda matching a battle will always take precedence over any default agenda.

Extensible agendas

In addition, there is now a mechanism that allows an agenda to extend from another. This new feature works nicely with the change introduced above - centrally administered agendas, as it lets you change the way a (default) agenda works without having to rewrite (and mostly just repeat) the entire thing. Instead, you need to only state what agenda you want to inherit from, and what exactly you want to change.

Of course, agenda extension is not limited to the default agendas - your agendas can also extend from each other. So you might have an agenda controlling what to show for destroyers, then extend that in a new agenda controlling what to show in German destroyers, for example.

More powerful agenda matching

Previously, agendas were matched to your battle based on ship class, tier, nationality and name. Each agenda could define only one set of conditions - if you wanted the same briefing to be shown for two different sets of conditions, you had to create a second agenda that was identical except for its match conditions.

In v0.2, agendas can define more than one set of conditions (called matchers), leading to a lot less repetition. An agenda will be considered eligible for a battle if at least one of those sets of conditions matches the battle.

In addition, matchers have learned a new type of condition: has. The has clause adds the ability to match based on just about any property of the ship. This is an extremely powerful tool: Using has, you can, for instance, express that an agenda should match any ship that has the smoke generator consumable, or that has guns of a caliber of at least 150mm. You can even combine the two. Previously, this could only be expressed by listing all ships explicitly.

Other, minor improvements

A note on backward compatibility

This version is mostly backwards compatible, except:

It is recommended that you completely uninstall quartersbrief v0.1 before installing this alpha.

For a full changelog please refer to the release page. You can download it from the downloads page or find out more on the release page.