Remaining tasks before 3.1.0-beta1

Here is a list of what tasks should be completed before we put out
3.1.0-beta1. In addition to a few decisions which need to be made, I’m
listing bugs which do not exist in 3.0.18, because it doesn’t make sense
to me to burden our beta testers with bugs of which we are already aware.

  • The main app window doesn’t have focus after the splash screen
    disappears, on Windows. (I don’t know how to fix this.)

  • Prefs: “use null to view stacks” should be “Use CTRL-Space to view stacks”
    Rodney says: The fact that it’s showing ‘null’ probably means there’s a
    key missing from the i18n properties file.

  • Bad splitter positioning when the Welcome Wizard is enabled.

  • Need to show a dialog to get username/password when VASSAL has none
    and Welcome Wizard is off.

  • The Zoomer needs input validation for its Configurers.

  • Directory structure in installs: Extensions and plugins one one hand,
    and a Mac-specific bundle on the other make it important that we make a
    decision about the locations of installed files.

First, about the Mac bundle: I’ve been having a long-running discussion
here (vassalengine.org/forums/viewtopic.php?t=246) and here
(vassalengine.org/forums/viewtopic.php?t=272) with Thomas and Tim F
about building Mac bundles and making VASSAL look more native on OSX. The
upshot is that the standard way of deploying apps is as a DMG (disk image),
which is just a file containing a HFS+ filesystem. It’s not usual for users
to poke around inside these disk images—they just click on them to run
the app inside. The usual place for additional stuff is under
~/Library/Application Support—which is not in the DMG file. Hold that
thought.

Plugins and extensions need to be stored somewhere.

  1. If plugin/ and ext/ are expected to be under the base install directory,
    then Mac users will never find them, since, as mentioned above, it’s not
    typical to look inside disk images. Secondly, I don’t know whether OS X
    can resize disk images on the fly—when I create them on Linux, they have
    a fixed size, so the might not be any space to add plugins and extensions
    later.

  2. A more general problem is that if extensions or plugins are loaded
    automatically, then it becomes important that they not be in ~/VASSAL/ext
    or ~/VASSAL/plugin, because then it would be impossible to have different
    plugins with different versions of VASSAL.

So, here’s what I’m proposing we do for 3.1:

For the Mac bundle:

The DMG file houses all of the standard JARs and startup scripts.

~/Library/Application Support/VASSAL is the base directory for all VASSAL
stuff not housed in a DMG. Under that, we have a directory for each
installed version of VASSAL, containing plugin/, ext/ and user prefs.

For the Windows installer:

Right now, I’m messing with NSIS, which is a simple installer builder for
Windows programs. We’ll be able to have icons placed on the desktop, a
start menu entry, and a standard uninstaller this way.

Here, I’m proposing that it install VASSAL to
Program Files/VASSAL/VASSAL-x.y.z, which I take it is is the standard
thing to do on Windows, and keep other material in… I’m not sure where,
maybe under ~/Application Data/VASSAL/VASSAL-x.y.z?

For the all-platform zip archive:

The standard zip should have plugin/ and ext/ directories in it, or
should look for them under ~/VASSAL/VASSAL-x.y.z.

I’m not certain on this point yet—but we’re going to have problems if
we don’t sort this out.

Are there any other things which need doing before we put out 3.1.0-beta1?

uckelman wrote:

Hopefully adding illumination rather than confusion, the DMG is actually
just a transport container for getting .app directory structure from
point A to point B (to cover up for the fact that the .app is a
directory structure, the Mac wants to pretend it’s a single file, but
all the systems in-between don’t).

The .app directory is the black-box that’s double-clicked to run, and
that average users don’t poke around inside.

Typical behaviour would be:

Download VASSAL.dmg
Double-click VASSAL.dmg (mounts on the desktop, like inserting a CD)
Drag VASSAL.app to /Applications (or /Applications/Games, or similar)
Close / eject VASSAL.dmg
Delete (or archive, for the hoarders amongst us) VASSAL.dmg
Double-click VASSAL.app to run

Just to make sure there’s no confusion of terminology.

I will take the opportunity, though, to say big thanks for all the
efforts in getting things to work ‘right’ on the Mac - for all I wish
otherwise, I do appreciate we’re still only a very small percentage of
the user base :frowning:

Cheers,
Tim.


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

Post generated using Mail2Forum (mail2forum.com)

Hi Joel,

I will fix this one. There are a couple of problems. The Ctrl-SPACE is actually the Control-key to display the first mouseover viewer in the module. If control key has been cleared in the first mouse-over view, then it displays as null. Also, the preference text has not been i18n’d. I will i18n the preference text and change the message to be ‘use control keys to view stacks’.

I’m not sure that this will be that important. What is your thinking here?

The 99.9% user will only ever run one single version of Vassal and that’s it. Plugins and extensions should generally not break between revisions anyway

I think having to copy and reinstall any plugins for every single point upgrade of Vassal will be painful?

Regards,
Brent.


Brent Easton
Analyst/Programmer
University of Western Sydney
Email: b.easton@uws.edu.au


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

Post generated using Mail2Forum (mail2forum.com)

Thus spake “Brent Easton”:

Great. Thanks.

We’re already in the situation where a lot of people might want to run two
versions—2.9.9 and something from the 3.0 series. You’re also screwed
if you have incompatible extensions… I’d like to head off this problem
before it happens.

It doesn’t have to be. VASSAL should move your extensions along with it
when you install a newer version.


J.


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

Post generated using Mail2Forum (mail2forum.com)

Ok, How about approaching this from another angle.

The new window that now appears when you start Vassal is essentially v1.0 of ‘the new front end’ that we discussed some time back. That big blank window is just aching to have a display of all the modules you have downloaded displayed :slight_smile:

BYW, I would have ‘Edit Module’ on the Tools menu of this front-end menu.

The thing about this frontend is that no module is being either Edited or Played, so no Plugins or Global Extensions have yet been loaded. Global Extensions are only loaded when a module gets played. Plugins will be loaded when a module is either Edited or Played.

We could have a display that shows what Plugins and Global Extensions are currently installed and allow then to be turned on/off. Only selected plugins/global extensions would be loaded. These preferences would need to be saved in a version specific way, but the actual plugins and global extensions would not.

In short, let’s leave the Plugins and Global Extensions NOT stored at a point level and worry about what loads with what later. Pre 3.1.0 Vassal will ignore Plugins and Global Extensions anyway, so it is only a problem from now on. and I don’t think it is going to happen soon.

This facility could potentially be extended to allow you to load only specific extensions with an individual module.

What happens when you have finished playing a module? Is it possible to go back to the front-end screen ready to load another module? If this where possible, we on the way to having a utility front-end.

Regards,
Brent.


Brent Easton
Analyst/Programmer
University of Western Sydney
Email: b.easton@uws.edu.au


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

Post generated using Mail2Forum (mail2forum.com)

Thus spake “Brent Easton”:

Right now, “Close Module” is never enabled, becuase I didn’t do the coding
necessary to make it work. But I put it there precisely for that reason,
becuase I knew someone would be wanting to write that code.

I agree that having a module browser in the main view of the app window
prior to loading a module would be nice, but it’s not on my list at the
moment. One thing I know is that it needs to be pretty. There should be
little 50x100 icons of the gamebox fronts there in a JList with a big,
bold title and a smaller subtitle below that. That’s what I see when I
close my eyes, at least.


J.


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

Post generated using Mail2Forum (mail2forum.com)

Plus easy access to Game details, description, Genre, Module author etc. etc.


Brent Easton
Analyst/Programmer
University of Western Sydney
Email: b.easton@uws.edu.au


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

Post generated using Mail2Forum (mail2forum.com)

Thus spake Tim Franklin:

Thanks for the clarification. I hadn’t understood that properly, maybe
because I’ve never done it myself before.


J.


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

Post generated using Mail2Forum (mail2forum.com)

I think one of the targets for 3.2 should be to record a whole lot more information in the GameModule component that can be used by external utilities (i.e. the Vassal front-end, but potentially other utilities also).

Here is a brief list of the top of my head

Module Name
Module Brief Description
Module Description
Module Icon (various sizes? - Front end 50x100, Desktop 32x32)
Module Author
Game Publisher
Game Publish Date
Genre (pre-defined list plus allow for over-ride)
Version number
Date Modified (updated automatically)

Brent.


Brent Easton
Analyst/Programmer
University of Western Sydney
Email: b.easton@uws.edu.au


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

Post generated using Mail2Forum (mail2forum.com)

Fixed in swampwallaby-merge@

The i18n had already been done. Some of the translations are out of date though, and do not translate these strings.

I also fixed the Fixme’s and deprecated the old forms of the drawxxxx methods. Also fixed a bug in these. I fixed up the Generic warning in the new drawxxxxx methods - Any existing over-riding code will be calling the deprecated methods anyway.

Cheers,
Brent.


Brent Easton
Analyst/Programmer
University of Western Sydney
Email: b.easton@uws.edu.au


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

Post generated using Mail2Forum (mail2forum.com)

Just as long as there is the option to redirect it (as is also normal in Windows install). I typically put Vassal under D:/Games/Vassal/ and then put each module in a subfolder under /Vassal. (Keeping things off the C: drive makes things much easier if I decide to wipe and reinstall the OS.)

Thus spake “Rindis”:

The first thing the installer asks for is the install directory. It suggests
Program Files/VASSAL/VASSAL-x.y.z, but the user is free to choose something
else and it will still work.


J.


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

Post generated using Mail2Forum (mail2forum.com)

Good. :smiley: Just checking.

I fixed the Editor just now so that it’s possible to save modules you create
in it. I doubt that anyone will use such obscure features as “Save” and “Save
As”, but it’s good that they work now.

Regarding the splash screen:

So far as I can tell, on Windows you have a choice between having any windows
created after the splash screen getting focus but appearing on top of the
splash screen OR appearing beneath the splash screen but not getting focus.

I have a hard time believing that Windows is so gimpy that you really can’t
have both things simultaneously, but nobody has come forward with a solution
and I’ve tried everything I can think of short of writing native code. If
anyone knows the magic words for making this work, please tell me so I can
stop banging my head aginst the wall.

That said, the splash screen doesn’t serve any purpose other than advertising
right now, as virtually all of the time prior to when you see the player or
editor window is spent starting the JVM, which is before our splash screen
could be shown anyway. Once the JVM starts executing our code, there’s almost
no time left to even see a splash screen.

Given that (1) we can’t seem to make it behave properly on Windows, and (2)
there’s nothing to wait for while you look at the pretty graphics, do we
need a splash screen at all?

Alternatively, I know that some people want to display a splash screen while
modules are loading—if a module is being loaded directly, then there would
be some point to having a splash screen at startup. In that case, we could
still have one, but only display it if a module is being loaded.

Hmm.

This is the most important time to have a splash screen. Particularly when a module is loaded from the command line there can be significant delay while building the module. I wouldn’t bother showing the splash screen during normal initialization. As you say, the initialization of VASSAL without a module is so lightweight there’s barely any time to show one.

rk

Post generated using Mail2Forum (mail2forum.com)

Should this be the Vassal splash screen, or the module splash screen?

BTW Joel, I have found some time and am making extensive changes to VASSAL.launch.* to get extension editing integrated into the new scheme. Please don’t update anything in there for a little while.

Cheers,
Brent.

Should be the module splash screen, falling back to the VASSAL one.

rk

Post generated using Mail2Forum (mail2forum.com)

Thus spake “Brent Easton”:

In that case, it should probably be the module splash screen.

Ok.


J.


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

Post generated using Mail2Forum (mail2forum.com)

Brent, I made one small change just now—Rodney convinced me that we should
have a single entry point, so I modified things so that the editor is launched
from File > Edit Module, and that (following Ben’s warning) Edit Module is
disabled once a game is started.

I’ve committed this to uckelman-working only, as 3054 and 3055. You might
try merging this to your branch. If it conflicts, back it out and don’t
worry about it—I’ll take care of the conflicts later myself.

Now I’ll stop working on VASSAL.launch until you’re done.

As always, you can find these (svn3055) here:

nomic.net/~uckelman/tmp/vassal