1. Introduction
The shiptools suite is a collection of programs used for designing ships, constructing fleets, and printing fleet record sheets for Full Thrust; the rules set in use is that described by Fleet Book1 as amended in Fleet Book 2, with some optional material from the GZG mailing list. The suite covers all material from those books, including civilian ships and alien races.
Design is the ship designer: it allows the design of classes of ships, but does not cover combat-time loadouts (for example, fighters and missiles).
Fleetman is the fleet editor: it takes Design's ship files and allows the naming and configuration of individual ships.
Fleet2ps converts Fleetman's fleet files, and Design's ship files, to Postscript record sheets, which can be printed directly to a Postscript printer or converted for other printers using a Postscript interpreter such as GhostScript.
Ship2xml and xml2ship convert ship files between this system and Jon Davis' FTJava program.
The shiptools suite is written in Perl/Tk; while it is designed and tested on a Unix-based system, Windows users have reported little trouble in getting it to work. There is now also a Windows-only binary version available which will work on systems which do not have Perl installed.
1.1. Version history
1.1.1. 0.20 (23 April 2014)
design | fixed CPV calculation to new formula |
1.1.2. 0.19 (24 May 2002)
design | fixed zero-cost Sa'Vasku drive nodes |
1.1.3. 0.18 (21 May 2002)
fleet2ps | returned to standard DCP allocation system |
general | Windows binaries now available |
1.1.4. 0.17 (9 May 2002)
design | fixed various bugs in salvo missile display |
added sensors and ECM | |
tweaked auto-mass calculation | |
added auto-classification | |
fleetman | new missile loading interface |
added total hull-box count | |
replaced ship-selection dropdowns with list-boxes | |
added ship summary display | |
fixed fighter point values on fleet load | |
fixed bug with loading multiple SMMs | |
fleet2ps | added sensors and ECM |
fixed problems with missile display | |
switched to new DCP allocation system | |
general | added variable numbers of hull rows |
changes to fleet files - variable loadouts will be lost | |
changes to ship files - missile tags and hull rows | |
added option for mixed-tech ships | |
added info on obtaining Ghostscript | |
added ship2xml and xml2ship converters |
It will be worth loading and re-saving any existing ship designs.
1.1.5. 0.16 (31 Jan 2002)
design | added ortillery, minelayer, minesweeper and missiles |
improved speed of auto-mass function | |
fleetman | added automatic variable-loadout popup on ship addition |
added missiles to variable-loadout box | |
added automatic ship naming | |
limited fighters to types available by race | |
added total fleet mass display | |
fleet2ps | added fleet, admiral, page number headers to pages |
added ortillery, minelayer, minesweeper and missiles | |
added fighter control grid for carriers | |
added new scaling algorithm to take account of printable area | |
general | added rulers.ps to allow determination of printable area |
1.1.6. 0.15 (28 Nov 2001)
design | locking hull size presets |
added auto-mass button | |
fixed double screen bug (thanks to Dean Gundberg) | |
fleetman | refined selection by classification |
fleet2ps | rewrote page-space allocation to remove scaling |
1.1.7. 0.14 (26 Nov 2001)
design | added command-line load |
fleetman | added selection by classification |
1.1.8. 0.13 (5 Nov 2001)
fleet2ps | reduced postscript output size with dependencies |
fixed non-appearance of submunitions |
1.1.9. 0.12 (29 Oct 2001)
design | fixed armour cost bug introduced in 0.11 |
1.1.10. 0.11 (29 Oct 2001)
design | added worksheet output to design |
1.1.11. 0.1 (26 Oct 2001)
First public release
1.2. Copyright
This software is released under Ground Zero Games' conditions: it may be passed on to others, without charge and with this documentation.
This software is and is required to be supplied entirely free of charge. If you like the software and would like to contribute to the author, you might consider buying something from http://www.amazon.co.uk/exec/obidos/wishlist/2U7IBPLWHDPU0/, the author's wish-list at Amazon.co.uk.
The rules material embedded within this software is copyright 1992, 1998 and 2000 by Ground Zero Games.
Ground Zero Games may be contacted at:
1.2.1. UK/Europe (and where not mentioned below)
Ground Zero Games, PO Box 337, Needham Market, Suffolk, IP6 8LN, United Kingdom
+44 1449 722322
1.2.2. Australasia
Eureka Miniatures, 10 Woorayl Street, Carnegie, Victoria 3136, Australia
+61 3 9568 4085
1.3. Prerequisites
1.3.1. Pure perl version
You will need the following:
- Perl v5 (5.005 or anything later should work)
- The Tk and Tk::GBARR modules installed and working
Copy NewOptionmenu.pm into a Tk module directory (wherever Frame.pm is stored is suitable). (This may not be needed with more modern installations; try it first without.)
If you are using Windows, ActiveState Perl (http://www.activestate.com/) appears to be the Perl implementation of choice. Various people have reported that the shiptools packages work under Windows, but I do not have the resources to investigate or support this myself.
MacOS X can run this version; see shiptool_macosx.html for the special installation instructions.
1.3.2. Windows binary version
You will need:
- Windows
All the content has been packaged in Windows binaries; many thanks to Jerry Acord (acord@imagiware.com, http://imagiware.com/acord/) for this. Saved files are directly compatible with the pure-Perl version.
2. Design
2.1. File storage
Design stores its files in the current working directory. It uses files only when loading and saving ship designs.
2.2. Operation
Start design from the command-line or by double-clicking:
./design
You may optionally give the name of a ship file to load.
2.2.1. Control buttons
Button | Effect |
Load | Loads a saved ship design |
Save | Saves the current ship design |
Worksheet | Pops up a window with a design worksheet for the current ship |
Clear | Resets the current ship design |
Quit | Leaves the program |
Note that the filename used by "Save" is automatically generated from the ship's class name; if you have a sufficiently large collection of ships, it is entirely possible that you may find class names clashing. I am working on a solution to this.
2.2.2. Upper section
The upper section of the main window contains ship parameters: class name, hull mass, and so on. The class name will be used to generate the filename under which the ship is saved. Navy identification will be used to separate groups of ships in the fleet manager.
Note that changing the technology base of the ship will delete all systems. The "Mixed" tech base allows use of all human, Kra'Vak and Phalon systems; note that I do not recommend this.
Selecting pre-set hull strengths ("Weak", "Average", etc.) will set the current hull strength to the appropriate fraction of total mass, and will maintain this fraction when hull mass changes. (If you do not want this to happen, select the pre-set strength, then select "Free" to unlock the numeric hull mass control.)
The "Auto" hull mass box will attempt to find the smallest hull mass which can contain the selected components. If you selected components that cannot be contained in any hull - e.g. thrust 19 and FTL, which together require 105% of ship mass - the search could go on forever; for this reason, it fails immediately if 1000000 MASS is not sufficient to hold all components.
The "Guess" box for the type of ship brings up a list of suggested classifications (Destroyer, Frigate, etc.) based on the current hull mass and number of fighter bays. It is likely that this function will become more sophisticated in time.
The point cost and remaining mass of the ship are updated continuously. There is nothing to stop you from saving an illegal design (this may be added later).
2.2.3. Lower section
The lower section of the main window contains ship systems: weapons, defences, and others. Select the system you wish to add from the drop-down list; controls will appear to allow you to set the various parameters.
The "Count" control, which is common to almost all systems, sets the number of systems of that exact type (including firing arcs); this allows the size of the lower section to be kept to a manageable level. Other common controls allow for power level, arc selection, and so on.
One slightly non-intuitive function is the "tag" for SML and SMM systems; this indicates which missile tubes are fed from which magazine. Each group of SMLs and SMM with the same tag number is considered a single missile-fire network.
If a control section has a red background, you have made an illegal selection; this usually applies to weapons with the wrong number of arcs (e.g. a 4-arc class 2 beam battery). Some effort is made to disallow illegal selections.
As you add systems, new system selectors will appear at the bottom of the lower section - you may need to scroll down to see them.
3. Fleetman
3.1. File storage
Fleetman stores its files in the current working directory. It uses ship files at startup and when selecting or arming ships, name files when adding ships, and fleet files only when loading and saving fleets.
3.2. Operation
Start fleetman from the command-line or by double-clicking:
./fleetman
You may optionally give the name of a fleet file to load.
3.2.1. Control buttons
Button | Effect |
Load | Loads a saved fleet |
Save | Saves the current fleet |
Quit | Leaves the program |
3.2.2. Upper section
The upper section of the main window contains fleet parameters: fleet name, admiral's name, and marker identification. The fleet name will be used to generate the filename under which the fleet is saved; the marker identification will be used to generate a marker name for individual ships (and is usually set to a colour name).
The point cost, mass total and hull box total of the fleet are updated whenever a ship is added, deleted or rearmed.
FTL lift capacity shows the total available lift capacity of the fleet. If it is zero or positive, the fleet as a whole is able to move by FTL. It is increased by the addition of tugs to the fleet, and reduced by the addition of ships without FTL drive.
To the right of this section is the ship summary window; this will be filled with a summary of a ship's capabilities when the class is selected, either from the ship selection window or from the fleet list.
Choose ships to add to the fleet by selecting race (and hence technology base), navy (if applicable), classification and individual ship class; then click the "add" button. You need not select categories, but may find this more convenient; multiple categories may be selected simultaneously. If a ship has variable-loadout items (fighters, missiles, salvo missiles, pulsers settings and contents of hangar bays), the arming window will appear automatically (see below).
3.2.3. Lower section
The lower section of the main window contains the list of ships. Set name (defaults to "New Ship" or an automatically-generated name) and marker ID (the root marker ID, set above, followed by a number). Use the "Arm" button (if present) to reselect variable-loadout items; use the "Scrap" button to delete the ship.
3.2.4. Arming window
Setting up of fighters, missiles and pulsers is obvious. (Note that this system uses the proposed missile updates as seen at http://firedrake.org/memorybank/Archive/2001/sep2001/msg00670.html.) SMMs display multiple sliders, one per possible type of missile.
Hangar bays are rather more trouble. Specifying small craft is done with a line of text: 1x20 is a single 20-mass ship, while 4x5 is four 5-mass ships. If you want to specify more than one type of small craft, separate the descriptions with commas: 4x2,2x6 is four 2-mass craft and two 6-mass. (If you can think of a good GUI for this, please let me know!)
3.2.5. Automatic ship naming
If a fleet names file exists, it will be used automatically to generate names for ships as they are added to the fleet. These names can of course be edited normally.
These types of line are valid in the fleet names file:
- prefix=NNN - which sets the prefix for ship names (e.g. RNS, VKK, KRS, etc.)
- [classname] - meaning that the following lines are valid names for ships of that class. (This is an exact, case-sensitive match.)
- [=classname] - meaning that the following lines are valid names for ships of that class, while not making them invalid for ships of the class already set.
- ' comment text - any line starting with an apostrophe will be ignored.
- any other text - a ship name for the current class.
The file should be named for the navy for which it contains ship name information: the file for the NAC would be called "nac.names".
Example:
' this file contains ship names for the New Anglian Confederation prefix=RNS [Eastwood] Eastwood Schwarzenegger Hamilton Weaver Stallone van Damme Lundgren Connery [Howe] Anson Beatty Blake [=Howe Mk II] Cunningham Drake Farragut (etc.)
So a Howe Mk II could be called Drake, Farragut or Cunningham; a Howe could be called any of those names, or Anson, Beatty or Blake.
4. Fleet2ps
4.1. Introduction
Fleet2ps is entirely non-interactive; all editing should be done in Design or Fleetman.
Fleet2ps produces a PostScript file. Many modern printers are able to accept such a file directly; if you have one that isn't, or you are unfortunate enough to be using a system which does not allow you to send files directly to the printer, download Ghostscript, which is a free implementation of the PostScript engine. http://www.cs.wisc.edu/~ghost/ is a good place to start.
4.2. Configuration
Early in the fleet2ps program file is a line:
my @printer=(12,582,13,829);
This should be set to the boundaries of the printable area of your printer. If you don't know these already, print the included file "rulers.ps" and insert, in order, the minimum and maximum horizontal and minimum and maximum vertical values visible on the page.
Windows users will not be able to do this. See below.
4.3. File storage
Fleet2ps expects to find its files in the current working directory.
4.4. Operation
Start fleet2ps from the command-line or by double-clicking:
./fleet2ps sample.fleet >sample.ps
The result is a PostScript file, which may be printed or converted to other formats as appropriate. To print immediately (on a Unix system):
E:./fleet2ps sample.fleet |lpr
If you do not specify a fleet file on the command line, fleet2ps will start its graphical interface, while will allow you to select the fleet file and the output file, and change the printer size parameters.
5. Ship2xml and xml2ship
5.1. Introduction
The ship2xml and xml2ship programs convert ships between the format saved by the design program (.ship) and the XML format used by Jon Davis' FTJava program (see http://home.nycap.rr.com/davisje/ftjava/index.html for more information).
There are no Windows binary versions yet, as these programs are very much in a state of flux.
5.2. Prerequisites
The xml2ship converter relies on the XML::Simple parser module.
5.3. Operation
Simply run the program with one or more filenames as argument:
-
/ship2xml example.ship
/xml2ship example.xml