How does Vassal work?

I used vassal for the first time a few minutes ago and I must say it is VERY confusing. I managed to load the manoeuvre module, create a room to play in, another player entered the room, create a map, place some units on the map and then nothing more.

So, how do you use vassal?
I was hoping to find an easier interface to build the map, I had large overlaping windows that I had to ALT+TAB between. But finaly I managed to sort it out. Then I wished the game would tell me: choose a country, and then tell me to place the 8 units (I could place 20 units of any country) and give me 5 cards… but… well, I tried to drag cards from my deck to my hand but it failed miserably.

And the game engine will handle all die rolls, flipping, removing of eliminated units automatically, right?

Any comments on these first-time-user-experiences? It can’t possibly be this confusing to play, can it?

Hi Gunnar,

I have no easy answer for you, especiaqlly as you neglect to name which module you are trying to use.

Each Vassal is an individual Work of Art that an unpaid volunteer has spent countless hours building for your enjoyment.

Some modules are easier to use than others. Some modules have extensive ‘how to use’ information in the help menu, others don’t. Some modules automate certain tasks within the game, some don’t.

There are several things you can do:

  • Become involved in the community that uses the module you are interested in. They are the people who can help you with your questions. Get online and find someone who can show you the ropes.

  • Contact the module designer directly and discuss suggesitons for improvements.

  • Volunteer your services to write improved documentation for the module you are interested in.


*********** REPLY SEPARATOR ***********

On 26/05/2008 at 1:04 PM Gunnar wrote:

Messages mailing list …

Post generated using Mail2Forum (

Oh. I forgot that, it was manoeuvre. But I got help from “Barry” last night and it helped me get started.

It was no automation, I was under the impression that the engine did stuff automatically. That was also a little confusing until last night.

Thus spake “Gunnar”:

Did you read the instructions provided by the module desinger? There’s
a button in the upper-left which says “Using the Module” on it which
you should click.


Messages mailing list …

Post generated using Mail2Forum (

“how does VASSAL work?”

heh, a very good question!

as Gunnar has discovered, it’s a big help to work w/ a buddy/oppo when trying a module for the 1st (or 2nd or 3rd) time.

as to how the program works, i’m all at sea - even tho’ I’m fairly fluent at working in the VASL modfile (creating/editing its gamepieces & prototypes), I just haven’t got a clue as to how the thing works, at all! I’ve d/l’d & (partially) read a few bits of the sourcecode files, but have got no idea as to how they’re put together hierarchically - almost of all of my knowledge about ‘how it works’ its based on empirical observation of ‘how it behaves’.

That said, could someone give me a pointer(s) (or mebbe a publication) about how to examine the code? I’d like to learn more about it, but don’t have a lot of programming chops (tentative efforts in VBA for Excel & MicroStation are the best I’ve been able to accomplish). I think I could contribute more to VASL/VASSAL if I had a better idea of how the code is put together.

Thus spake “jmalter”:

I can give you a brief overview of how the code is laid out:

The package contains classes which correspond to the
elements you see in the build tree in the Editor. If you have a class
named, then it’s a good bet that the classes in
the package are for build elements which are
children of Foo. GameModule is the root of the build tree.

Almost everything to do with game pieces is in VASSAL.counters.

VASSAL.launch contains classes which are used when VASSAL is started.

VASSAL.i18n contains classes used for internationalization.

Utility classes and things which don’t fit elsewhere are in

Does that help?

If you describe in particular what you want to do, I could direct you the
relevant parts of the codebase and explain them in detail.

VASSAL is modularized in such a way that it isn’t usually necessary to
understand the totality of the code in order to modify VASSAL, because
most modifications are local. (If that weren’t so, we’d be unable to work
on it at all—it’s been some time now since any single person was familiar
with all of the code.)


Messages mailing list …

Post generated using Mail2Forum (

hi Joel, it helps a bit, I guess that the VASSAL 'tree' is analagous to the module's tree that I see in the VASSAL editor.

But what software are you using to browse/edit VASSAL? Is it a ‘Java SDK’? & what’s the VASSAL file are you opening w/ it? I can see the structure of Vengine.jar by opening it in WinZip, but I don’t have anything w/ which I can read its .class files.

Thus spake “jmalter”:


The Java Software Development Kit (JDK) consists of the Java compiler and
a few other utilities, plus the Java Runtime Environment (JRE). You don’t
use the JDK to view the source code. The JDK is for compiling the source

I don’t have anything which is useful for reading .class files either.
The .class files are compiled—you won’t learn much by looking at them.
What you need is the source code.

You can get the source either directly from the SVN repository at
Sourceforge, or by downloading the most recent source archive: …

Once you have the source, you can look at it with your favorite text
editor (e.g., Vim, emacs) or in your favorite IDE (e.g., Eclipse,

Have you done much Java programming before?


Messages mailing list …

Post generated using Mail2Forum (

well, I ain’t never done any Java programming!

that I’ve done quite a bit of bug-reporting for rk, and a bit for Brent - but that’s just a matter of accurate reporting of observed, reproducible events. Sometimes I’d add my suspicions or speculations about what was going on, but it’s important to keep that kinda thing separate from the reporting!

so while i don’t really plan on doing any actual programming, i thought it’d be an immense help to my understanding if I could take a look at VASSAL/VASL code in ‘tree’ format.

I use the UltraEdit txteditor, which is fine for reading the uncompiled classfiles one-at-a-time, but that’s a long way from looking at the whole thing in an ‘overall’ view.

Thus spake “jmalter”:

If all you want to do is browse, you could do that via the web interface
to the repository, here: … salengine/

Current code is under VASSAL-src/trunk.


Messages mailing list …

Post generated using Mail2Forum (

Since you offered…hehe :slight_smile:

I was giving this request a go

Thought it would be fairly basic - changed to recognize file types ‘.mp3’ - so far so good, but doing that alone is not enough.

DataArchive uses java.applet.Audioclip to play the sound, and loading up an mp3 sound and have it play does not work, so I guess that tells me java.applet.Audioclip does not support mp3’s

So my question is would replacing java.applet.Audioclip with this
javazoom.jl.player.Player; be the solution?

my refs: and

I havent even delved into related vassal sound java files and see if anything needs changing there

Thus spake “Tim M”:

Definitely you’re be replacing AudioClip with something else. Is JLayer
still being developed? It had it’s last release in 2004, so far as I can

I expect that the changes would occur in maybe one or two other files.
The real challenge here is figuring out what sound library to use.


Messages mailing list …

Post generated using Mail2Forum (