Deathray is now regressed to original 5% probability in 'plain' games.
[super-star-trek.git] / sst-doc.xml
index 06c38a2da1c2ce4ad1e3c5f51717beb1b663500f..411da291171f1a8705deafe528ee99d7c560d7be 100644 (file)
@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!DOCTYPE book PUBLIC 
     "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-    "docbook/docbookxx.dtd">
-
+    "docbook/docbookxx.dtd"[
+<!ENTITY sst-site      "http://sst.berlios.de/">
+<!ENTITY retro         "http://catb.org/~esr/retro/">
+]>
 <book>
 <bookinfo>
 <title>Super Star Trek</title>
@@ -93,7 +95,7 @@ respect the copyrights of the originators of Star Trek.</para>
                          Curses Interface By
                               Stas Sergeev 
 
-                         SST 2K polishing by
+               SST 2K polishing and historical research by
                             Eric S. Raymond
 </literallayout>
 </dedication>
@@ -172,7 +174,7 @@ game.</para>
 
 <para>Space is vast, and it takes precious time to move from one place to
 another.  In comparison, other things happen so quickly that we
-assume the take no time at all. Two ways that time can pass are when
+assume they take no time at all. Two ways that time can pass are when
 you move, or when you issue a command to sit still and rest for a
 period of time.  You will sometimes want to do the latter, since the
 various devices aboard your starship may be damaged and require time
@@ -227,6 +229,37 @@ and start a new game.</para>
 
 <para>The Klingons are waiting.</para>
 
+</chapter>
+<chapter><title>Starting the Game</title>
+
+<para>The program will ask you some setup questions.  You can give it 
+command-line arguments that will be treated as answers.  Any token
+may be abbreviated to a unique prefix.</para>
+
+<para>The first question concerns whether you want a regullar,
+tournament, or saved game.  For discussion, see the <link
+linkend="freeze">description of the freeze command</link>.</para>
+
+<para>The second question will concern the length of the game.  
+Longer games include more enemies.</para>
+
+<para>The third question will set the game's difficulty level.
+You should probably start out at the novice level, even if you are
+already familiar with one of the other versions of the Star Trek
+game&mdash;but, of course, the level of game you play is up to you.  If
+you want to start at the Expert level, go ahead.  It's your funeral.
+The Emeritus game is strictly for masochists.</para>
+
+<para>The fourth question, new in SST2K, sets your game options.  A
+blank answer or 'fancy' enables all SST2K features.  The option
+'plain' disables a number of features (Tholians, planets &amp;
+dilithium, Thingies shooting back, deep-space-probes, Klingon ramming
+and movement, time-warping through black holes, death-ray upgrade),
+approximating the original CDC 6600 FORTRAN game from UT Austin.  The
+option 'almy' approximates Tom Almy's C translation from 1979,
+disabling Thingies shooting back, base shields, and time-warping
+through black holes.</para>
+
 </chapter>
 <chapter><title>How To Issue Commands</title>
 
@@ -301,7 +334,7 @@ complicated, but you will learn the abbreviations qGuickly enough.</para>
 
 <orderedlist>
 <listitem><para>You can abbreviate practically anything</para></listitem>
-<listitem><para>If you forget, the computer will proompt you</para></listitem>
+<listitem><para>If you forget, the computer will prompt you</para></listitem>
 <listitem><para>If you remember, you can type it all on one line</para></listitem>
 </orderedlist>
 
@@ -768,18 +801,18 @@ instantaneously, the hits you receive will be intermediate between
 what they would be if the shields were completely up or completely
 down. </para>
 
-<para>You may not fire phasers through your shields.  However you may use
-the <quote>high-speed shield control</quote> to lower shields, fire phasers, and
-raise the shields again before the Klingons can react.  Since rapid
-lowering and raising of the shields requires more energy than normal
-speed operation, it costs you 200 units of energy to activate this
-control.  It is automatically activated when you fire phasers while
-shields are up.  You may fire photon torpedoes, but they may be
-deflected considerably from their intended course as they pass
+<para>You may not fire phasers through your shields.  However you may
+use the <quote>high-speed shield control</quote> to lower shields,
+fire phasers, and raise the shields again before the Klingons can
+react.  Since rapid lowering and raising of the shields requires more
+energy than normal speed operation, it costs you 200 units of energy
+to activate this control.  It is automatically activated when you fire
+phasers while shields are up.  You may fire photon torpedoes, but they
+may be deflected considerably from their intended course as they pass
 through the shields (depending on shield strength).</para>
 
 <para>You may transfer energy beteen the ship's energy (given as
-<quote>Energy</quote> in the status) and the shields.  Thee word
+<quote>Energy</quote> in the status) and the shields.  The word
 <quote>TRANSFER</quote> may be abbreviated <quote>T</quote>.  The
 ammount of energy to transfer is the number of units of energy you
 wish to take from the ship's energy and put into the shields.  If you
@@ -1010,15 +1043,15 @@ Klingons.</para>
 <sect1><title>Call Starbase for Help</title>
 
 <literallayout>
-Mnemonic:  CALL
+Mnemonic:  MAYDAY
 (No abbreviation)
 </literallayout>
 
 <para>[Originally, this command was called <quote>HELP</quote>, but
-these days it might be misinterpreted as built-in
-documentation!]</para>
+these days that might be misconstrued as an attempt to browae built-in
+documentation! In some later versions it was CALL.]</para>
 
-<para>When you get into serious trouble, you may call starbase for
+<para>When you get into serious trouble, you may call starbase for
 help.  Starbases have a device called a <quote>long-range transporter
 beam</quote> which they can use to teleport you to base.  This works
 by dematerializing your starship at its current position and
@@ -1218,7 +1251,7 @@ in the galaxy.  Since planets do not show up on long-range scans, the
 only way to obtain this information is with the <quote>SENSORS</quote> command.</para>
 
 </sect1>
-<sect1><title>Freeze</title>
+<sect1 id="freeze"><title>Freeze</title>
 
 <literallayout> 
 Mnemonic:  FREEZE
@@ -1400,9 +1433,9 @@ inform you how long the base under attack can last.  Since the
 <quote>Super-Commander</quote> is more powerful than an ordinary
 commander, he can destroy a base more quickly.</para>
 
-<para>The <quote>Super-Commander</quote> travels around the galaxy at a speed of about
-warp 6 or 7.  His movement is strictly time based; the more time
-passes, the further he can go.</para>
+<para>The <quote>Super-Commander</quote> travels around the galaxy at
+a speed of about warp 6 or 7.  His movement is strictly time based;
+the more time passes, the further he can go.</para>
 
 <para>Scattered through the galaxy are certain zones of control,
 collectively designated the <quote>Romulan Neutral Zone</quote>.  Any
@@ -1495,12 +1528,6 @@ print the certificate to a file, import it into your word processor,
 selecting Courier 8pt font, and then print in <quote>landscape
 orientation</quote>.</para>
 
-<para>You should probably start out at the novice level, even if you are
-already familiar with one of the other versions of the Star Trek
-game&mdash;but, of course, the level of game you play is up to you.  If
-you want to start at the Expert level, go ahead.  It's your funeral.
-The emeritus game is strictly for masochists.</para>
-
 </chapter>
 <chapter><title>Handy Reference Page</title>
 
@@ -1509,7 +1536,6 @@ The emeritus game is strictly for masochists.</para>
  ------    ------------                           -----------
  ABANDON   ABANDON                                shuttle craft
  C         CHART                                  (none)
- CALL      CALL (for help)                        subspace radio
  CO        COMPUTER                               computer
  CR        CRYSTALS                               (none)
  DA        DAMAGES                                (none)
@@ -1521,6 +1547,7 @@ The emeritus game is strictly for masochists.</para>
  I         IMPULSE &lt;MANUAL&gt; &lt;DISPLACEMENT&gt;        impulse engines
            IMPULSE AUTOMATIC &lt;DESTINATION&gt;        impulse engines and computer
  L         LRSCAN                                 long-range sensors
+ MAYDAY    MAYDAY (for help)                      subspace radio
  MI        MINE                                   (none)
  M         MOVE &lt;MANUAL&gt; &lt;DISPLACEMENT&gt;           warp engines
            MOVE AUTOMATIC &lt;DESTINATION&gt;           warp engines and computer
@@ -1572,9 +1599,90 @@ Impulse engines require 20 units to warm up, plus 100 units per
 </chapter>
 <chapter><title>Game History and Modifications</title>
 
+<sect1><title>Origins</title>
+
+<para>The original Star Trek seems to have been written by Mike
+Mayfield at the beginning of the 1970s.  His first version was in
+BASIC for a Sigma 7 in 1971; in 1972 he rewrote it in Hewlett Packard
+BASIC. The source is <ulink
+url="&sst-site;www/historic/mayfield.basic">available</ulink> on the
+SST2K website. In January 1975 it became part of the DECUS library
+under the name <ulink
+url='http://www.trailing-edge.com/~shoppa/decus/110174.html'>SPACWR</ulink>.</para>
+
+<para>While some people claim to have recollections of playing Trek
+games in the late 1960s, the earlier ones seem actually to have been
+variants of
+<ulink url='http://en.wikipedia.org/wiki/Spacewar!'>
+SPACEWAR</ulink>, the earlier space-combat game on the
+PDP-1. Mayfield <ulink
+url='http://www3.sympatico.ca/maury/games/space/star_trek.html'>wrote
+in 2000</ulink> that he invented the Trek-style galactic grid, and the
+evidence seems to back that up.  Some of the confusion probably stems 
+from the fact that Mayfield's original and several early descendants 
+were distributed under the name SPACWR.</para>
+
+<para>Many different versions radiated from Mayfield's original; most
+og the ones in BASIC are descended from a SPACWR version that David
+Ahl published in <citetitle>101 BASIC Computer Games</citetitle>,
+July 1973. This was a port of Mayfield's version obtained from the HP
+Contributed Programs library.  </para>
+
+<para>Our SST2K is descended from a Taurus BASIC program by Grady
+Hicks dated 5 April 1973. This does not appear to have been derived
+from Ahl's SPACWR. The header says "GENERAL IDEA STOLEN FROM
+PENN. U.", and the game has several features not present in SPACEWR:
+notably, the Death Ray, ramming, and the Klingon summons to surrender.
+And, of course, it predates Ahl's book.  The source is <ulink
+url="&sst-site;www/historic/UT-Trek.basic">available</ulink> on the
+SST2K website.</para>
+
+<para>Dave Matuszek, Paul Reynolds et. al. at UT Austin played the
+Hicks version on a CDC6600, but disliked the long load time and
+extreme slowness of the BASIC program. (David Matuszek notes that the
+Hicks version he played had a habit of throwing long
+quotes from Marcus Aurelius at the users, a feature he found
+intolerable on a TTY at 110 baud.  It must, therefore, have been
+rather longer than  the one we have.)  The Austin crew proceeded to
+write their own Trek game, loosely based on the Hicks version, in
+CDC6600 FORTRAN.  At that time, it was just called "Star Trek"; the
+"Super" was added by later developers. In the rest of this history
+we'll call it the "UT FORTRAN" version.</para>
+
+<para>At the time the UT FORTRAN source was last translated to C it emitted
+the message "Latest update-21 Sept 78".  Thus, it actually predated
+(and may have influenced) the best-known BASIC version, the "Super
+Star Trek" published by David Ahl in his November 1978 sequel
+<citetitle>BASIC Computer Games</citetitle>.</para>
+
+<para>This 1978 "Super Star Trek" had been reworked by Robert Leedom and
+friends from (according to Leedom) Mayfield's HP port. There is
+internal evidence to suggest that at least some features of Leedom's
+SST may have derived from the UT FORTRAN version.  In particular, Dave
+Matuszek recalls implementing command words to replace the original
+numeric command codes, a feature Leedom's SST also had but the
+1973 and 1975 SPACWRs did not.</para>
+
+<para>One signature trait of the UT FORTRAN game and its descendants
+is that the sectors are 10x10 (rather than the 8x8 in Mike Mayfield's
+1972 original and its BASIC descendants).  The UT FORTRAN version also
+preserves the original numbered quadrants rather than the
+astronomically-named quadrants introduced in Ahl's SST and its
+descendants.</para>
+
+<!-- Dave thinks his Fortran Star Trek used the clockface for quadrant -->
+<!-- navigation. -->
+
+<para>Eric Allman's BSD Trek game is one of these, also descended from
+the UT FORTRAN version via translation to C.  However, the mainline version
+(now SST2K) has had a lot more stuff folded into it over the years
+&mdash; deep space probes, dilithium mining, the Tholian Web, and so
+forth.</para>
+</sect1>
+
 <sect1><title>Tom Almy's story</title>
 
-<para>Back in (about) 1977 I got a copy of this Super Star Trek game for
+<para>Back in (about) 1977 I got a copy of the Super Star Trek game for
 the CDC 6600 mainframe computer. Someone had converted it to PDP-11
 Fortran but couldn't get it to run because of its size. I modified
 the program to use overlays and managed to shoehorn it in on the 56k
@@ -1641,7 +1749,7 @@ so I implemented it based on its description.</para>
 <sect1><title>Stas Sergeev's story</title>
 
 <para>I started from an older Tom Almy version and added features I had
-seen in mainframe variants of the game, I wrote a screen-oriented 
+seen in other mainframe variants of the game, I wrote a screen-oriented 
 interface for it based on the curses library.</para>
 
 <itemizedlist>
@@ -1664,7 +1772,7 @@ fired upon.</para>
 </listitem>
 <listitem>
 <para>Probe target you enter is now the destination quadrant. Before I don't 
-      remember what it was, but it was something I had difficulty using)</para>
+      remember what it was, but it was something I had difficulty using.</para>
 </listitem>
 <listitem>
 <para>Secret password is now autogenerated.</para>
@@ -1698,41 +1806,31 @@ better anyway.</para>
 </listitem>
 </itemizedlist>
 
+<para>My changes got merged into SST2K in 2005, and I work on it now.</para>
+
 </sect1>
 <sect1><title>Eric Raymond's story</title>
 
-<para>I played the FORTRAN version of this game in the mid-1970s on a
+<para>I played the FORTRAN version of this game in the late 1970s on a
 DEC minicomputer.  In the late 1980s Dave Matuszek and I became
 friends; I was vaguely aware that he had had something to do with the
 original Star Trek game.  In October 2004, sitting in Dave's living
 room, we got to talking about the game and I realized it would make a
 great exhibit for the <ulink
-url='http://www.catb.org/retro/'>Retrocomputing Museum</ulink>.</para>
+url='&retro;'>Retrocomputing Museum</ulink>.</para>
 
 <para>A few quick web searches later we found Tom Almy's page.  We
 downloaded his code and Dave verified that that it was a direct
 descendent of UT Super Star Trek &mdash; even though it had been translated
 to C, he was able to recognize names and techniques from the FORTRAN
-version.</para>
-
-<para>Thus, this game is a cousin of Eric Allman's BSD Trek game, which is
-also derived from UT Super Star Trek.  However, this one has had a lot
-more stuff folded into it over the years &mdash; deep space probes,
-dilithium mining, the Tholian Web, and so forth.</para>
+version he co-wrote.</para>
 
-<para>One signature trait of this group of variants is that the sectors are
-10x10 rather than the 8x8 in Mike Mayfield's 1972 original and its
-BASIC descendants) Also, you set courses and firing directions with
-rectangular rather than polar coordinates.  It also preserves the
-original numbered quadrants rather than the astronomically-named 
-quadrants introduced into many BASIC versions.</para>
-
-<para>This game is now an open-source project; see the <ulink
+<para>This game became an open-source project; see the <ulink
 url='http://developer.berlios.de/projects/sst/'>project
 site</ulink>.</para>
 
-<para>After I launched the Berlios project, Stas Sergeev contacted me
-me.  We worked together to merge in his changes.</para>
+<para>After I launched the Berlios project, Stas Sergeev contacted me.
+We worked together to merge in his changes.</para>
 
 <para>Modifications I've made:</para>
 
@@ -1766,11 +1864,18 @@ I made the internal pager work, and in the process got rid of a number
 of platform dependencies in the code.
 </para></listitem>
 <listitem><para>
-The HELP/CALL/SOS command is now MAYDAY.  SOS and CALL are still accepted.
+The HELP/CALL/SOS command is now MAYDAY.
 </para></listitem>
 <listitem><para>
 Status report now indicates if dilithium crystals are on board.
 </para></listitem>
+<listitem><para>
+At Dave's prompting, restored the Space Thingy's original elusive behavior.
+</para></listitem>
+<listitem><para>
+Clean separation of game engine from the UI code, improving Stas
+Sergeev's excellent work on the curses interface.
+</para></listitem>
 </itemizedlist>
 
 <para>Here are some good pages on the history of Star Trek games:</para>