NSIS installer for Windows

I tried building an installer for use on Windows using NSIS. Here’s the

nomic.net/~uckelman/tmp/vass … indows.exe

I’m pretty happy with this. It looks like a normal Windows installer, it’s
executable, it gives you an entry for the version of VASSAL you installed
in “Add/Remove Programs”, and I can build in on Linux.

The remaining things to do are

  1. Put icons on the user’s desktop (if desired), and
  2. Put a folder for VASSAL on the Start menu (if desired).

These are simple to do with NSIS, so I’ll do them soonish.

Looks nice and most people would be more comfortable with that kind of installation routine.


Here’s a slightly improved version:

nomic.net/~uckelman/tmp/vass … indows.exe

This now adds Start Menu items and desktop shortcuts.

Very nice. Clean up/uninstall is flawless - better than some pro programs :slight_smile:

Post generated using Mail2Forum (mail2forum.com)


Now we can get rid of Webstart yeah? Right? :smiley:

Assuming these installers kick ass, then I’m fine with getting rid of WebStart. However, I’d like to keep around a WebStart-enabled demo that runs through the tour. I really like the idea that newcomers browsing the site for the first time can get a demo with one click.


Post generated using Mail2Forum (mail2forum.com)

Thus spake “bsmith”:

Well, that’s up to Rodney, I guess. There’s one thing still
missing without Web Start, which is checking for newer versions
of VASSAL. That wouldn’t be hard to code, but it isn’t coded


Messages mailing list
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Here’s a current snapshot of the Windows installer:

nomic.net/~uckelman/tmp/vass … indows.exe

There are two install types:

Standard (“I fear my computer, I just want to play games”)


Custom (“I am 1337, show me all the knobs I can turn”)

If you choose Standard, the only choice you have left to make is whether
to start VASSAL immediately on the last page of the installer.

If you choose Custom, you get to specify the install directory, whether
you want desktop and quick launch icons, and if/where in your start menu
VASSAL should go.

Right now, the installer doesn’t handle two things which it should:

  1. Uninstalling previous versions of VASSAL.

  2. Checking that the user has a sufficiently recent JRE, and installing
    one if necessary.


  1. It would be nice to have some artwork to use for the left pane on the
    start and finish pages, as well as a good icon for the top banner. We need
    a good icon anyway for the shortcuts… I keep thinking that I might
    commission one from a friend who’s a graphic artist.

Comments are welcome. In particular, I’d like to have opinions on how we
should handle installing a JRE. It’s not too hard to check whether an
appropriate one exists. If so, then there’s nothing for the installer
to do and it can skip that step. On the other hand, if you need a (newer)
JRE, then clearly the Custom install should tell you that, but let you
uncheck a box for it if you don’t want it to be done automatically. (Not
having a suitable JRE won’t prevent VASSAL from installing, it will just
prevent it from running afterwards. It’s also possible that the check for
the JRE failed even though there is really a suitable JRE around, and the
user knows this, so in that case we don’t want to force a JRE on him.)

What I’m not certain about is how the Standard install should handle it.
If we take the approach that the Standard install should require as
little user input as possible, then the least we can get away with is a
page telling the user that a JRE will be downloaded, the installer for it
will come up, and that he should choose the defaults. (I don’t think it’s
possible to install a JRE without any user input…) That gives the user
a chance to cancel out if he really doesn’t want a new JRE, and gives him
an easy path through the installation otherwise.

I seem to recall someone had offered to do artwork or there was a new
icon or something. And then we never heard about it again. What
happened to that?

  • M.

Messages mailing list
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

The 3.0 splash screen was contributed by a fellow from France named Gregory. He did in fact send me some icon artwork a while ago. Let me hook him up with Joel and see if he can provide what we need.


Post generated using Mail2Forum (mail2forum.com)

I’ve just see you email and i’m ready to help …

I’ve done this few month ago :

lotrtmg.30.forumer.com/index.php … ost&id=284

I’m currently using it for the new born Vassal France community :

lotrtmg.30.forumer.com/index.php … ost&id=638

I also have a relooking package sent for the toolbar menu icons …


Grégory aka Soft-bug

I join you here my last relooking icons package …

Grégory, excellent graphics.

Separate question: have you looked at the French translations? They’re
in rough shape and they need work. And they’re incomplete.
Interested? I can help, too, if you like.

  • M.

Messages mailing list
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Very interested …

Need to know who, where … and how

Updated Windows installer:

nomic.net/~uckelman/tmp/vass … indows.exe

This version of the installer checks what version of the JRE the user has,
and installs one if necessary:

For a Standard install, if a pre-1.5.0 JRE is found then an installer for
a current JRE is automatically downloaded and run in a mode which requires
no user interaction. (No JRE found is considered to be version 0.0, which
is clearly less than 1.5. This is checked for and slightly different text
is shown in this case.) The JRE is installed with the extra fonts and the
extra language packs, the former becuase they’re nice fonts which we can
then count on people having for use in SVG and CounterImages, and the
latter becuase we have no way of telling what language the user really

For a Custom install, if a pre-1.5.0 JRE (or no JRE) is found, then the
user is prompted as to whether the installer should also install a JRE.
The user is free to decline, and this won’t disrupt the install since
installation doesn’t depend on having a working JRE. However, in that
case the user is responsible for getting a JRE to use.

Grégory, if you like, I’ll do the translations and you can check them.
Send me a private e-mail and we can do this outside the forum.


  • M.

On 23/02/2008, soft-bug messages@forums.vassalengine.org wrote:

Messages mailing list
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Strange my package is no longer attached to my previous post ? can someone tell me why ?

Here’s a version of the installer which I think is done, feature-wise:

nomic.net/~uckelman/tmp/vass … indows.exe


A Standard install requires no user input, will remove old versions of
VASSAL, and will install Java for you if your JRE is absent or too old.

A Custom install lets you configure everything, including which old
versions of VASSAL (if any) you want removed.


There are a few cases in which you’ll have odd results, viz.:

(a) if you start the installer when the installer is already running
(b) if you try to uninstall a running copy of VASSAL
(c) if you have some file open in a directory the uninstaller is trying
to remove

These are things which you really shouldn’t do anyway. I can do something
about (c)—I guess I just need to add the /REBOOTOK flag to all of the
Delete and RMDir calls that the uninstaller makes. (a) and (b) require a
bit more coding, which I’m not sure is worth undertaking considering how
fringe these cases are (and how grueling working on this was…).

That looks really good Joel, thanks.

The only thing I would take out is the Version numbering on the shortcuts. Unless a Custom installation has been done, version numbers should not be visible to users.

Thus spake “bsmith”:

How about if the Standard install omits the version number, but the
Custom install uses it for shortcuts? If you’re doing a Custom install,
there’s a good chance you’re doing it in order to have multiple versions,
and so you don’t want the shortcuts for other versions to be clobbered.


Messages mailing list
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)