home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 1: Collection A / 17Bit_Collection_A.iso / files / 23.dms / 23.adf / Empire.doc < prev    next >
Text File  |  1988-07-25  |  45KB  |  1,097 lines

  1. What Empire is All About
  2.  
  3. Empire is a fairly rich simulation of international politics, economics and
  4. war. It is played over a period of a couple of months by 2 or more people.
  5. The Empire world consists of a toroidal grid of sectors consisting of
  6. regular land, mountains and water. Players govern countries, which start
  7. out as a pair of adjacent sectors and soon spread into large areas
  8. requiring much management and protection. Various sector types can be
  9. created which build ships, bridges, guns, shells, airplanes, and which make
  10. medical and technological breakthroughs. Others are things like radar
  11. stations, weather stations, fortresses, highways, warehouses, etc. A
  12. typical Empire game is only over when just one country remains. A special
  13. country, the Deity, is available, which has godlike powers to modify
  14. sectors, ships, etc. The Deity is normally run by someone not playing
  15. another country and has the responsibility of fixing up any problems which
  16. occur.
  17.  
  18.  
  19. Running This Version of Empire
  20.  
  21. ****** Daily time is vital to Empire. The system time MUST be set *******
  22. ****** consistently or the game will not be playable.          *******
  23.  
  24. ****** Make sure the disk you boot from specifies an AmigaDos stack *******
  25. ****** size of at least 8000.                        *******
  26.  
  27. The first step is to create the world. Set up an empty disk for the Empire
  28. data files. Pick the size of the world that you want. The sizes available
  29. are:
  30.  
  31.     16 x 16 - good for 2 players
  32.     32 x 32 - good for 3 - 6 players
  33.     64 x 64 - good for 7 - 15 players
  34.     128 x 128 - for the truly adventurous (probably needs a hard disk)
  35.  
  36. Run 'EmpCre' from your empty disk, giving it the appropriate 'par' file as
  37. input. E.g. to create a 32 x 32 world (the most common size), you would
  38. type:
  39.  
  40.     empcre <par32
  41.  
  42. There will be a lot of output as EmpCre attempts to create a suitable
  43. world. It may take some time. It is possible that the random numbers were
  44. such that the creation failed. This is not fatal, just try again. The
  45. limit on attempts is there to prevent infinite loops when the parameters
  46. selected (see 'EmpCre.doc') are such that EmpCre can't manage the job.
  47.  
  48. The Empire program itself is quite large, so the best way to run it is to
  49. make a CLI window for it and leave it running all the time. User's can run
  50. their countries from the normal Amiga keyboard, or can connect via the
  51. serial port (over a modem) at 300, 1200, or 2400 baud. Either 8 bits no
  52. parity or 7 bits even parity are accepted. Hit RETURN's to get your parity
  53. recognized and to start things up. A couple of special commands allow the
  54. remote user and the owner of the system to communicate. The 'message'
  55. command will ask for a single line of text and will write this to the
  56. Amiga's screen. The system owner can enter one of four things when Empire
  57. is running. 'play' will allow the local user to enter the game proper.
  58. 'QUIT' will cause Empire to terminate, 'message', entered when a remote
  59. user is connected, will send a message to the remote user after they next
  60. complete a command, and 'bump' will add one minute of connect time to the
  61. remote user's timer. This latter is to compensate for the connect time used
  62. up in receiving and replying to a message from the local user. If 'play' is
  63. entered when a remote user is active, then when that remote user logs out,
  64. Empire will start the login sequence for the local user. If 'QUIT' is
  65. entered when a remote user is active, the remote user will be told that the
  66. system owner wants the system, and Empire will exit when the remote user
  67. logs out.
  68.  
  69. The previous settings of the serial driver are saved when Empire starts up
  70. and are restored when Empire exits. Empire uses the DTR signal to tell the
  71. modem to accept calls and expects it to signal CD when a connection is
  72. made and to remove it when the connection is broken. Empire will drop DTR
  73. when the remote user exits. If the parameter 'private' is given when Empire
  74. is started up, the serial port will not be activated, and the local user
  75. will go immediately to the normal Empire login. Note that you should set
  76. your modem to be totally quiet when a connection is made, since the first
  77. characters received after CD is signalled are used to attempt to determine
  78. the incoming call's baud rate and parity setting.
  79.  
  80. On some older Amiga 1000's (including mine), the serial device doesn't drop
  81. the DTR line when it is closed. This results in the modem continuing to
  82. accept incoming calls. To get around this, Empire pokes directly at the
  83. appropriate hardware register and drops DTR when it exits. Also, when a
  84. remote user logs out, Empire similarly forces DTR low for a few seconds to
  85. ensure a disconnect between the modems.
  86.  
  87. Empire opens the serial port with control-S/control-Q handshaking. This
  88. means that the remote user can suspend output by typing a control-S, and
  89. restart it with a control-Q. It occasionally happens that line noise
  90. accidentally generates a control-S - if a remote user sees output suddenly
  91. stop, typing a control-Q can often restart it. Note that the Amiga serial
  92. device does not appear to clear the suspended condition when the connection
  93. is terminated, thus the suspension can last until the next connection. THIS
  94. WILL TOTALLY LOCK UP EMPIRE. The matching control-Q to free up the works
  95. must be at the same baud rate and parity as the one that locked it up.
  96. Also, it appears that a break condition received on the serial port will
  97. unlock the suspension, regardless of baud rate/parity setting. Good
  98. solutions to this problem require the use of multiple tasks, doing things
  99. like timing out after a given period of no activity, along with using the
  100. SendIO/CheckIO pair to do I/O instead of DoIO.
  101.  
  102.  
  103. Getting Started
  104.  
  105. When a country first starts out, it will have 2 adjacent sectors, both
  106. designated as sanctuaries. Sanctuaries cannot be attacked or fired upon by
  107. other countries, so the late starter is protected from aggressive
  108. neighbours. Each sanctuary will have 64 civilians, 64 military, 64 tons
  109. of ore, 100 mobility units, and will be 100 percent efficient. The first
  110. command will usually be
  111.  
  112.     map -1:1,-1:2
  113.  
  114. to produce a small map of the sectors around the sanctuaries. Next will
  115. come 'move' commands to move civilians and/or military into the
  116. neighbouring sectors to claim them. Census commands will then show the
  117. mineral and gold deposits in the land sectors; further map and move
  118. commands will explore and claim more territory; sectors will be designated
  119. as banks, harbours, mines, gold mines, etc. This first phase of the game is
  120. one of exploration, development, and setting up management (delivery
  121. routes). Soon, however, two countries will meet, and the possibility of
  122. conflict will arise. Since much of the fun of your first Empire game is
  123. figuring out what you should be doing before everyone else does, I won't
  124. say any more than that. Instead I'll just summarize the concepts and
  125. commands.
  126.  
  127.  
  128. Concepts
  129.  
  130. An efficient government (I haven't seen one of those for a long time!)
  131. doesn't waste time or effort. To encourage this, Empire has the concept of
  132. Bureaucracy Time Units (BTU's) which are required to execute many commands.
  133. The game prompt consists of '[', followed by the number of remaining BTUs,
  134. a ':', the number of remaining minutes of time for the day, ']' and the
  135. prompt " Command: ". As you play, keep an eye on the two numbers, and make
  136. sure you get the important things done. BTUs are created by your active
  137. capital in accordance with the number of civilians there and the efficiency
  138. of the capital. Connect time is reset at or after midnight.
  139.  
  140. Money is needed to build ships and bridge spans, for upkeep of various
  141. types of sectors, for military supplies, etc. It can be earned as interest
  142. on gold bars at banks, by contracting production of appropriate sectors, by
  143. selling things to other players, or by making loans to other players.
  144.  
  145. Technology level controls your technology factor, which affects the range
  146. of guns, airplanes, ships, etc. Technology level is increased by the
  147. efforts of technology center sectors.
  148.  
  149. Research level, in combination with technology level, affects your
  150. likelihood of catching the plague. Research level is increased by the
  151. efforts of research institute sectors.
  152.  
  153. Both technology and research levels go up 1 for each 25 units of production
  154. available in the appropriate sectors. Both also decay away at the rate of
  155. 1% per day.
  156.  
  157.  
  158. Sector Types
  159.  
  160. . - sea
  161.     Ships can sail here, other land-based operations can't happen. You
  162.     can't own sea sectors.
  163. ^ - mountain
  164.     These are land sectors, but you can't designate them. They cost a LOT
  165.     of mobility to move onto.
  166. - - wilderness
  167.     Most of the usable world starts out this way. They are the default type
  168.     of land sector. They cost more to move onto.
  169. s - sanctuary
  170.     You start with 2 of these. They cannot be attacked. You can't designate
  171.     more.
  172. c - capital
  173.     Your active capital is the center of your coordinate system, and
  174.     supplies you with BTUs. Defend harder. Can do anti-aircraft fire.
  175. u - urban area
  176.     Ore => increased civilians, which are are bundled in units of 10.
  177. d - defense plant
  178.     Ore => production => guns.
  179. i - shell industry
  180.     Ore => production => shells.
  181. m - mine
  182.     Time => production => ore. Mineral deposits are not consumed.
  183. g - gold mine
  184.     Gold deposits => production => gold bars. Gold deposits are consumed.
  185. h - harbour
  186.     Ore => production => ships (via build command).
  187. w - warehouse
  188.     Ore, shells and guns stored in bundles of 10.
  189. * - airfield
  190.     Ore => production => airplanes. Can do anti-aircraft fire.
  191. t - technology center
  192.     Ore => production => technological breakthroughs.
  193. f - fortress
  194.     Can fire guns, defend other sectors. Fight harder. Anti-aircraft fire.
  195. r - research lab
  196.     Ore => production => medical breakthroughs.
  197. + - highway
  198.     100% highway costs nothing to move onto. Other countries can use
  199.     highways unless they are checkpointed.
  200. ) - radar station
  201.     Can see ships at sea and other sectors.
  202. ! - weather station
  203.     Used to predict and map weather.
  204. # - bridge head
  205.     Ore => production => bridge spans in orthogonal directions (via build
  206.     command).
  207. = - bridge spans
  208.     Like highways, but over water.
  209. b - bank
  210.     Collect interest on gold bars. Defend harder. Anti-aircraft fire.
  211. x - exchange
  212.     Used in international trade.
  213.  
  214.  
  215. Ship Types
  216.  
  217. NOTE: it is possible for the Deity to change these values.
  218.  
  219. type  name    cost sp vis rng civ mil  sh gun plns ore bars vrng
  220. ------------------------------------------------------------------
  221. p   PT boat      30 50   6  1     -   10  10   1   -   -    -    4
  222. s   submarine      70 25   1  2     -   25  25   2   -   -    -    3
  223. b   battleship     127 25  25  8     -  127 127   4   -   -    -    6
  224. d   destroyer      60 35  15  3     -   80  40   2   -   -    -    4
  225. f   freighter      80 20  20  -    127  -    127 127   -  127  127    3
  226. m   minesweeper   50 20  20  1     -   25  10   1   -   -    -    3
  227. t   tender     100 30  20  1     -  100 127  30   -   -    -    3
  228. c   carrier     127 25  25  2     -   60  40   2 127   -    -    4
  229.  
  230. cost - number of production units needed, also need cost * 9 dollars
  231. sp - speed factor - the smaller the better
  232. vis - how visible the ship is to radar and lookout
  233. rng - twice the maximum gun firing distance
  234. civ - number of civilians it can carry
  235. mil - number of military it can carry
  236. sh - number of shells it can carry
  237. gun - number of guns it can carry/fire (tender can fire one, freighter 0)
  238. plns - number of planes it can carry
  239. ore - number of tons of ore it can carry
  240. bars - number of gold bars it can carry
  241. vrng - how far it can see (radar and lookout) - subs are special
  242.  
  243. Submarines can launch torpedoes (the torpedo command) and have sonar to see
  244. other submarines. Destroyers can drop mines (mine command) and depth
  245. charges (via the drop command) and have sonar so they can see submarines.
  246. Minesweepers remove mines when they move into a sector. Tenders can
  247. resupply other ships at sea (the tend command). Carriers are like mobile
  248. airfields.
  249.  
  250. Ships must be at least 60% efficient before they can do anything. If they
  251. drop below 20% efficient (as a result of shelling, torpedoes, etc.) they
  252. will sink.
  253.  
  254.  
  255. Updating
  256.  
  257. This section is quite detailed. The details are provided so that those who
  258. want to run their country optimally can see what they need to see. Others
  259. (especially beginners) should just ignore this section until they have
  260. played for a while, at which point they should scan it to get a feel for
  261. how things happen.
  262.  
  263. The sector update algorithm is central to Empire. It is based on steady
  264. change over half-hour time units. It can be summarized as follows (values
  265. are either for the sector being updated or for the owner country of the
  266. sector; all calculations are integral):
  267.  
  268. NOTE: The Deity can change most of the magic numbers.
  269.  
  270.     proc makeProduction():
  271.     q := min(work * efficiency / 100, ore);
  272.     if <sector not contracted> then
  273.         if money > 0 then
  274.         q := min(q, 127 - production);
  275.         production := production + q;
  276.         fi;
  277.     else
  278.         q2 := q * priceInNickels / 20;
  279.         money := money + q2;
  280.     fi;
  281.     ore := ore - q;
  282.     corp;
  283.  
  284.     /* in an urban center, people are lazy, so every 10 counts as 1 here */
  285.     workForce := civilians + military / 5;
  286.     if lastUpdate = 0 or lastUpdate > CurrentTime then
  287.     lastUpdate := CurrentTime;
  288.     fi;
  289.     deltaTime := CurrentTime - lastUpdate;
  290.     if deltaTime > 256 then
  291.     deltaTime := 256;
  292.     fi;
  293.     work := deltaTime * workForce;
  294.     if work >= 100 and (<I own this sector> or work > 48 * 2 * 100) then
  295.     if weather <= -9 then
  296.         /* hurricane */
  297.         damageSector(random(21) + 70);
  298.     elif weather <= -8 then
  299.         /* no construction happens */
  300.     else
  301.         q := 0;
  302.         if weather <= -7 then
  303.         if money > 0 then
  304.             q := min(work / 200, 100 - efficiency);
  305.         fi;
  306.         mobility := min(127, mobility + deltaTime / 2);
  307.         else
  308.         if money > 0 then
  309.             q := min(work / 100, 100 - efficiency);
  310.         fi;
  311.         mobility := min(127, mobility + deltaTime);
  312.         fi;
  313.         efficiency := efficiency + q;
  314.         money := money - q;
  315.     fi;
  316.     /* civilian growth */
  317.     q := deltaTime * civilians;
  318.     if designation = <urban area> then
  319.         q := min(127, civilians + min(q / 100, ore)) - civilians;
  320.         civilians := civilians + q;
  321.         ore := ore - q;
  322.     elif designation = <bridge span> then
  323.         civilians := civilians - q / 400;
  324.     elif civilians > 31 and civilians < 97 then
  325.         civilians := min(127, civilians + q / 200);
  326.     else
  327.         civilians := min(127, civilians + q / 400);
  328.     fi;
  329.     /* mobility increase */
  330.     mobility := min(127, mobility + deltaTime);
  331.     lastUpdate := lastUpdate + deltaTime;    /* NOTE THIS!!! */
  332.     /* military supplies */
  333.     q := military / 32 * deltaTime / 8;
  334.     money := money - q;
  335.     if <this is owner's active capital> then
  336.         BTUs := min(96, BTUs + deltaTime * civilians * efficiency / 5000);
  337.         researchLevel := researchLevel - researchLevel * deltaTime / 4800;
  338.         techLevel := techLevel - techLevel * deltaTime / 4800;
  339.     fi;
  340.     case plague_stage:
  341.     incase 3:
  342.         /* terminal plague stage */
  343.         <kill some people off>;
  344.         <send telegram, make news>;
  345.         if plague_time <= deltaTime then
  346.         plague_stage := 0;
  347.         else
  348.         plague_time := plague_time - deltaTime;
  349.         fi;
  350.     incase 2:
  351.         /* infectious stage */
  352.         if plague_time <= deltaTime then
  353.         plague_stage := 3;
  354.         plague_time := random(33) + 32;
  355.         else
  356.         plague_time := plague_time - deltaTime;
  357.         fi;
  358.     incase 1:
  359.         /* gestatory stage */
  360.         if plague_time <= deltaTime then
  361.         plague_stage := 2;
  362.         plague_time := random(33) + 32;
  363.         <send telegram, create news>;
  364.         else
  365.         plague_time := plague_time - deltaTime;
  366.         fi;
  367.     incase 0:
  368.         /* not infected - see if it should become so */
  369.         plagueFactor :=
  370.             ((civilians + military) / 254) *
  371.             ((techLevel + ore + 100) /
  372.              (researchLevel + efficiency + mobility + 100));
  373.         if random(100) < plagueFactor then
  374.         plague_stage := 1;
  375.         plague_time := random(33) + 32;
  376.         fi;
  377.     esac;
  378.     /* note that 'move', and deliveries will pass the plague when it is
  379.        in the infectious stage */
  380.     <do any deliveries out of this sector - special handling is done
  381.      when delivering civilians or military into a sector that hasn't
  382.      been updated for a long time>
  383.     if efficiency >= 60 then        /* NOTE THIS!!! */
  384.         case designation
  385.         incase <bank>:
  386.         /* interest */
  387.         money := money + deltaTime * goldBars / 2;
  388.         incase <capital>:
  389.         incase <radar station>:
  390.         incase <weather station>:
  391.         /* utilities */
  392.         money := money - deltaTime;
  393.         incase <technology center>:
  394.         incase <research institute>:
  395.         /* utilities */
  396.         money := money - deltaTime;
  397.         if money > 0 then
  398.             q := production / 25;
  399.             production := production - q * 25;
  400.             if designation = <technology center> then
  401.             techLevel := techLevel + q;
  402.             else
  403.             researchLevel := researchLevel + q;
  404.             fi;
  405.         fi;
  406.         makeProduction();
  407.         incase <defense plant>:
  408.         if money > 0 then
  409.             q := min(production / 10, 127 - guns);
  410.             production := production - q * 10;
  411.             guns := guns + q;
  412.         fi;
  413.         makeProduction();
  414.         incase <shell industry>:
  415.         if money > 0 then
  416.             q := min(production / 2, 127 - shells);
  417.             production := production - q * 2;
  418.             shells := shells + q;
  419.         fi;
  420.         makeProduction();
  421.         incase <airfield>:
  422.         if money > 0 then
  423.             q := min(production / 25, 127 - planes);
  424.             production := production - q * 25;
  425.             planes := planes + q;
  426.         fi;
  427.         makeProduction();
  428.         incase <harbour>:
  429.         incase <bridge head>:
  430.         makeProduction();
  431.         incase <gold mine>:
  432.         q := min(production / 5, 127 - goldBars);
  433.         production := production - q * 5;
  434.         goldBars := goldBars + q;
  435.         q := min(goldSample * work * efficiency / 1000000, goldSample);
  436.         if <sector not contracted> then
  437.             if money > 0 then
  438.             q := min(q, (127 - production) / 2);
  439.             production := production + q * 2;
  440.             fi;
  441.         else
  442.             q2 := q * 2 * priceInNickels / 20;
  443.             money := money + q2;
  444.         fi;
  445.         goldSample := goldSample - q;
  446.         incase <mine>:
  447.         q := mineralSample * efficiency * work / 10000;
  448.         if <sector not contracted> then
  449.             if money > 0 then
  450.             ore := min(127, ore + q);
  451.             fi;
  452.         else
  453.             q2 := q * priceInNickels / 20;
  454.             money := money + q2;
  455.         fi;
  456.         esac;
  457.     fi;
  458.     fi;
  459.  
  460. Ship updates are much simpler:
  461.  
  462.     if lastUpdate = 0 or lastUpdate > CurrentTime then
  463.     lastUpdate := CurrentTime;
  464.     fi;
  465.     deltaTime := CurrentTime - lastUpdate;
  466.     if deltaTime >= 3 then
  467.     lastUpdate := lastUpdate + deltaTime;
  468.     if weather <= -9 and shipType ~= 's' then
  469.         damageShip((random(21) + 10) * shipDamageFactor(shipType));
  470.     elif weather <= -8 and shipType ~= 's' then
  471.         /* bad weather halts construction */
  472.     else
  473.         if weather <= -7 and shipType ~= 's' then
  474.         /* bad weather delays construction */
  475.         deltaTime := deltaTime / 2;
  476.         fi;
  477.         mobility := min(127, mobility + deltaTime);
  478.         efficiency := min(100, efficiency + deltaTime);
  479.     fi;
  480.     fi;
  481.  
  482.  
  483. Command Syntax
  484.  
  485. Users directly on the Amiga (i.e. not logged in over the serial port) can
  486. send output to a file by following the command name with '>' and a file
  487. name (to create the file and write to it) or with '>>' and a file name (to
  488. append to the file). Using '>prt:' is quite handy.
  489.  
  490. All commands will prompt for their needed arguments, so if you are unsure
  491. of how to use one, just give it with no arguments to get prompts.
  492.  
  493. Some syntactic elements:
  494.  
  495.     <country> - a country name (in full, case significant) or country
  496.     number.
  497.  
  498.     <sector> - a sector specified as row,column (e.g. 4,-7)
  499.  
  500.     <sectors> - a region given as toprow:bottomrow,leftcolumn:rightcolumn
  501.     optionally followed by '?' and a set of conditions anded together
  502.     with '&'. Conditions test things in the sector against each other
  503.     or against constants. Operators are '=', '#', '<' and '>'. A realm
  504.     number (# followed by 0 - 3, or just # for #0) can be used instead
  505.     of the row/column range. Either range can be a single number. E.g.
  506.  
  507.         census #
  508.  
  509.     will do a census of realm #0, which is automatically built by the
  510.     update command to encompass your entire country. E.g.
  511.  
  512.         map -5:5,-5:6
  513.  
  514.     will map the region around your capital. E.g.
  515.  
  516.         designate -3,1:5 f
  517.  
  518.     will designate a row of 5 sectors into fortresses. E.g.
  519.  
  520.         des -10:10,12?designation=-&minerals>50&civ>99 m
  521.  
  522.     will designate all wildernesses in the region which have a mineral
  523.     sample larger than 50 and more than 99 civilians as a mine.
  524.  
  525.     The units in a sector which can be tested are: efficiency,
  526.     mobility, defended, military, planes, minerals, production,
  527.     contracted, shells, ore, gold, checkpoint, civilians, guns, bars,
  528.     designation and owner. The last is only useful for the Deity. As a
  529.     special case, a '/' followed by a designation code can be used as a
  530.     condition to select all sectors of that designation. E.g.
  531.  
  532.         des #2/- +
  533.  
  534.     will turn all wildernesses in realm 2 into highways.
  535.  
  536.     <ship> - the number of a ship
  537.  
  538.     <fleet> - a fleet letter (a-z, A-Z, or * for the default fleet)
  539.  
  540.     <ships> - a designation of a group of ships. Can be a fleet letter, a
  541.     <sectors> range or a list of ship numbers separated by '/'s.
  542.     Optionally followed by a condition as above, but which is applied
  543.     to the ships instead. Units which can be tested in a ship are:
  544.     civilians, military, shells, guns, planes, ore, bars, designation
  545.     (ship type), efficiency, mobility and owner.
  546.  
  547. It is often desireable to interrupt the actions or output of commands which
  548. process several sectors or ships. This can be done on the Amiga by typing
  549. a control-C. It can be done when connected over the serial port by typing
  550. a control-C, a DEL or by sending a BREAK. The computation done by the
  551. 'power' command can also be stopped this way.
  552.  
  553.  
  554. Commands
  555.  
  556.     accept <loan #>
  557.     if the indicated loan is an outstanding loan offer to you, then you
  558.     are accepting it. The loaner will be informed and a news item
  559.     generated. Beware of not paying back loans promptly. See also:
  560.     ledger, lend, repay, collect.
  561.  
  562.     assault <sector> <ship>
  563.     attempt to take over the sector with military from the ship. Costs
  564.     BTUs. The sector may fire back and may be defended. The assaulting
  565.     troops are at a disadvantage w.r.t the defenders. Also, capitals
  566.     and forts fight twice as hard against assault as other sectors.
  567.     See 'attack' for more details on fighting.
  568.  
  569.     attack <sector>
  570.     attempt to take over a sector with military from orthogonal
  571.     sectors. Costs mobility and BTUs. The sector may be defended.
  572.     For each orthogonal sector you own, you will be asked how many of
  573.     the military there you wish to commit to the attack. Troops from a
  574.     100% efficient fort have a 4 to 1 defending advantage, and troops
  575.     from 100% efficient capitals or banks have a 2 to 1 advantage.
  576.     Troops attacking from a 100% efficient fort have a 2 to 1
  577.     advantage. Attacks cost BTUs at the rate of .15 per attacking troop
  578.     killed. Also, mobility is used up in the attacking sectors
  579.     depending on the terrain types as follows:
  580.  
  581.                   type of sector being attacked
  582.         attacking from    (+)   (?)   (-)   (^)
  583.         (+) highway        .125  .208  .291  21.3
  584.         (?) others           .167  .250  .333  21.3
  585.         (-) wasteland      .208  .291  .375  21.4
  586.         (^) mountain       10.7  10.8  10.9  31.9
  587.  
  588.     The running battle will be displayed using '*'s, '!'s and '@'s.
  589.     A '!' indicated a defender has died, an '@' indicates an attacker
  590.     has died, and a '*' indicates an entire attacking sector has run
  591.     out of attackers.
  592.  
  593.     board <ship> <ship>
  594.     attempt to board the first ship with military from the second. You
  595.     can only board a freighter if there are no ships in the same fleet
  596.     in the same sector which have military on board.
  597.  
  598.     build <sectors> <what>
  599.     build ships (give the letter) at harbours or bridge spans (give one
  600.     of udlr for direction) at bridge heads. Costs production units and
  601.     money. See an earlier table for the costs of various kinds of
  602.     ships. Bridge spans require 127 production units and $2000.
  603.  
  604.     buy <lot #>
  605.     the specified lot, if it is still for sale, will be shown to you,
  606.     and you will be given a chance to purchase it. If the lot is a
  607.     ship, the purchase is straightforward. If the lot is items at an
  608.     exchange, you will be asked how many of each item to buy and which
  609.     exchange of yours to deliver the items to. See also: price, report.
  610.  
  611.     bye
  612.     exit Empire
  613.  
  614.     census <sectors>
  615.     prints detailed census for sectors. Some entries:
  616.  
  617.         * - checkpointed - allows others access if they know the code
  618.         cmsgpob - delivery direction for item - 0 is up, go clockwise
  619.         $ - sector's production is contracted
  620.         % - sector is defended by a fort
  621.  
  622.     change country <country>
  623.     change name
  624.     change password
  625.     switch to another country, or change this country's name or
  626.     password.
  627.  
  628.     checkpoint <sectors>
  629.     set checkpoint codes at sectors. 0 means no checkpoint. You will be
  630.     asked for your country's password as authorization. Sectors which
  631.     are checkpointed can be moved onto (navigated into for harbors) by
  632.     other countries, if they know the checkpoint code. Note that
  633.     highways and bridge spans can be moved onto UNLESS they are
  634.     checkpointed. (If someone moves things onto your highway or bridge
  635.     span and leaves them there, they become yours.) The presence of a
  636.     checkpoint code is indicated by a '*' in the census listing.
  637.  
  638.     collect <loan #>
  639.     if the given loan is an outstanding defaulted loan owed to you, you
  640.     will be given the opportunity to confiscate a sector from the
  641.     debtor in full or partial payment of the loan. Empire uses some
  642.     magic to determine the "value" of a sector, which must not be too
  643.     much greater than what you are owed. Note that you can only
  644.     confiscate sectors that are orthogonally adjacent to a sector that
  645.     you own. See also: accept, ledger, lend, repay.
  646.  
  647.     contract <sectors>
  648.     production in shell industries, defense plants, airports, harbors,
  649.     bridge heads, mines, gold mines, research institutes and technology
  650.     centers can be contracted. You will be offered a price per
  651.     production unit. If you accept, then you will earn money as
  652.     appropriate when the sector is updated. If you decline, the sector
  653.     is left uncontracted. The presence of a contract is indicated by a
  654.     '$' in the census listing.
  655.  
  656.     country
  657.     list the countries in the world along with some info about them.
  658.  
  659.     declare war|alliance|neutral <country>
  660.     declare your relationship to the other country. This affects the
  661.     spy command and anti-aircraft fire.
  662.  
  663.     defend <sectors> {%|sector}
  664.     if the '%' is given, then you will be asked for your password, and,
  665.     if correct, the defender for any defended sector in the specified
  666.     area is displayed. Otherwise, you need to enter the location of a
  667.     fort to defend the given sectors. If no defender is given on the
  668.     command line, you will be asked for the defender for each sector in
  669.     the specified area. When a defended sector is attacked, assaulted
  670.     or fired on, the defending fort will attempt to fire on the
  671.     attacker. The presence of a defense is indicated by a '%' in the
  672.     census listing.
  673.  
  674.     deliver <what> <sectors> {<threshold>} {<sector>}
  675.     after playing Empire for a while, you will notice that moving
  676.     various supplies from sector to sector on a regular basis takes up
  677.     too much time and BTU's. Automatic deliveries are the cure for
  678.     this problem. Any of civilians, military, shells, guns, planes,
  679.     iron ore and gold bars can be automatically delivered from a given
  680.     sector to any neighbouring sector (orthogonal or diagonal). The
  681.     'deliver' command is used to set up and query delivery settings.
  682.     Delivery directions will also show up on the 'census' listing. In
  683.     its simplest form, a delivery is specified as in this example:
  684.  
  685.         deliver c 0,0 (50) -1,0
  686.  
  687.     This specifies that whenever sector 0,0 is updated, and it contains
  688.     more than 50 civilians, the excess civilians should be moved to
  689.     sector -1,0 (subject to the player owning sector -1,0 and sector
  690.     0,0 having enough mobility). The threshold (50) can be omitted, in
  691.     which case a threshold of 0 is used. A more complex example:
  692.  
  693.         deliver o -2:0,-3:-1 (20)
  694.  
  695.     Here, Empire will prompt for each owned sector in the specified
  696.     region, as to where to deliver ore to. Again, the threshold can be
  697.     omitted. Also, on the individual replies to the prompts, the
  698.     destination sector can be followed by a threshold in parentheses
  699.     which will be used for that particular delivery. If the form
  700.  
  701.         deliver b -10:10,-10:10 +50
  702.  
  703.     is used, then the thresholds for, in this case, gold bars, will be
  704.     changed without changing any delivery destinations. The final form:
  705.  
  706.         deliver s -5:5,-2:7 -
  707.  
  708.     will simply print out the delivery destinations and thresholds for
  709.     each sector in the region which has a delivery set up.
  710.  
  711.     Deliveries are performed whenever sectors are updated. A message of
  712.     the form "delivery walkout between r,c & r,c" indicates that a
  713.     sector was trying to deliver to a sector you don't own. See also:
  714.     route.
  715.  
  716.     designate <sectors> <what>
  717.     designate sectors to be a new type. The efficiency and production
  718.     in the sectors will be set to zero unless the sector was already of
  719.     the given designation. Your current capital cannot be redesignated
  720.     as anything else. The LAST sector designated as a capital will be
  721.     your current capital, which is at 0,0 in your co-ordinate system.
  722.  
  723.     drop <target-sub> <dropping-destroyer>
  724.     drop a depth charge on a submarine from a destroyer. If the
  725.     submarine is able, it will fire a torpedo back (which might miss
  726.     anyway). The two must be in the same sector.
  727.  
  728.     dump <sectors>
  729.     dumps sector information in a very compact, hexadecimal format.
  730.     Useful for those who want to set up tools to display more useful
  731.     maps, etc. The format is as follows:
  732.  
  733.         rrccdCCmmppMMeessggPPoobbddiiGG[dt*7]OK
  734.  
  735.     where
  736.  
  737.         rr - row, 0 => size of world
  738.         cc - column, 0 => size of world
  739.         d  - designation character
  740.         CC - civilian count
  741.         mm - military count
  742.         pp - production
  743.         MM - mobility
  744.         ee - efficiency
  745.         ss - shell count
  746.         gg - gun count
  747.         PP - plane count
  748.         oo - iron ore count
  749.         bb - gold bar count
  750.         dd - relative location of defender (rowDelta + 8, colDelta + 8)
  751.         ii - iron mineral deposit
  752.         GG - gold mineral deposit
  753.         dt - delivery direction and threshold for
  754.          civilians, military, shells, guns, planes, ore, gold bars
  755.         O  - 0/1 indicating sector is contracted
  756.         K  - 0/1 indicating sector is checkpointed
  757.  
  758.     When the Deity does a 'dump', the following is appending to the
  759.     output lines:
  760.  
  761.         oossttuuuuuuuu
  762.  
  763.     where
  764.  
  765.         oo - owner of the sector
  766.         ss - plague stage
  767.         tt - plague time
  768.         uuuuuuuu - last update time
  769.  
  770.     The sector output will be preceeded by a line giving the time and
  771.     date of the dump. Note that some sectors "bundle" some items -
  772.     urban centers bundle civilians, warehouses bundle shells, guns and
  773.     ore, and banks bundle gold bars. The counts shown are the number of
  774.     bundles. Bundles are bundles of 10, except for gold bars which are
  775.     bundles of 4 in banks.
  776.  
  777.     enlist <sectors> <total-required>
  778.     turn civilians into military. Not more than 50%, none in urban
  779.     areas. The enlistment will be spread fairly uniformly over the
  780.     eligible sectors.
  781.  
  782.     fire <sector>|<ship> <sector>|<ship>
  783.     fire gun(s) at sector or ship from fortress or ship. If the target
  784.     is a fortress it will try to fire back. If the target is any land
  785.     sector that is defended, the defending fort will try to fire back.
  786.     If the target is a ship, any ships belonging to the same country
  787.     which are in the same fleet will attempt to fire back. The amount
  788.     of damage done depends on how many guns are fired (from a ship),
  789.     and on the type of the target ship.
  790.  
  791.     fleet <fleet> <ships>
  792.     add the ships to the given fleet. All start out in fleet '*'. Valid
  793.     fleets are A-Z and a-z. The first ship specified will be the
  794.     flagship of the fleet - when it can no longer navigate, the entire
  795.     fleet will stop. For non-flagship ships in a fleet which is moving,
  796.     the ship will drop behind if it can't move. A ship can be removed
  797.     from a fleet by adding it to the '*' fleet.
  798.  
  799.     fly <ship>|<sector> <plane-count> <bomb-count> <directions>
  800.     fly planes (possibly with bombs) from ship or airfield. Directions
  801.     are:
  802.  
  803.         u  - up
  804.         /r - up right
  805.         r  - right
  806.         \r - down right
  807.         d  - down
  808.         /l - down left
  809.         l  - left
  810.         \l - up left
  811.         e  - end of flying (land or crash)
  812.         v  - view sector below
  813.         b  - drop some bombs
  814.  
  815.     Movement prompt is <fuel left:planes:bombs each:position>. Fuel
  816.     comes from the starting airfield or carrier. Landing chances vary
  817.     greatly. Watch out for anti-aircraft fire. Fuel units per plane is
  818.     calculated as:
  819.  
  820.         fuelAvailable := sectorOrShipMobility * 4;
  821.         fuelUsed := min(fuelAvailable, 32);     /* fuel tank size */
  822.         fuelUnits := techFactor * fuelUsed;
  823.  
  824.     Note that these, as well as most other "magic" constants can be
  825.     changed by the Deity. In good weather, when carrying no bombs,
  826.     planes can fly one orthogonal sector per fuel unit. Fuel used rises
  827.     by 1 for each bomb rack required (each rack can hold 3 bombs) and
  828.     by 0.2 for each bomb carried. Diagonal flying takes 1.414 times as
  829.     much fuel.
  830.  
  831.     forecast <sector> <time>
  832.     forecast weather near the given weather station for the given
  833.     number of half-hours into the future (max is the number of
  834.     civilians there). The range of the forecast depends on the
  835.     efficiency of the station.
  836.  
  837.     grant <sector> <country>
  838.     grant a sector to a country it is beside.
  839.  
  840.     headlines {days}
  841.     print newspaper headlines for the given number of days (default 1).
  842.  
  843.     help
  844.     ?
  845.     list commands and their BTU costs.
  846.  
  847.     ledger
  848.     lists outstanding loans and loan offers that you are a participant
  849.     in. See also: accept, collect, lend, repay.
  850.  
  851.     lend <country>
  852.     offer a loan to someone. You get to pick the amount, interest rate
  853.     and term. A telegram is sent to <country> informing them of the
  854.     offer. See also: accept, collect, ledger, repay.
  855.  
  856.     load <ship> <percent>
  857.     load stuff onto a ship in a harbour. If no <percent>, prompts for
  858.     each type of stuff. <percent> is percent of ships capacity to load.
  859.     Ship capacities are listed above with other ship information.
  860.  
  861.     lookout <ship>|<sector>
  862.     visual lookout - reports on nearby ships and sectors. In good
  863.     weather, orthogonal and diagonal land sectors can be seen; in bad
  864.     weather, only orthogonal neighbours.
  865.  
  866.     map <sectors>
  867.     shows the designation of the sectors you or god owns within the
  868.     region. Other people show up as '?'. You can see sectors beside
  869.     ones you own. When the Deity does a map, he/she can see all
  870.     sectors, and water shows up as spaces instead of dots.
  871.  
  872.     message
  873.     send a one-line message from the remote user to the local window.
  874.  
  875.     mine <ship> <count>
  876.     drop mines from a destroyer. When ships move into a mined sector,
  877.     they may hit them, doing damage. When a minesweeper moves into a
  878.     mined sector, it can remove up to 5 mines.
  879.  
  880.     move <what> <sector> <count> <directions>
  881.     <what> is cmsgpob. <sector> is where to move from. <count> is how
  882.     many to move (watch out for bundling). <directions> are as above,
  883.     but with no 'b'. Movement prompt is <mobility:position>. Mobility
  884.     costs vary with sector type, weather, and what is being moved.
  885.     Costs for an orthogonal move onto a "standard" sector in good
  886.     weather are:
  887.  
  888.         c - 1 mobility per 5 civilians
  889.         m - 1 mobility per 5 military
  890.         s - 2 mobility per 5 shells
  891.         g - 2 mobility per gun
  892.         p - 4 mobility per plane
  893.         o - 1 mobility per 5 tons of ore
  894.         b - 10 mobility per gold bar  (armoured cars, guards, etc.)
  895.  
  896.     Some sectors are better at moving some items than others. For
  897.     example, warehouses can move ore, guns and shells in bundles of 10
  898.     for the cost of 1 unit; banks can move gold bars in bundles of 4.
  899.     Also, moving onto a 100% efficient highway costs no mobility.
  900.  
  901.     nation
  902.     shows some info about your country
  903.  
  904.     navigate <ship>|<fleet> <directions>
  905.     sail ships. <directions> are as above, but no 'b' or 'v'. Costs
  906.     vary with ship type and technology level. Watch out for mines.
  907.     Movement prompt is <flagship mobility:minimum mobility:position>.
  908.     If fleet is '*', then the flagship is the lowest numbered ship in
  909.     fleet '*', otherwise the flagship is the first ship given when the
  910.     fleet was set up. When the flagship can no longer navigate, the
  911.     whole fleet. Sailing into a hurricane can damage your ships. Ships
  912.     use less mobility for navigating as your country's tech factor
  913.     increases.
  914.  
  915.     newspaper {days}
  916.     print headlines and detailed news for the given number of days
  917.     (default 1). A bulletin from the system operator may be printed
  918.     before the headlines.
  919.  
  920.     power {force}
  921.     display summary of statuses of countries. Rebuilt if more than 12
  922.     hours old, or if 'force' specified. Power is calculated based on
  923.     the following magic formula:
  924.  
  925.     (a * g + d) / 3 + (b + c + e + ii) / 10 + j / 100 + f + i + h * 5
  926.  
  927.     where
  928.  
  929.         a - number of sectors
  930.         b - number of civilians
  931.         c - number of military
  932.         d - number of guns
  933.         e - number of shells
  934.         f - number of planes
  935.         g - average sector efficiency
  936.         h - number of gold bars
  937.         i - number of ships
  938.         ii - total ship tonnage
  939.         j - money
  940.  
  941.     price <ship> {<price-per-ton>}
  942.     price <sector> <what> {<new-price-per-unit>}
  943.     set the sale price on a ship or on the goods at an exchange. Each
  944.     ship for sale will be a new lot, and each exchange with things for
  945.     sale will be a new lot. Your offering will be visible on the trade
  946.     report, and is open to anybody. Purchasers may buy however much
  947.     they want of whatever is offered at your exchange. See also: buy,
  948.     report.
  949.  
  950.     radar <ship>|<sector>
  951.     do a radar scan from a ship or a radar station. Shows the ships you
  952.     find and a small map of what the radar sees. Range varies with
  953.     ships and with sector efficiency. Note that submarines do not show
  954.     up on radar (destroyers and submarines have sonar, however), and
  955.     that PT boats are very hard to see. Also, radar does not show
  956.     ownership of sectors it displays, so beware of relying on radar to
  957.     see an enemy approaching overland.
  958.  
  959.     read
  960.     read your telegrams. Most are from the Deity regarding nasty things
  961.     other countries are doing to you.
  962.  
  963.     realm <number> {<sectors>}
  964.     (No '?' pattern allowed.) Set the realm (0 - 3) to the indicated
  965.     rectangle of sectors. Realm 0 (written as #0 or #) is also set by
  966.     the update command. You should set up some realms, so that you
  967.     aren't in danger of mistyping a sector range.
  968.  
  969.     repay <loan-number>
  970.     repay some or all of a loan you owe money on. See also: accept,
  971.     collect, ledger, lend.
  972.  
  973.     report {naval|land}
  974.     produce a trade report showing what is for sale for how much. You
  975.     do not see who is making the offer, but you can often deduce that.
  976.     'naval' will restrict the report to ships, 'land' will restrict it
  977.     to offers at exchanges. See also: buy, price.
  978.  
  979.     route <what> <sectors>
  980.     like map, but shows delivery routes for <what>, and doesn't show
  981.     things you don't own. The delivery directions are shown as follows:
  982.  
  983.         ^?^ - deliver to sector above this one
  984.          ?/ - deliver to sector up-right
  985.          ?> - deliver to sector to the right
  986.          ?\ - deliver to sector down-right
  987.         v?v - deliver to sector below this one
  988.         /?    - deliver to sector down-left
  989.         <?    - deliver to sector to the left
  990.         \?    - deliver to sector up-right
  991.  
  992.     ships {<ships>}
  993.     like census, but for ships. If no argument is given, all of your
  994.     ships will be reported on.
  995.  
  996.     spy <sectors>
  997.     attempt to spy on the sectors from any neighbouring ones of yours
  998.     with military in them. The owner's relationship to your country
  999.     determines what happens to spies who are caught. The chances of
  1000.     your spy being caught is dependent on the number of military
  1001.     guarding the sector you are spying on.
  1002.  
  1003.     telegram <country> {file}
  1004.     Send a telegram to the given country. Reading a telegram from a
  1005.     file is not allowed for users connecting over the serial port. A
  1006.     telegram typed at the terminal is ended by an end-of-file
  1007.     (control-backslash) or by a period by itself on a line. The Deity
  1008.     can send a telegram to everyone by using '*' as the country.
  1009.  
  1010.     tend <ship> <tender>
  1011.     tend a ship from a tender in the same sector. This allows stuff to
  1012.     be transferred at sea. As for most naval operations, the weather
  1013.     must be good enough. You can't tend freighters or carriers.
  1014.  
  1015.     torpedo <victim-ship> <submarine>
  1016.     Launch a torpedo against a ship from a submarine. Maximum range is
  1017.     less than 2 sectors. Destroyers in your sector may drop depth
  1018.     charges on you. Each torpedo costs 3 shells from the submarine. The
  1019.     chances of the torpedo hitting drop greatly as the distance
  1020.     increases. To prevent submarines from being too powerful, a penalty
  1021.     is imposed for using the torpedo command - the sub's mobility drops
  1022.     to 0, and by a further 10 for each torpedo fired.
  1023.  
  1024.     unload <ship> <percent>
  1025.     like load, but the other way around.
  1026.  
  1027.     update {<sectors>} {verbose|quiet}
  1028.     perform the update operation on the given sectors. Other commands
  1029.     that need to change a sector will do an update too, as will census.
  1030.     Order of access is from top-to-bottom, left-to-right. This can
  1031.     affect how you want to set up deliveries, since this is when they
  1032.     are done. If no <sectors> is given, then the whole world is done
  1033.     (sort-of - other people's sectors are only ever updated if they
  1034.     haven't been for two days), and your realm 0 is set to a rectangle
  1035.     containing all of your sectors. 'verbose' will supply more messages
  1036.     than you would normally get about the updating. 'quiet' will
  1037.     suppress nearly all update messages.
  1038.  
  1039.     weather <sectors>
  1040.     display a map of the current weather over the given rectangle and
  1041.     indicate the current location of the high and low extremes.
  1042.  
  1043.  
  1044. Relation to Peter Langston's Old Empire
  1045.  
  1046. For those of you who know all about Empire, this is a totally new re-
  1047. implementation (in Draco of course) of the Peter Langston version of Empire
  1048. (also known as Old Empire). This is not the single-player game available on
  1049. some PC's which is played in a few hours. For the old pros, the only
  1050. feature not implemented in this version is treaties. Pretty much everything
  1051. else is present. One other major change is that sector co-ordinates are
  1052. row,column instead of x,y. This version has been implemented by me (Chris
  1053. Gray) in my spare time with some help from Chris Thierman and play testing
  1054. by Al Covington, Don Reble, Tim Breitkreutz and Randy VanKooten. We
  1055. originally worked from a copy of Peter Langston's documentation, which is
  1056. often incomplete, contradictory and just plain wrong, so there are
  1057. differences between this and the original. After getting the decompiled Old
  1058. Empire source from Tom Fisher, the features we added were more in line with
  1059. Langston's original, but still not identical. In particular this version of
  1060. Empire can only be used by one person at a time, and has had some disk I/O
  1061. optimization added to make it usable on a floppy disk. It is also in one
  1062. large program instead of a set of seven overlays. Also, there is no
  1063. 'empfix' program - the functions of that program are incorporated into the
  1064. Empire program itself.
  1065.  
  1066.  
  1067. Short History of Empire
  1068.  
  1069. The first widely available version of Empire was written by Peter Langston
  1070. (who also wrote the 'wander' adventure game system). It was available (as
  1071. far as I know) only in PDP-11 object code format for running under UNIX
  1072. Version 6. I played two games with that version on a PDP-11/45 at the
  1073. University of Alberta. The game appears to have been popular within the
  1074. North American UNIX community, and its absence on other machines was a sore
  1075. point. Tom Fisher took exception to this and proceeded to de-compile the
  1076. object module into C. His version is now available and will run on most
  1077. UNIX systems. It is difficult to modify, however, because much of its
  1078. structure reflects the decompilation process - it is a maze of labels and
  1079. goto's. It also reflects the memory limitations of the PDP-11 and is
  1080. structured as a set of 7 different programs which are accessed as overlays.
  1081. Another version of Empire, presumeably a re-implementation, has been done
  1082. by people at Berkeley (I think). I've never seen this version, so can't say
  1083. much about it, except to say that it has been augmented with farms,
  1084. bombers, tanks, nuclear weapons, etc. I have recently heard of another
  1085. project to re-implement Empire, in which the sources will explictly NOT be
  1086. made available. The sources to this Draco version are now available (they
  1087. are probably on the disk you are reading this from). Chris Thierman took it
  1088. upon himself to implement Empire for the University of Alberta's Amdahl
  1089. mainframe nearly two years ago. The project proceeded, but was never
  1090. completed. We both bought Amigas about that time and eventually I had Draco
  1091. ported and Chris was using it a bit. He decided to port Empire to the Amiga
  1092. and requested my aid in doing a translation from QC (a compiler of mine for
  1093. the 360/370 series) to Draco. I agreed and soon found myself headlong in
  1094. the implementation of Empire. The game you have here is the result.
  1095.  
  1096. Happy Empireing!!
  1097.