Complete newbie taking on Warmaster

Hi there,

I’m interested in making a Vassal mod to play the old GW game of Warmaster.
I have never made a mod before, and know next to nothing about programming or basic sprite building. I apologise beforehand for my newbie questions and probable requests to explain things more simply :confused:

I’ve looked through the Vassal 40k mod, and have taken a lot of clues from it, but there are also features I’d like to replicate that I don’t know how.

I’ll start with the problem that first brought me to this forum- the Group Rotator command. This was developed for a Warhammer mod, and has come up a few times here (eg. http://www.vassalengine.org/forum/viewtopic.php?f=5&t=2050&p=13481&hilit=group+rotator#p13481)
Can anyone tell me how to actually add these files to Vassal to get it to run? Do I just copy the folders/files from the Warhammer mod and, if so, where do I put them?
Does anyone know if the version last made by Ghoust (in 2008) will still work in current Vassal and, if not, does anyone know what needs to be done to fix it?

The second and very newbie question- How do I make maps and sprites of the correct scale? Is it all just pixel counting, and playing with the cell size and pixel-based measuring features in Vassal?
Are there any free programs people would suggest for sprite making?

Last for now- the Vassal 40k mod has map windows in which players can build their armies. The map windows are only accessible to the relevant player. I can’t find how this was done- any ideas?

Thanks for any help!

I hope no one minds a double post

I’ve figured out the basics of scale, so that’s quite easy and is working well. It does raise another question though- how big is maximum sized map (by pixels) that Vassal can handle?
Warmaster is quite a small scale game- each troops is 10mm tall, but it’s played on boards of ~120x180cm with a lot of stands of troops. I’ve gone with a scale of 15 pixels per cm (so the map is 1800x2700 pixels). Is that likely to be too much?

I’ve downloaded a Java programming package and am getting to grips with the code used in Vassal 40k’s Java extension. There’s a lot of good ideas that I can use as a guide. One newbie thing I haven’t seen covered though is- how do I return the modified file contents back to just a single file? Is that single file just a regular .zip file? (it has no listed file type usually)

Thus spake Geep:

I hope no one minds a double post

I’ve figured out the basics of scale, so that’s quite easy and is
working well. It does raise another question though- how big is maximum
sized map (by pixels) that Vassal can handle?
Warmaster is quite a small scale game- each troops is 10mm tall, but
it’s played on boards of ~120x180cm with a lot of stands of troops. I’ve
gone with a scale of 15 pixels per cm (so the map is 1800x2700 pixels).
Is that likely to be too much?

1800x2700 is a small map image. You can find modules which have maps
which are 6000x10000. Yours should be no problem.

I’ve downloaded a Java programming package and am getting to grips with
the code used in Vassal 40k’s Java extension. There’s a lot of good
ideas that I can use as a guide. One newbie thing I haven’t seen covered
though is- how do I return the modified file contents back to just a
single file? Is that single file just a regular .zip file? (it has no
listed file type usually)

Modules are ZIP archives with a particular internal structure. You can
put compiled class files into them with a ZIP archiver if you want.


J.

Thus spake Geep:

I’ll start with the problem that first brought me to this forum- the
Group Rotator command. This was developed for a Warhammer mod, and has
come up a few times here (eg.
https://forum.vassalengine.org/t/execution-exception-when-attempting-grouprotate/1958/5)
Can anyone tell me how to actually add these files to Vassal to get it
to run? Do I just copy the folders/files from the Warhammer mod and, if
so, where do I put them?

Compiled class hierarchies go in the classes directory inside a module.

Does anyone know if the version last made by Ghoust (in 2008) will still
work in current Vassal and, if not, does anyone know what needs to be
done to fix it?

The second and very newbie question- How do I make maps and sprites of
the correct scale? Is it all just pixel counting, and playing with the
cell size and pixel-based measuring features in Vassal?

Yes.

Are there any free programs people would suggest for sprite making?

Use GIMP for bitmaps, Inkscape for vector images.

Last for now- the Vassal 40k mod has map windows in which players can
build their armies. The map windows are only accessible to the relevant
player. I can’t find how this was done- any ideas?

These are Private Maps.


J.

Thanks for the help!

Things are going pretty well so far. I have a few minor issues, but I’ll try and tackle them myself first.

Sorry to double post so quickly- I can’t see an edit button?

Right now I’m trying to get the mouse-over view to display just a small section of the selected token. It’s a common feature I’ve seen in a lot of Vassal games, but I can’t work out how it’s done.
Most of my game pieces are 30x60px, with layers that can be turned on and off reaching out 300px in all directions. I’d like the mouse-over to just show the 30x60 size image regardless of whether the extra layer is on or off.
I’ve looked at the mouse-over stack options, and the stacking options within a map, as well as game piece definitions. I can’t see anything that looks relevant. My main map has stacking disabled, as seems common for this type of game (v40k, vX-wing game), but I know what I’m trying to achieve is possible regardless of this.

Thus spake Geep:

Sorry to double post so quickly- I can’t see an edit button?

Right now I’m trying to get the mouse-over view to display just a small
section of the selected token. It’s a common feature I’ve seen in a lot
of Vassal games, but I can’t work out how it’s done.
Most of my game pieces are 30x60px, with layers that can be turned on
and off reaching out 300px in all directions. I’d like the mouse-over to
just show the 30x60 size image regardless of whether the extra layer is
on or off.
I’ve looked at the mouse-over stack options, and the stacking options
within a map, as well as game piece definitions. I can’t see anything
that looks relevant. My main map has stacking disabled, as seems common
for this type of game (v40k, vX-wing game), but I know what I’m trying
to achieve is possible regardless of this.

The stack viewer doesn’t crop, so far as I know.


J.

There’s definitely some way to crop the mouse-over view- though maybe it’s through something other than the stack viewer? I’ll try and contact the 40k mod builders for that one.

Sorry to be clueless, but can you provide more detailed guidance on how to do this?

The relevant bits I need for the group rotator are in folders that the creator has made:
src\com\fightingchaos\VASSAL\build\module
and
src\com\fightingchaos\VASSAL\counters

Files in the respective folders above are are EmpiresCommandEncoder and GroupingMap
and
Group, GroupCommand, GroupRotator, GroupStackMetrics and UngroupCommand

I’ve used Netbeans to change all references to the original module (FightingChaos) to my own module title, but kept the file names and file structure (I think- I’m unexperienced with Netbeans). I assume this is required for it to run in my module?
I also see that I can export it as a zip file, which is probably the best way?

Opening my module I can see an images folder and a buildFile and moduledata files.

Any chance of more simple instructions on what to take from the Group Rotator files, and how to put it into my own creation?

(I feel I should mention the creator of the Group Rotator states that others are free to use his code- I’d feel bad blatantly stealing it otherwise!)

Thanks for helping!

Thus spake Geep:

There’s definitely some way to crop the mouse-over view- though maybe
it’s through something other than the stack viewer? I’ll try and contact
the 40k mod builders for that one.

I see no options for that on the Mouse-Over Stack Viewer itself.

Compiled class hierarchies go in the classes directory inside a
module.

Sorry to be clueless, but can you provide more detailed guidance on how
to do this?

The relevant bits I need for the group rotator are in folders that the
creator has made:
src\com\fightingchaos\VASSAL\build\module
and
src\com\fightingchaos\VASSAL\counters

Files in the respective folders above are are EmpiresCommandEncoder and
GroupingMap
and
Group, GroupCommand, GroupRotator, GroupStackMetrics and UngroupCommand

I’ve used Netbeans to change all references to the original module
(FightingChaos) to my own module title, but kept the file names and file
structure (I think- I’m unexperienced with Netbeans). I assume this is
required for it to run in my module?

By renaming the classes without modifying the directory structure that
the classes live in to reflect the name changes, you’ve broken the
method Java uses to find class files.

If you’re using these classes otherwise unmodified, don’t rename them.

If you have a class named foo.bar.Baz, the compiled class file needs
to be at foo/bar/Baz.class in the classes directory of the module.


J.

I should have been clearer- I’ve replaced the name reference (‘Fighting Chaos’) with my own module’s name (‘Warmaster’), as I thought that was required to get this to run with my module?
I have replaced every reference to ‘Fighting Chaos’ with ‘Warmaster’- including folder titles and within the files, so as far as I know the paths should all work?

Either way, I’m trying it now by treating my own Vmod file as a zip and just adding the untouched source folders. It now looks exactly like the example mod (when opened in Netbeans), but I need to figure out how to change the buildFile to make the changes work (correct?). My current method of attempting that is to edit my original buildFile as a text document, adding in what appears to be relevant code from the buildFile of the example module (in similar places). I seem to have done something wrong though as now the module won’t open. Would turning it into a text file in Notepad (then re-importing it into the zip) have done something, or have I likely stuffed up something internal?

Is there somewhere that gives really, really basic instructions about how to do something like this? I’ve found heaps of tutorials, but I just can’t follow the jargon used (I have no experience with this kind of thing at all). The code already exists (assuming it works), so this should be simple in theory, right?

I’m leaving the above alone for now, but I’ve had a new issue appear:

Is there any way to make the dice roller display both the numbers rolled individually and their total? (eg. Player 1 rolled 3D6= 2, 4, 3 = 9) This seems like it should be a very simple thing, but I can’t work it out.

You can use Symbolic dice for this.

Use this for the Report format:

Die 1 = $result1$, Die 2 = $result2$ Total = $numericalTotal$

Excellent! I’ve got that working, thanks.
Is there any way to have a readout like that which prompts the user for number of dice rolled? Prompting exists in the normal dice button, but not the symbolic one as far as I can see.
Also, is it possible to prompt the user for a number of dice to roll, a target number, then provide a total of die which rolled equal to or above that number?

I’ve had a new oddity occur.

My markers are on rectangular bases, and I want to be able to make them pivot around the corners of those rectangles. I’ve set a series of 4 ‘can pivot’ commands, each with an offset corresponding to a different corner. These commands are assigned to a prototype, which as at the bottom of my traits assigned to each piece (so it appears below ‘can rotate’, and should affect all layers).
When I drag a new piece onto the game board the pivoting is fine- I can select the piece, pick the corner and pivot around it. Then the weird stuff happens- trying to pivot around another corner picks an odd pivot point, and any attempts to move forward/backward etc. act as if the piece hasn’t rotated at all.
I’ve double checked the trait order- the pivot trait should be very last on the list, so I don’t understand why there seems to be a core feature of the piece (the location and facing) which doesn’t change (other than aesthetically).
The only possible issue I can see is that the pivot trait is in a nested list of prototypes (they’re set in prototype LBP, which is part of prototype Infantry, which is part of prototype AA)- in all cases though the prototype its in is bottom of the list, so it should affect everything as far as I understand.

Any ideas?
Thanks

Edit: And while I’m at it- can anyone explain how to use the trait ‘Area of Effect’ with the fixed radius checkbox unselected? Everything I try for this just gives an error. I’m trying to make an oblong area of effect.

Thus spake Geep:

I should have been clearer- I’ve replaced the name reference (‘Fighting
Chaos’) with my own module’s name (‘Warmaster’), as I thought that was
required to get this to run with my module?

No, renaming the classes is neither required nor advisable. E.g., it will
make it harder for you to update the classes you’re using with changes
from the upstream developers.

I have replaced every reference to ‘Fighting Chaos’ with ‘Warmaster’-
including folder titles and within the files, so as far as I know the
paths should all work?

If you didn’t miss anything, yes.

Either way, I’m trying it now by treating my own Vmod file as a zip and
just adding the untouched source folders. It now looks exactly like the
example mod (when opened in Netbeans), but I need to figure out how to
change the buildFile to make the changes work (correct?). My current
method of attempting that is to edit my original buildFile as a text
document, adding in what appears to be relevant code from the buildFile
of the example module (in similar places). I seem to have done something
wrong though as now the module won’t open. Would turning it into a text
file in Notepad (then re-importing it into the zip) have done something,
or have I likely stuffed up something internal?

Editing the buildFile directly is possible, but not supported, for
exactly the reason you discovered—it’s very easy to mess it up.

Is there somewhere that gives really, really basic instructions about
how to do something like this? I’ve found heaps of tutorials, but I just
can’t follow the jargon used (I have no experience with this kind of
thing at all). The code already exists (assuming it works), so this
should be simple in theory, right?

The simple way to add custom build elements is through “Add Imported
Class”, which is available on a context menu in the build tree in the
Editor.


J.

“Add imported class”? Great, I’ll try experimenting with that, thanks.

Any help with the pivot problem? Is pivot purely aesthetic, or is something odd happening which causes my pieces not to change faces when they pivot?
If pivot is just aesthetic is there any way to get the kind of pivot I want by using rotate, but off-setting the centre of rotation? (other than by adding large transparent pieces to my markers)

I’m now at the stage of having an almost playable mod (although it is very rough), with the pivot issue being the main final hurdle. Thanks for the help, and thanks to whoever wrote the many guides on building modules!

Thus spake Geep:

Any help with the pivot problem? Is pivot purely aesthetic, or is
something odd happening which causes my pieces not to change faces when
they pivot?

We’d need to see your module to comment further.


J.

I had rotate working as I wanted, didn’t touch the module in a few days, and now rotate is also failing to change the unit direction for movement purposes. I’ve got no idea what’s caused it.

What’s the best way for me to send the module to you?

Thus spake Geep:

I had rotate working as I wanted, didn’t touch the module in a few days,
and now rotate is also failing to change the unit direction for movement
purposes. I’ve got no idea what’s caused it.

What’s the best way for me to send the module to you?

Post it here if it’s small enough. Otherwise put it somewhere else we
can download it.


J.

I found the problem with the movement direction- a guide I found said that the rotate options had to come before the movement options in order to change movement direction, but it seems to be the other way around. I must have changed this while trying to get pivot to work.

There’s still the problem of what the piece is rotating around, however. I have it set so that the usual pivot origins are the corners, as I want, but if the piece pivots or rotates these origin points do not change with the piece, leading to all sorts of weird pivoting. Is there a way to fix this?

I’ve added the current version of the module to this post. Currently only the infantry stands are up do date with the options I want, and the set out isn’t exactly pretty.