Developer's Blog

Well, since I seem to be the only one using the wiki, I thought I would create a little corner where I can brain dump ideas I am currently working on for future inclusion into VASSAL. While Rodney is often tied up with major structural development for VASSAL, I tend to flit here and there as my fancy takes me (in between bedding down VSQL 3.0 beta releases!).

Please feel free to jump in and make any comments, or add ideas for extra functionality. Don't be shy! The more discussion on a particular topic, the more likely I am to devote time to it.

Cheers, Brent Easton. (Swampwallaby)

--- Brent Easton 2005/05/07 01:45

Getting Started - Setting up Eclipse
Interested in becoming a VASSAL developer? First things first, you need a Java development environment and a fresh copy of the code to work on. There are a number of suitable Java IDE (Integrated Development Environment) that are suitable for use with VASSAL. I use Eclipse because it does everything needed well, and it's free! If you would like to get Eclipse up and running, have a look at here for instructions on getting up and running with Eclipse.

Netbeans from Sun is also free and should work, but I have no experience with it.

Developer Mentor Program
Do you have an idea for a component, but just can't get it working right? Not sure where to start and need a basic working framework for a Counter Trait so you can do the 'frilly' bits? Need a second opinion on a design decision? Just need a shoulder to cry on? Drop me an email and I will be glad to help.

Version Control
Vassalengine uses subversion for version control system. Anonymous read access is granted at https://vassalengine.svn.sourceforge.net/svnroot/vassalengine. If you are a vassal developer you need to create two branches. One is for your unstable changes and additions, one for your code that is ready for trunk. Naming conventions are (merely suggestions as of the time of writing):
 * 1) -devel for your unstable branch
 * 2) for your code that is ready to go into trunk

In Eclipse Setup | Subclipse a step by step guide for using the Vassal subversion repository is given.

NOTE: Repository now at https://svn.code.sf.net/p/vassalengine/svn/

Internationalization (I18n) Project
The developers have started a project to Internationalize VASSAL.
 * Stage 1 - Provide facilities to translate the Player Interface
 * Stage 2 - Provide facilities to translate individual modules
 * Stage 3 - Provide facilities to translate the Module Editor Interface

Stage 1 is mostly complete as at March 2007 and will be included in the initial release of Version 3.0.

Published Components
Completed Components and bits and pieces developed by our programmers, but not included into VASSAL for one reason or another. These are published by the owners and include source code and instructions to use them in your own modules.

Downtown traits
The Downtown module to be found at here is modified to allow for better solitaire suitability. Some custom code was written to make it happen. Further details can be found here.

Torsten Spindler

Updated Internet Dice Button for ShadowDice
The Old Internet Dice Button was removed from VASSAL when the ShadowDice server changed to require a user account. Here is an updated version that I did for VSQL:. Download the file and unzip it. Copy the containing VSQL folder (it contains some .class files) into your module. Then import the class

VSQL.VSQLInternetDiceButton

into your module. If you Edit your Internet Die Roller preferences, there are now two new fields to fill in - Account Name and password. Enter the details of your ShadowDice die roller account. You should remove the old Internet Dice Button from your module.

TurnTracker - Configurable Turn Counter
A general purpose Turn counter. Configurable to suit any game. Button on launch bar to show/hide a floating window displaying the current turn. Look here for more details.



Brent Easton

Projects In Progress
A page of ideas that our developers are interested in, given enough time, analysis, encouragement and assistance with testing (!). If you are just starting out with VASSAL programming and need an idea to work on, have a look at these, you will be guaranteed extra assistance for these!
 * Scenario Refresher - Updating those old counters
 * Improved Text Labels
 * Messenger
 * Oblique Hex Grid Numbering - for old AH enthusiasts
 * Recording Terrain Information - Generalised terrain handling
 * Variables, Conditionals, Processes - Counter Programming without Java!
 * Replace by Name trait
 * Scribble Pad - Visual Notes
 * Improved Invisibility - use more than the players password for hiding pieces

Graduates
These components have been integrated into the core VASSAL engine

AutoImages - Automatic NATO style Image Generator
Integrated into VASSAL as Game Piece Images

Generates images via a template that can be used in counters without the need to create your own PNG or GIF images and load them into your module. Automatically draw standard NATO Unit and Size symbols. Can include any number of Text Components with variable font, size, style, rotation. You can also have your own custom images included in the Auto Image instead of using NATO symbols! AutoImages can be used a single layer image through a custom trait, or can be used as layer images in the layer trait.

Updated Mouse-over Stack Viewer
Includes ability to select units by layer or properties.

Chart Maps - Maps in Charts
Ability to have Maps in Charts windows. You can view the historical reference about Chart Maps here

Counter Inventories and summaries
Configurable tree view counter inventory and summary package contributed by Torsten Spindler.