Difference between revisions of "MULTI-TREK"

From Computer History Wiki
Jump to: navigation, search
m (How to run MTREK)
Line 1: Line 1:
 +
While searching the Internet for information on the [[VAX]] [[TREK7]] game, I stumbled over another Star-Trek game called "MULTI-TREK" or just "MTREK" in the [[DECUS]] collection of [https://www.digiater.nl/openvms/decus/VMS software tapes].
 +
 
== Introduction to MTREK ==
 
== Introduction to MTREK ==
  

Revision as of 21:30, 28 April 2023

While searching the Internet for information on the VAX TREK7 game, I stumbled over another Star-Trek game called "MULTI-TREK" or just "MTREK" in the DECUS collection of software tapes.

Introduction to MTREK

File "aareadme.doc" from the MTREK distro:

     MULTI-TREK is a game similar to traditional Star-Trek  games
except  that it involves several players (currently up to 8), who
play  against  each  other  in  real  time  rather  than  against
imaginary   Klingons,   Romulans  or  whatever.   The  MULTI-TREK
universe consists of a 100 by 100 matrix, of which an approximate
20  by 20 matrix of each player's immediate area is displayed and
continuously  updated  at   their   terminal.    MULTI-TREK   was
originally submitted to the New Orleans RSX/IAS sig tape, then to
the 1979 San Diego RSX/IAS sig tape with the  addition  of  robot
ships.   Since  then  it  has  been  recoded  in  RATFIV  and has
significant  enhancements  and  improvements,  most  notably  the
addition  of energy nets, an improved screen display, much better
input-output  (any  terminal  with  clear   screen   and   cursor
positioning  may  be used at speeds from 1200 baud on up), use of
default ship and direction  with  most  commands  ("L"  sets  the
default  direction),  more  competitive  scoring,  smarter  robot
ships,reverse polish command sequences  (fewer  keystrokes),  and
fewer  bugs.   This version is being submitted to the Spring 1982
VAX tapes and features the rpn command sequences and  fades  that
don't  exactly  show  up on radar locates.  Complete instructions
for starting and playing MULTI-TREK are in the file MTREK.DOC.

     The game consists of a driver task (MTREKD), a  player  task
(MTREK)  for  each  terminal, and a shared global common area for
inter-task communication.  This version runs on VAX VMS, however,
it  should  run  under  any  system  with shared global areas and
rudimentary task switching or  time-sharing.   Real-time  systems
without  time-sharing  may have to play with priorities to insure
that the driver task  gets  sufficient  CPU  time  and  that  all
players get an equal amount of time.

     MULTI-TREK was written  with  a  structured  Fortran  called
RATFIV.   The IAS version contains all of the Fortran produced by
RATFIV, as well as the RATFIV source (file type .RAT).   The  VAX
VMS  version  does not include the .FOR files, however the RATFIV
compiler is included on both distribution tapes.

     MTREK will work properly with any terminal with clear screen
and  cursor  positioning.   The  source  code  is set up to drive
ADM3-A's or VT100's and  VT52's.   If  you  are  using  different
terminals,  you  should modify the file "TERMINAL.RAT" (you could
modify "TERMINAL.FTN")  to  drive  your  terminal.   Modification
should  be  straight-forward as the code is commented on where to
change it.

To build MTREK, do

@BUILD

     The VAX VMS version  places  the  common  area,  LEDFOR,  on
SYS$SHARE  and installs it /WRITE/SHARE.  It also puts MTREK.EXE,
the player task, and MTREKD.EXE, the universe  manager  task,  on
SYS$SYSTEM,   and   installs   MTREK.EXE  with  DETACH  and  ACNT
privileges, so that anyone can start  up  MTREKD  as  a  detached
process (only one copy of MTREKD runs at a time, however).

     After building MTREK, first run MTREKINI.  Then, on VAX  VMS
systems,  say  MCR  MTREK  and  you  are off and running.  On IAS
systems, the universe manager MTREKD  must  be  started  by  hand
before  MTREK is run.  You can run MTREKD on a dedicated terminal
or install it and run it /REAL.

Status Quo

How to run MTREK on a VAX

MTREK Manual

File "mtrek.doc" from the MTREK distro:

 1.0  INTRODUCTION

      This game was written as a tool to test the use of shared  global
 areas with time-shared programs.  The game consists of five parts, the
 shared global area,  the  driver  task  (MTREKD)  which  controls  the
 universe,  the  MTREK  task  which  interfaces  with  the players, the
 initialization program (MTREKINI), and the robot ship program (ROBOT).

      The source code for the game is intended to  be  public  so  that
 enhancements  can  be  added  by  any  interested party.  Those making
 additions should add their names to those listed  as  contributors  at
 the start of the MTREKD program.

                                  NOTE

          MTREK was originally developed under IAS but  is  written
     almost entirely in RATFOR and should be readily convertible to
     RSX-11M or, for that  matter,  to  any  system  that  supports
     shared global areas and time-shared tasks or some equivalent.

          MTREK was originally written at Boeing Computer  Services
     in  Seattle,  Washington  by  Don Ledford, John Lutch, and Ray
     French.  The current game is an enhanced version developed  at
     The  Institute  For  Cancer  Research in Philadelphia, Pa.  by
     Bill Wood, Bill Cael, and Bob Stodola.


 Good luck, and don't get discouraged as the  game  requires  a  little
 practice!


 2.0  PLAYING MULTI-TREK

      The game is very similar to the traditional Star-Trek  game  with
 the  following  exceptions.   First, the game involves several players
 (1-8), each of whom has his own terminal and  starship.   Second,  the
 game  runs  in  real  time  as  far as the players are concerned.  For
 example, if you are going warp 8 you will continue to move  regardless
 of  your  activity  at  the  terminal  (unless  you are destroyed, hit
 something, run out of  energy,  or  change  your  warp  speed).   Each
 player's  status  and position as well as the scores of all players is
 displayed and continuously updated at each  player's  terminal.   (The
 update  rate is 2.5 times per second, but the source code is commented
 on where to change it should you wish to do so.) Third, at the present
 time  there  are  no  Klingons  or Romulans to shoot down, instead you
 shoot (or at least attempt to shoot) the other players.

      The universe consists of a 100 by 100 matrix which  wraps  around
 itself.   Therefore if you move off one end of the universe you appear
 on the other end.  (This is true of phasers and torpedoes also.)

 The universe is made up of the following items:

 1.  " "      Empty space

 2.  "-"      Universe boundary

 3.  "*"      Star

 4.  "B"      Star-base (ram it to dock and thereby refuel)

 5.  "H"      Hyperspace point (described below)

 6.  "R"      Random hyperspace point (also described below)

 7.  "+"      Torpedo

 8.  "^"      Homing torpedo (seeker)

 9.  "#"      Black hole will pursue nearest player

10.  "@"      Anti-matter pod

11.  "%"      Energy net

12.  "1"-"8"  Player's ships


 2.1  Hyperspace Ports

      When a hyperspace port is hit by a ship the ship is teleported to
 a  new  location in the universe.  The "H" type of hyperspace port can
 be used to go to a set location whereas the "R" type of port  produces
 a  random  jump.  The "H" ports are located at fixed locations;  these
 are as follows:

                  ^PORT ^NUMBER    ^X ^COORD    ^Y ^COORD
                  -----------    -------    -------

                       1            20         75
                       2            50         70
                       3            80         75
                       4            20         25
                       5            50         30
                       6            80         25
  
 ^THE NETWORK OF PORTS LOOKS LIKE THIS:
  
                  1                                    3
                                    2
   
  
      
  
                                    5
                  4                                    6
  

      By using the "H" command a player can  set  the  port  number  he
 wishes  to appear beside the next time he goes into hyperspace through
 an "H" type port.  For example, if a player used the  "H"  command  to
 set  his  hyperspace  setting  to  4, the next time he ran into an "H"
 character he would appear near coordinates 20,25.

      A player's anti-matter pod can travel through  hyper-space  also;
 upon  re-emergence  in  the universe, it blows up.  Pods going through
 random hyperspace reappear randomly;  those  going  through  "H"  type
 ports reappear at the pod owner's current hyperspace jump point.


 2.2  Scoring

      The current scores of all players are displayed on the screen.  A
 '*'  beside a score indicates an active player.  The following actions
 result in score changes:

 1.  Torpedo hit on enemy vessel:     +500

 2.  Homer hit on enemy vessel:       +300

 3.  Phaser hit on enemy vessel:      +(between 70 and 200 depending on
                                        distance)

 4.  Pod explosion:                   +(between 300 and 1500  depending
                                        on distance)

 5.  Torpedo hit on base:             -200

 6.  Getting destroyed:               -1000


 2.3  Energy Consumption

 1.  Shooting phasers:  -50

 2.  Warp:              -.5 * WARP SPEED per time interval

 3.  Send message:      -10

 4.  Collide with star: -200

 5.  Collide with ship: -100

 6.  Cloaking:          -25 per time interval (default)

 7.  Energy net:        -75 per net unit constructed (default)

 8.  Tractor beam:      -100 per time interval (default)

     Energy loss due to weapon hit is a function  of  shield  strength
 and weapon energy.


 2.4  Calculations

 The following formula are used:

 1.  Phaser hit energy:

         ENERGY=900./(4. + DISTANCE)

 2.  Torpedo hit energy:

         ENERGY=500.

 3.  Shield protection:

         SHIELD ABSORBTION FACTOR=SHIELD ENERGY/1000.
             (^WITH A MAXIMUM VALUE OF 1.)
         SHIELD DIRECTION FACTOR=
              (.5 + ABS(SHIP'S DIREC - WEAPON'S DIREC)/360)
         SHIELD FACTOR = SHIELD DIRECTION FACTOR *
                              SHIELD ABSORBTION FACTOR
      
         SHIELD ENERGY =
              SHIELD ENERGY - SHIELD FACTOR * ENERGY OF HIT
         ENERGY OF SHIP = ENERGY OF SHIP -
              (1.2 - SHIELD FACTOR) * ENERGY OF HIT * 6

 4.  Tractor beam pull:

         8./SQRT(MAX(1., DISTANCE BETWEEN SHIPS-6.))

      Anti-matter causes both damage to the scan,  and  results  in  an
 energy hit.  Both of these effects are energy dependent.


 2.5  MTREK commands

      All commands consist of one character, and most of  them  can  be
 preeceded  by a numeric argument.  This argument can be input with the
 command character, or can be a default ship or direction.   Generally,
 typing  a  new  ship  number  or direction changes the default ship or
 direction, however there are exceptions.  In addition, the  "L"  (long
 range  scan) command changes the default direction to the direction of
 the scanned ship, which is convenient for firing at the scanned  ship.
 See  below  for  other  commands  which change the defaults.  To use a
 default value, simply type the command letter.

 1.  Help
         "?"    Prints a summary of all commands.

 2.  Shields
         "S"    Raise or lower shields.  This may  be  preceeded  by  a
                real number (+ or -).  Your default shield change value
                is reset every time you set positive shields, and  this
                default  value  may  be  used  by  just  typing the "S"
                command.  1000 units is the most that will do any good.
                But you may want a little reserve.

 3.  Reset
         "R"    Clears the screen and redraws the entire display.

 4.  Torpedoes
         "T"    Fire torpedoes.  A direction  may  be  specified.   "T"
                fires  in the default direction, a number fires in that
                direction and resets the default.   Torpedoes  move  at
                warp 10, and destroy anti-matter pods.

 5.  Phasers
         "P"    Fire phasers.  A direction may be specified.  "P" fires
                in  the  default  direction,  A  number  fires  in that
                direction  and  resets  the   default.    Phasers   are
                instantaneous,  have a range of 10 squares, and shoot a
                band 3 squares wide.  They will not  destroy  torpedoes
                (except homers).

 6.  Locate
         "L"    Long range scan for another player.   The  "L"  command
                sets the default direction to that of the scanned ship.
                It may be precceded by a ship number  as  an  argument.
                "L" locates a default ship.  If a ship number is given,
                the default ship is reset to that ship.

 7.  Message
         "M"    Send a message to another  player  on  subspace  radio.
                "M"  sends  to the default ship, a ship number sends to
                that ship.   A  ship  number  of  zero  broadcasts  the
                message to all ships.  The default ship is not reset.

 8.  Warp
         "W"    Set warp speed 0-8.

 9.  Course
         "C"    Set course 0-12 (clock face).   This  does  not  affect
                your  warp  speed  or  default direction.  However, the
                default direction may be used to set the  course.   All
                directions are to be specified in "clock face" numbers.
                For example:

                                     0.  is up

                          9.  is left           3.  is right

                                     6.  is down

                7.5 is toward the lower left corner, etc.

10.  Quit
         "Q"    Quit.

11.  Hyperspace
         "H"    Set hyperspace jump point 1 through 6.

12.  Cloak on
         "F"    Fade away.  The cloaking device is a continuous  energy
                drain  when  activated.   A  cloaked  ship cannot move.
                Typeing "F" will toggle this mode.

13.  Cloak off
         "A"    Appear.

14.  Energy net on/off
         "E"    Start/stop  energy  net  construction.    Energy   nets
                provide  a "wall" which other ships will bounce off of,
                however your ship travels instantaneously through  your
                energy  nets.   Torpedoes  may be used to destroy nets.
                The black hole is blocked  by  them.   Phasers  do  not
                penetrate nets.

15.  Seeking torpedo launch
         "K"    If you specify a ship number to home in on the  default
                will be changed.  If none is specified then the default
                ship is located.  Homing torpedoes can not be fired  at
                faded  ships.   Homing  torpedoes  destroy  anti-matter
                pods.  Seeking torpedoes can be shot down with  phasers
                (at least sometimes).

16.  Anti-matter launch
         "Z"    If a direction is specified the  default  direction  is
                reset.   Pods move at warp 5.  "Z" fires in the default
                direction, When an anti-matter pod hits  a  hyper-space
                port,  it travels through it to your current hyperspace
                jump point and blows  up.   Pods  also  travel  through
                random  hyper-space ports to a random location and blow
                up.

17.  Anti-matter freeze
         "N"    Stop movement of anti-matter device.  (It will become a
                static mine.)

18.  Anti-matter detonate
         "X"    Detonate anti matter pod.  This explosion  destroys  an
                entire  area,  except  for bases and hyperspace points.
                The pattern of the explosion is as below.
                 
                                        X 
                                    X   X   X 
                                      X X X
                                  X X X X X X X 
                                      X X X 
                                    X   X   X
                                        X
                 
                Ships within 4 of an exploding pod lose some energy and
                have  their  vision partially obscured.  The black hole
                is randomly relocated when caught in a pod explosion.

19.  Tractor beams
         "B"    Set tractor beam target ship (1-8).  0 to stop  tractor
                beam.   Tractor  beams are used to pull your opponent's
                ship  towards  you.   The  closer  the  ships  are  the
                stronger  the  pull  of  the tractor beam.  The default
                ship is reset.

20.  Verbose/Non-verbose mode
         "V"    Flip on/off verbose mode.  In  non-verbose  mode,  only
                the first letter of each word is printed.  For example,

                     + TORPEDO HIT ALIEN!

                becomes

                     +THA

                This is sometimes useful in the heat  of  battle  on  a
                slow (1200 baud) terminal.

21.  Flush type-ahead buffer
         " "    The game keeps an internal typeahead buffer of up to 20
                characters.  Typeing " " will flush this buffer.


 3.0  STARTING THE GAME

      If you are starting a new game,  first  initialize  the  universe
 using MTREKINI:

      $ RUN MTREKINI

 It will ask a series of set up  questions  (defaults  are  invoked  by
 <CR>):

 1.  Any random integer between -32k and +32k (default = 0).

 2.  A star density between 2 and 3 is good (default = 2.0).

 3.  About 20 to 25 star-bases is ok (default = 20).

 4.  Usually 5-10 random jump points (default = 6).

 5.  A cloaking energy drain of 20 to 40 (default = 25).

 6.  Net construction energy drain of 0 to 2000 (default = 75).

 7.  Tractor beam energy drain of 0 to 2000 (default = 100).

 8.  Black hole speed of 2.  to 5.  (default = 4.5).


 3.1  Player Initiation

      Several crt terminals are required to play the game.  The  driver
 program,  MTREKD, may be started automatically on your system.  (It is
 at ICR.) If not, it must be started up prior to  playing.   Then  each
 player should issue the following command at his terminal:

      $ RUN MTREK

 A list of unoccupied ships will be displayed, so choose an  unoccupied
 ship  and  you  are  ready  to  play.   It is possible for two or more
 players to control the same ship by selecting an occupied ship,  e.g.,
 one  player can control navigation and the other weapons.  Players may
 enter and leave the game at any time.


 3.2  Robot Ships

      In addition to playing against human opponents you can  turn  the
 unused  ships  over to computer control.  This is done by starting the
 ROBOT program.  You can choose the ships  to  be  controlled  and  the
 capability of the ships' robot skippers.

      Each running ROBOT program can control several ships  which  will
 act  as  a team.  If more than one ROBOT program is started then their
 ships will fight with each other.  Robot ships are  started  with  the
 command:

      $ RUN ROBOT

 A list of unoccupied ships will be displayed.  Enter the number(s)  of
 the ship(s) to be under robot control.  When the robot "team" has been
 selected, enter <CR> and the ROBOT program will ask several  questions
 to  set  up  the  ability  of  the  robot  skippers (as with MTREKINI,
 defaults are invoked by <CR>):

 1.  Maximum speed of robot ships (default = warp 8).

 2.  Robot reaction time (default = 1.5).

 3.  Amount of phaser fire (default = 5).

 4.  Degree of inaccuracy (default = 0 degrees).


 4.0  TERMINATING THE GAME

      It is important that the last MTREK players clean up  the  system
 before  they  leave.   This  is  done  by issuing the following set of
 commands:

 1.  Terminate each MTREK program by entering the "Q" command.

 2.  If you are running any ROBOT programs abort each one as follows:

          <CNTRL> C

 Note that the universe manager, MTREKD, stops running about 30 seconds
 after everyone quits playing.


 Now mop up the blood, sweat, and tears;  logout;  and go home.

External links

External links

  • tbd