Tool to make NATO App6 prototypes and building a module using Python

Hi all,

Spurred by a recent thread and a somewhat older thread, I decided to do a bit of developments.

Essentially

  • I’ve made a Python script that generates XML Prototype snippets and associated images that one can import into a VASSAL module. These snippets defines Prototypes to make NATO App6 symbology to add to pieces. You can find pre-build snippets and images here (PNG and SVG).

    armoured infantry surface combatant missile cruise

    This uses my LaTeX package wargame to make the graphics. That package has a fairly complete set of the NATO App6 symbology.

    Please refer here for more on how to use this.

  • I’ve made an example of building a complete VASSAL module using Python and my module pywargame. Details can be found here and the module Test.vmod can be downloaded.


    This also uses the LaTeX package wargame to make the graphics but can serve as an inspiration even if you use something different to make the graphics (all I make for this example is the board and some nation specific background images).

    However, the main point is to use the pywargame API to build a module directly in Python. By doing so, I think it is fairly easy to define more complex behaviour of the VASSAL module.

    In this example, I use the snippets from the first part above.

I use similar approaches to all the VASSAL modules I’ve made.

Please refer to this GitLab page for more.

Hope someone will find this useful.

Yours,
Christian

1 Like

Vassal already has most of this functionality. A bit of finesse can create most NATA App6 symbols. I like your initiative, but reinventing a wheel seems somewhat pointless.

Hi,

I think you didn’t really read the post. Perhaps you want to go back and take another look as it seems you missed half of the points.

Not really - take another look at it. VASSAL, for example, does not make reusable prototypes when you use the internal piece builder. VASSAL’s piece builder is essentially a graphics-only editor and does not adorn the pieces with more information that the module can work with. My approach does. When you have created an image from a “piece layout” - your cannot modify it at run-time - my approach actually allows you to do so.

Not all of them, and I think there’s only land symbols - not air, activity, installation, missile, sea surface, sub surface, and so on. Some of the symbols in VASSAL are not even NATO App6 symbols - for example, the commando symbol doesn’t exist in NATO App6 - instead, one writes “SF” in the frame, possibly as a modifier to another symbol.

With my approach you can make almost any possibly NATO App6 symbol you want - and not just land-based.

It is certainly not the same thing as what you can do in VASSAL - and what’s more, is you can reuse the things across multiple modules with ease - yes you can take stuff from one module to another if you know what you are doing - but it’s not the same thing.

And I guess you didn’t read the stuff about the Python API - VASSAL does not provide an simple API for building or manipulating modules. Yes, you can use the Vengine.jar API from Java to do the stuff, but it is far less straight forward than using the Python API.

The Python API simply works on the XML and knows how to decode and encode the pesky trait data - that’s basically it. The Python code is a relatively thin wrapper over that, but nonetheless can do quite a bit. It is therefore also quite easy to maintain.

So no, this is not “reinventing a wheel” but rather to put an electric motor on bicycle :smile:

Yours,
Christian

1 Like

Go for it. I’m not interested. But I’m sure there are those that are. Accolades for your input.