shiptools: ship design and printing for Full Thrust 2.5

Roger Burton West
23 April 2014


Table of Contents


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

jon@gzg.com

1.2.2. Australasia

Eureka Miniatures, 10 Woorayl Street, Carnegie, Victoria 3136, Australia

+61 3 9568 4085

nicr@eurekamin.com.au

1.3. Prerequisites

1.3.1. Pure perl version

You will need the following:

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:

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:

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: