FTJava is a Java based play-by-e-mail client program designed to run Full Thrust starship combat games for two or more players. We also have a couple of solitaire scenarios for single player games. The client software consists of a graphical user interface to control ship movement and combat. Orders are sent to the FTJava server, which processes the results and returns them to the players.
Full Thrust is published by Ground Zero Games http://www.gzg.com/ and is Copyright 1992, Jon Tuffley. Full Thrust rulebooks published so far include: Full Thrust - 2nd Edition (FT), More Thrust (MT), Fleet Book 1 (FB1) and Fleet Book 2 (FB2).
FTJava Copyright 2000-2003, Jon Davis and Dan Blezek. All Rights Reserved.
IMPORTANT NOTE: Neither the software nor this documentation will provide detailed instructions on how to play the game Full Thrust. We are assuming that the player has copies of the various rulebooks and knows how to play the game. Similarly, we will not be including all the ship designs from Fleet Books I and II. The last thing we want to do is give anyone a reason NOT to buy Full Thrust books!
1. Design team
Authors include Jon Davis, Dan Blezek, Tony Christney, Mike Riddle, Damond Walker, and Tom Tongue. Contributors include Brian Bell, Roger Burton West, Nick Dingle, Scott Field, Noam Izenberg, Mark Kochte, Al Muller, Brendan Robertson, George Ryon, and Bob Yeager.
2. System requirements
(To be added later)
3. Download and installation
- Download and install the Java Runtime Environment (JRE), if not already on your computer. http://.java.sun.com/j2se/ The code was developed under Java 1.3.1_01, but the client is operating successfully under Java 1.4.
- Download FTJavaV0.11.zip (~3.5 MB) or the compressed Mac application file FTJavaV0.11.dmg.gz.
- Unpack the Zipfile in a directory. This distribution includes the FTJava client software, some sample game files, this documentation, ship files, scenario files, and image files. (Ensure that your unzip utility does not truncate file names.)
- FTJava will also establish directories for incoming and outgoing files.
- [Windows]: Execute the FTJava client by running the RunFTJava.bat file.
- FTJava can be run as a standalone program, reading and writing game files sent through your regular email program. If you prefer, FTJava can also operate as an e-mail client, retrieving and sending files from the server. See the section on email configuration for details.
- The 'Delete emails' option will only delete mail messages that the client recognizes as FTJava game files. It will not have any other impact on your mailbox.
4. Signing up for a game
If you want to play one of the standard scenarios, you may find the FTJava player matching service useful. This is available on the web at http://firedrake.org/cgi-bin/ftjava.cgi.
Note that this is not operated by Jon Davis or part of FTJava - in fact, it's written in Perl. In case of problems, your best bet is to ask on the mailing list.
You will need first to create an account. This is done mostly for convenience, so that you don't have to keep re-entering your email address. Email addresses are kept private, and used only for game generation and password reset notifications. (If you forget your password, use the "reset password" form on the first page to have a new password generated and emailed to you.)
The normal functions are:
Browse Games: This is the main part of the system: it takes you to a list of all games currently awaiting players. You can inspect each game (the details of the scenario, the options in use, and the players already signed up), and choose to play any vacant position.
Create A Game: Here you can examine all the available scenario files in a directory hierarchy. Once you have found a scenario to your liking, select the game options (see below), and enter any notes you feel like adding (such as "private game with <person>" or "new player"), then create the game. If you want to play in the game too, return to "Browse games" in the main menu and sign up for the position you want.
Change Email Address, Change Password: These are self-explanatory.
Log Out: This will end your session with the FTJava signup system. The session will also end if you leave any page open for 15 minutes or longer without taking any action.
4.1. Game options
At the time of writing, the options are:
Fog of War: this determines how much information you get about enemy ships. "None" gives you full information regardless of range; "Range-based" reduces information based on range to the target; and "Blip-based" acts similarly but gives you position information (only) beyond the range where a ship could normally be detected. See the section on Fog of war for more details.
Note that because of the way the observation system works, if you want to have a public game (turns available at http://firedrake.org/ftj.observer/), you must select it as part of the "no fog of war" option.
Movement System: this can be cinematic (classic Full Thrust) or vector (as introduced in Fleet Book 1 and modified in Fleet Book 2). Note that advanced drive ships in FTJava vector act differently from those in FB2; they pay no thrust for rotation, but can only thrust directly ahead.
Game Speed: indicates how often you expect players to submit turns to the game. This isn't enforced in any way, but can reduce player frustration by providing a guide as to how often you expect to play.
Note that the signup system does not use cookies or JavaScript, and should work with any browser that offers form submission and respects no-cache directives.
5. Email configuration
There are three ways to send orders to the game server:
- Using your regular e-mail program. Attach the .XML orders file to an email message; do not cut and paste the orders into the text of the email. The subject line of the email must be the same as the file name of the attachment. Also, the MIME type must be "text/xml" or "text/plain". Send the e-mail to the FTJava server at ftgm@nycap.rr.com. You should receive an email from the server verifying that your orders have been processed. Note that the server does not care what email address you submit orders from, as long as the embedded key code is correct.
- Using the e-mail capabilities of the FTJava client program. Your mail address, mail provider and other information must be set up using the Preferences command from the main screen File menu. Enter ftgm@nycap.rr.com for the FTJava email address. You may enter your email name and password in this preference area if you wish; if not, the software will prompt you for it when you fetch mail from your mailbox. Your preference information is saved in a .FTJavaPrefs file in your home directory. Once you are ready to submit your orders, select the 'Queue Orders' menu item from the turn control panel. This action writes the orders into a file in the OutgoingGames directory. Then select 'Send email' from the main window File menu to submit all orders in the directory to the FTJava Game server.
- By submitting orders directly to Jon as a text file or attachment. However, this method should only be used as a last resort when other attempts have failed. Frequent use of this method is a 'career limiting' move, and may result in less prestigious command assignments in the future.
6. Starting a game
Once all player slots have been filled, the server will send you an XML file containing set-up information. The file will be named "Game###_Turn00_Player#_D.xml".
FTJava runs in two phases per game turn: a movement phase and a combat phase. As a result, there are four files associated with each turn:
"Game###_Turn##_Player#_A_MovementOrders.xml": sent to the server, movement orders.
"Game###_Turn##_Player#_B_Combat.xml": sent to the player, movement phase results and setup for combat phase.
"Game###_Turn##_Player#_C_CombatOrders.xml": sent to the server, combat orders.
"Game###_Turn##_Player#_D.xml": sent to the player, combat results and setup for the next turn"s movement phase.
It is important that you do not manually alter these files in any way. The files contain a key code for server authentication.
Execute the RunFTJava.bat file to bring up the FTJava Client main window. The File menu allows you to open game turns, send and receive email (if you are using the FTJava client to manage your email), and change your display and email Preferences. The Games menu lists recent game turns you have run. The Editor menu accesses the scenario editor (see the section on scenario deign). Opening the turn file will bring up the Control Panel and Star Map.
7. Control panel
The Control Panel allows you to access ship information and issue orders to your ships. Information on enemy ships is also available, but may be limited by Fog of War settings. Each ship that you can detect has it"s own tab; the names of your ships are black, any allies you may have are green, and enemy ships are red. The dot on the tab gives the ship"s overall status: green for undamaged or lightly damaged, yellow for moderate, red for heavy or critical, and a grey skull for ships that have been destroyed. (All colors can be changed under Preferences.)
Clicking on a ship"s tab brings up that ship"s information panel. Clicking the Status button brings up the ship"s SSD. The Ship Log button brings up a record of all fire directed against that ship, threshold checks and damage control results, and the results of all weapons fired by that ship the previous turn. During Movement Phase, you also have a Damage Control button (see Damage Control below), and a Launched Weapons button if your ship carries salvo missiles. During Combat Phase, the Damage Control button is replaced by Weapons Targeting.
7.1. Control panel menu commands
Game: Allows you to Save your orders, Queue them for email delivery (if using the client email program), and Close the turn. If you attempt to close a turn without having saved orders, a prompt will remind you.
View: Brings up various reports, including the Scenario Briefing, Player Objectives, Full Report, Sensor Report, and Turn Report. You can also toggle to the Star Map.
Messages: Allows you to send & receive messages to other players in the game.
Ship: Displays a ship"s movement paths, weapon arcs, targeting lock ons, and sensor range bands. It also allows you to clear any of the above information, and to remove a dead or escaped ship from the display.
Friendly: The same as the Ship menu, but applies to all ships you control.
Enemy: Allows you to display much of the same information for enemy ships.
8. Star map
The star map window provides a graphical interface displaying the position of your ships and all allied/enemy ships you can detect. The green bar underneath a ship"s name represents its current hull integrity. The yellow bar represents screen strength: a full bar indicates Level-2 screens, a half bar indicates Level-1, and no bar indicates no screens or unknown.
Right-clicking on the map brings up the following menu options:
SSD: Toggles to the Control Panel.
Clear: Clears all movement and weapon information currently displayed.
Map: Changes the map scale.
Center: Centers the map on the selected point.
Set Mark: Allows you to set a mark point on the map for reference or for targeting missiles.
Right-clicking on a ship also allows you to access information for that ship, duplicating many of the Ship menu commands from the Control Panel.
9. Movement phase
Opening the "D.xml" file will display combat results from the previous turn (if any), and allow you to issue movement orders to your ships. Enter the movement orders for each ship in the plot text area. Cinematic orders will be accepted in either the form 'P1+1' or '1P+1'. Vector movement orders are as per FB1, with the modifications from FB2 in effect, and are given as a sequence of commands separated by spaces: MD3 or +3 to thrust main drive 3 points, RP2 to rotate to port 2 points, PS to push to starboard, etc.
If you wish to activate a ship's FTL drives to leave the battle, give the order as "FTL" or "J". This order must be done on two consecutive turns, and no other ship systems (such as weapons) may be used after the initial activation.
If you enter illegal orders for a ship, the plot text window background will change color to red. If you submit illegal orders the server will parse and reinterpret them, reducing first acceleration / deceleration, then course change to a legal limit.
You can also plot hypothetical movement for enemy and allied ships; these orders are not sent to the server, but are useful for attempting to predict enemy movement and firing.
Ghost Plot: Selecting this option for a ship (or fleet) displays the ship"s projected movement path for the turn, based on the orders currently entered in the plot orders window.
Ghost Envelope: This option displays the boundary of possible movement the ship is capable of, given its known thrust.
Ghost Trail: Displays the ship"s movement path for the previous turn.
Note that unless Ghost Plot is enabled, weapon arcs will display arcs and range bands from where the ship is currently positioned, not where it will be during the combat phase.
9.1. Damage Control
Clicking the Damage Control button brings up the ship"s SSD, as well as a dialog for assigning tasks to each damage control party. If no repair orders are given, the server will automatically assign damage control parties in the order systems are displayed in the dialog. Repair results are reported in the ship log.
9.2. Launched Weapons
To launch salvo missiles, first set a mark point on the map by right-clicking where you intend to place the salvo and selecting "Set Mark." (Missile firing arcs and range band can be turned on through "Ship – Weapon Arcs.") Then return to the Control Panel and click the Launched Weapons button for the desired ship. This will bring up a launch dialog for each missile launcher/rack on that ship. Press Launch to fire a salvo to your designated mark point. If the mark is out of range, the salvo will target a point at maximum range along a line to the mark.
Launched salvos are displayed on the Star Map. Right-clicking on the salvo will allow you to display the salvo"s range band and other information. You can abort the launch of a salvo at any time prior to submitting orders by returning to the Launched Weapons dialog and selecting "Cancel".
9.3. Sending Movement Orders:
Once you have entered movement orders for all your ships, execute the 'Save Movement Orders' command or 'Queue for email'. An "...A_MovementOrders.xml" file will be written in your FTJava Outgoing Turns directory. Mail this file to the FTJava Server as an attachment for processing.
10. Combat phase
Once the server has received movement orders from all players, it will send you a "...B_Combat.xml" file. Opening this file brings up the Control Panel and Star Map for the combat phase.
Clicking the Weapons Targeting button for a ship brings up the targeting dialog box. This dialog displays all functioning weapon systems and all fire controls. Select a target from the pulldown menu for each fire control and check the boxes for all weapons systems you wish to assign to that target. If the designated target is out of range or out of arc, that information will be displayed on the right side of the panel.
Displaying weapon arcs and range bands is helpful for deciding which targets to engage. Range arcs display the maximum number of dice that can target that band/arc. Weapons attacks are resolved as specified in the appropriate section of the Full Thrust rulebooks for that weapon system.
10.1. Point Defense Systems
Point Defense Systems (PDS) can also be assigned targets. A pulldown menu for each PDS lists all missile salvos and fighter squadrons that are within range. Select one to assign the PDS to that target. PDS may also be used to target enemy capitol ships within 6".
If a ship has an ADFC, a pulldown menu will list all friendly ships within range that the ADFC may support; selecting a friendly ship allows the supporting ship's PDSes to target any missiles/fighters targeting the supported ship.
10.2. Lock Ons
The Lock Ons feature may be used to verify which ships you have targeted. A red lock-on points to the primary target selected. A yellow lock-on is drawn to all secondary targets. A green lock-on is drawn to tertiary targets. PDS targeting of missiles or fighter groups is shown in white.
10.3. Sending Combat Orders
Once you have given firing orders to all the ships you wish to fire, execute the 'Save Movement Orders' command or 'Queue for email'. A '...C_CombatOrders.xml' file will be written in your FTJava Outgoing Turns directory. Mail this file back as an attachment to the FTJava Server for processing.
11. Fog of war
How much information you know about enemy ships is determined by the Fog Of War option set when the game is created. There are three game options for the 'fog of war' games:
None: All information is available at all times.
Range based: option that reports a varying amount of information depending on the minimum ship range to the opposing target. It's based on a sensor range band. At the first range band, the highest level of information is available. At the second band, the information level drops by one. Therefore, at greater than five range bands from your opponent, you will not have any information on the opposing players ship. The default sensor range band is 18 mu.
Blip based: acts similarly to range based, but gives you position information (only) beyond the range where a ship could normally be detected and only when the opposing ship is actively using its Main drives.
There are six levels of information on opposing ships.
- Full information with system status (default)
- Full information with no system status
- Mass, drives, and screen information only
- Mass information only
- Position, heading, and speed information only
- No information
12. Server commands
The FTJava Server responds to a number of query commands addressed to it in email. The command must be contained in the subject of the message. The text of the email may be left blank. The syntax for the commands are as follows:
HELP
Sends a message describing these server commands.
STATUS Game##
Sends the status of the game denoted by the Game## syntax. This command will report if the game is active, the current turn and the orders required for continued processing, and any other pertinent game information. The syntax of the game string is case sensitive. A query for game 30 could read 'Status Game30' or 'status Game30' or 'STATUS Game30'. 'status GAME 30' or 'status game30' would not be accepted.
RESEND Game##
Resends the game file for the respective player by matching the "From:" field on the query to a player in the game. The resent XML will be sent to the e-mail address denoted in the gamefile.
13. FTJava Client Preferences
The FTJava client software has a number of user preferences that can customize the software.
13.1. E-mail Preferences
These settings are used to configure the FTJava e-mail send and receive ability. This includes your e-mail address, the address of the FTJava server, the mail protocol, mail host, and other settings.
13.2. StarMap Preferences
These options allow you to set Ship name fonts, text colors, the background image, and grid lines.
The Center on Ship option recenters the map on the ship when the ship tag is selected from the control panel.
The Graphical Status bar gives an indicator of the remaining hull percentage in the green bar. The yellow line indicates whether the ship is shielded and either level-1 or level-2 shields.
13.3. Orders Preferences
This preference allows user interface customization for the Orders panel. It includes color preferences, enemy plotting option, and an accelerator key options for StarMap functions.
13.4. Ship Status Preferences
These options control the appearance of the Ship Status Display and the display options for indicating system status. Status by color will display damaged, destroyed, or expended systems in specific colors. Status by icon will superimpose a small icon over the system. Status by cross will mark a line across a system that is damaged and an X across a system that is destroyed.
13.5. Misc. Preferences
The Phalons are a strange bunch and not everyone has taken a liking to the official Full Thrust miniatures. We've implemented icons based on the GZG figures, but we"ve also provided an option to use a less "phallic" depiction of their ships.
14. Ending a game
Automated victory conditions and end-of-game determination has not yet been implemented. Once all players agree that a game has been concluded, you must email Jon to let him know that the game may be terminated.
15. Reporting bugs, etc
The primary method for reporting or discussing bugs, glitches, and other problems is through the FTJava mailing list. To subscribe, send an e-mail to ftjava-test-request@firedrake.org with the subject "subscribe". To unsubscribe, send an e-mail to ftjava-test-request@firedrake.org with the subject "unsubscribe". Please do not post attachments to the list (they will be filtered out anyway). List archives are posted at http://lists.firedrake.org/ftjava/.
Bugs may also be reported by email directly to Jon Davis.
16. Designing original scenarios
(To be added later)