File: README

package info (click to toggle)
conquest 8.1-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 7,984 kB
  • ctags: 3,086
  • sloc: ansic: 39,393; sh: 8,540; yacc: 446; makefile: 296; lex: 146
file content (1382 lines) | stat: -rw-r--r-- 51,797 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382

         +--------------------------------------------------------+
         |  CCC    OOO   N   N   QQQ   U   U  EEEEE   SSSS  TTTTT |
         | C   C  O   O  NN  N  Q   Q  U   U  E      S        T   |
         | C      O   O  N N N  Q   Q  U   U  EEE     SSS     T   |
         | C   C  O   O  N  NN  Q  Q   U   U  E          S    T   |
         |  CCC    OOO   N   N   QQ Q   UUU   EEEEE  SSSS     T   |
         +--------------------------------------------------------+

  This file contains various information about Conquest, such as a
  description of the files supplied, and various tips and hints on
  configuring and playing the game.

  See INSTALL for instructions on unpacking, compiling, and installing
  conquest, as well as information on terminfo requirements and system
  specific issues.

  See README.cygwin for information on building/using conquest on MS
  Windows systems. 

  See SERVER.TXT for information on how to setup and run a Conquest
  server.

  See HISTORY for the latest news and modification history.

  See conquest.doc for information on available commands, and how to
  play the game.

  NEW USERS: Please read the section '## Hints for new players' below
             for some useful information you should know.  Reading the
             whole document is advised, but this section is probably
             the most important as far as providing some useful
             playing tips.

  In the sections below, commands you issue to conquest will be
  enclosed in parentheses '()'.  The RETURN key is represented as '\r',
  and the TAB key is represented as '\t'.

  CONTENTS:

   ### Conquest Synopsis
   ### A Little Background
   ### General Information 
       ## Starting Conquest
       ## Default network ports
       ## Server game flags
       ## Meta Server
       ## ~/.conquestrc
       ## Recording Games
       ## Replaying Games
       ## Hints for new players
          # Shields
          # Energy Allocation
          # Bombing
          # Repairing
          # Cloaking
          # Carrying armies
          # Detonating enemy torps
          # Using torpedos
          # Using phasers
          # Kill points
          # Robot scanning range
       ## Planets
       ## Suns
       ## Cloaking
       ## Tractor beams
       ## Ship Strength
       ## Refitting
       ## Leaving the game
       ## Teams
       ## Combat
       ## Macro Keys
       ## Navigation
       ## The Robots
          # Conqstrat
          # Combat
          # Creating Robots
       ## The Doomsday Machine
       ## Using conqoper
          # The semaphore status line
          # Leaving a screen on conqoper
   ### The installed files
       ## conquest
       ## conquestgl
       ## conquestd
       ## conqmetad
       ## conquestsh
       ## conqdriv
       ## conqoper
       ## conqai
       ## conquest_common.img
       ## HISTORY
       ## conquest.doc
       ## conquest.log
       ## conquestrc
       ## libconquest.so
       ## libconqclnt.so
       ## libconqserv.so
       ## libUi.so
       ## libUiCU.so
       ## libUiGL.so
       ## img/*
       ## ~/.conquestrc
   ### Getting more information
   ### Obtaining Conquest
   ### Copyright Information



### Conquest Synopsis

   Here's an extract from the conquest.doc file:

          NAME
               Conquest  -  a multi-player real-time screen-oriented 
               space war game

          SYNOPSIS
               conquest

          DESCRIPTION


               1. OBJECT OF THE GAME.

               The object of the game is twofold. The  short-range  goal
               is  to accumulate "kills" by shooting down enemy players.
               You get one kill point for each  enemy  ship  shot  down,
               plus  some  extra  if  the enemy had kills too. The major
               weapon used to shoot down ships is the photon torpedo.

               The long-range goal is to conquer the universe  for  your
               team  by taking every planet. You take planets by killing
               off the enemy's armies via bombardment, and then  beaming
               your  team's  armies down. When all the planets have been
               taken, the game ends, a new game begins, and  the  player
               who  actually  took  the last planet gets his/her name up
               in lights.

               ...


### A Little Background

    A quote from Michael Erskine: 

      "We were playing xtrek before there was X...  It was known then
      as Conquest, was written in RATFOR and ran on a VAX...
      Personally, I liked it better...  but who can account for the
      tastes of old C programmers?"


    Conquest was originally written in Ratfor for the VAX/VMS platform
    in 1983 by Jef Poskanzer and Craig Leres.  I wasted incredible
    amounts of time playing this game with my friends in the terminal
    labs at college, and when I actually had a multi-user system
    running at home (Unixware) I decided to try and translate/port the
    code to C in Unix.  While doing the port, I added several new
    features including color and Fkey macro support, as well as many
    other minor 'enhancements'.

    For those who played the original Conquest, you may notice that
    cloaking is more usable, (though not *too* usable), torps have a
    slightly longer range, the keypad can be used for 1-key steering,
    the Conquest driver recovers almost immediately from a crash/kill,
    color and macros are supported, and other small changes.  Where
    possible, I've tried to keep the mechanics and balance of the game
    identical to the original.  More tweakage should be expected
    though, as well as the continuing removal of useless code.

    Starting with Version 8.0, Conquest has been split into a true
    client/server game.  Conquest clients connect to a local or remote
    conquestd server to play.

### General Information

## Starting Conquest

   Starting with Conquest 8.0.1a, there are two conquest clients you
   can use to connect to a game: 

   conquestgl                 - the new GLUT/OpenGL client
   conquest                   - original curses based client

   You can start a Conquest client with various options.  For example
   type 'conquestgl -?' to see a list of supported options, and what
   they do.

   In the following examples we will use the OpenGL client
   'conquestgl', but you can substitute 'conquest' if you want to use
   the curses client instead.

   To connect to a conquest server running on the local host:

       $ conquestgl

       or
      
       $ conquestgl -s localhost

   To connect to a conquest server on a remote host:

       $ conquestgl -s conquest.radscan.com

             - connects to a server running on conquest.radscan.com.

       $ conquestgl -s conquest.radscan.com:1702

             - connects to conquest.radscan.com, port 1702.

   To contact the default conquest metaserver (default:
   conquest.radscan.com) and select from a list of available online
   servers:

       $ conquestgl -m

   NOTE: If you want to connect to a server on your local machine, be
   sure conquestd is running.  See SERVER.TXT for more information on
   conquestd and running a server.

## Default network ports

   This is the list of default network ports Conquest uses:

   1700/udp    - metaserver update port 

                 conquestd sends updates to conqmetad on this port
                 (when run with '-m')

   1700/tcp    - metaserver query port 

                 When you (or a conquest client) connects to this port
                 on the metaserver host (default:
                 conquest.radscan.com), the metaserver dumps the
                 current server list out on this port and disconnects.

   1701/tcp    - default game server port

                 conquestd listens on this port for client 
                 connections.

   1701/udp    - default game server port for UDP location data
                 (v8.0.1c or better).

                 conquestd listens on this port for client connections
                 to determine if the client and server can both do
                 UDP.  The server will also send UDP motion data to
                 the client(s) from this port.

                 UDP is only used for ship motion data from the server
                 to the client.  The client only sends data to the
                 server on this port during UDP negotiation.


   You can use the '-p <portnum>' option to conquestd to have the game
   run on a different port other than the default of 1701. 

## Server game flags

   The server operator can set various game flags via the conqoper
   Options menu.  These flags are displayed on the conquest login
   screen (when connecting to a server), as well as when the user
   selects the Options menu from from within the game (while already
   connected to a server).

   Currently the following flags are available.

          Refit              - refits are allowed.  You can refit to
                               one of the 3 types of conquest ships
                               when you have at least one kill, and
                               are orbiting a team owned planet.

          Vacant             - vacant ships are allowed.  A ship goes
                               vacant when a client exits the game
                               without self destructing first, while
                               flying a ship.

                               When vacant ships are disabled by the
                               oper, such ships are immediately killed
                               by a 'lightning bolt'.

                               NOTE: In previous versions of conquest,
                               oper's would always go vacant in this
                               case, regardless of the vacant option
                               setting.  In this version, every user
                               is subject to this option.


          SlingShot          - the SlingShot bug is enabled.  This is
                               a towing bug that existed in the
                               original VMS/RatFor version of
                               conquest.  It's a fun bug, and I
                               received several emails about it when I
                               inadvertently fixed it in a later
                               version without understanding it's
                               true significance. 

                               If you don't know what it does,
                               well... figure it out!  You'll need a
                               buddy to make it work though ;-)

          NoDoomsday         - when set, the doomsday machine is
                               prevented from randomly starting up and
                               trashing the universe. 

          Killbots           - when this option is enabled, robots are
                               created with a random kill point
                               value.  The kill points a ship has
                               affects the efficiency of it's engines,
                               the strength of it's weapons, etc.

                               Normally when a robot is created (by
                               attacking an unguarded homeplanet, etc),
                               it is initialized to 0 kills.  When
                               this option is enabled, a kills value
                               is randomly selected.  This means that
                               a new robot might prove to be much more
                               deadly than the default 0 kill robot.

                               This may not be a good option to enable
                               on a public server where newcomers play.
                               Fighting a 25 kill robot takes some
                               skill ;-)

          SwitchTeam         - when enabled, users can switch teams at
                               the conquest main menu.


## Meta Server

   With Conquest v8.0, a meta server is supported.  There is one
   running at conquest.radscan.com.  

   If you want to see what servers are available, run conquest with
   the '-m' option:

   $ conquest -m

   This will query the meta server and list the currently active
   servers.  From here, you can select one and connect.

   There is a cgi-bin perl script on the Conquest website where you
   can also get this info:

   http://radscan.com/cgi-bin/conqmeta.pl

   If you want to run a server that other Internet players can play
   on, and you want them to know about it, you will want to run your
   conquestd server with the '-m' flag.

   $ conquestd -d -m

   Depending on your network topology, you may also need the '-N' flag
   if the Internet has a different idea about your server hostname
   than you do internally.  For example, here, conquest.radscan.com is
   an external only address, so I must explicitly specify it to the
   metaserver, or it will use the address the update packet came in on
   (which no-one would be able to resolve and connect to).  For
   example, here is the complete line I use on my server to start
   conquestd:

   # conquestd -d -u nobody -m -N conquest.radscan.com


## ~/.conquestrc

   After running Conquest for the first time, a file called
   ~/.conquestrc should have been created.  Look at this file (it's
   self-explanatory) for various options you can set.  Conquest
   Operators (or CO's) should look at /opt/conquest/etc/conquestrc for
   a few system wide options you may or may not want.  As of version
   7.0, all options (user and system-wide) can be viewed and edited
   using the new (O)ptions Menu.  This menu is available at the
   conquest/conqoper main menus, as well as being accessible from
   within the game.

## Recording Games

   With Conquest 8.0, recording has been significantly re-worked.
   '.cqr' files created prior to v8.0 are not compatible with v8.0+,
   sorry.

   The new format uses the same packet protocol that the clients use.
   This means recording files (cqr's) are *much* smaller and much more
   efficient (cpu-wise) during the recording process, than they were
   with v7.x.

   Another benefit is endian safety.  With the old format, recordings
   could only be played back on the same machine architecture the cqr
   was created on.  Since the recording data is now based on the
   packet protocol, recordings are now completely endian safe (network
   byte order is used).  So now, some poor slob on his Sun SPARC can
   play back a recording I make on a lintel machine and vice-versa.

   There are two types of recordings possible in Conquest: Server and
   Client.  

   Client recordings are created when a user runs conquest with the '-r
   <recfile>' option, for example:

     $ conquest -r somefile.cqr

   Server recordings are created by conquestd on the server machine
   whenever a CO with the OOPTION_OPER set in their user record, sends
   a command to GOD from within the game containing:

     exec recon

     server recording files will be saved in:

     INSTALL_PREFIX/var/conquest-rec-<timestamp>.cqr 

     To turn off server recording, send the following to GOD from
     within the game:

     exec recoff
    
   Aside from how the different recording types are made, the main
   difference between the two are:

   Client:

       Client recordings do not contain full information on other
       ships (fuel, etc) since, in order to limit the ability to cheat
       by hacking up the client, only pertinent data about another ship
       is ever sent to the client.

       For this reason, client recordings are identified by the ship
       that made the recording.  Although you can still try to watch
       other ships during replay, than the one that made the recording,
       the experience will probably not be too rewarding, since much
       data about the ship will never have been sent to the client to
       be recorded in the first place.

       For client recordings, replay will always use the recorder's
       ship number as the default to the (w)atch command, though you
       can certainly select other ones, keeping the caveat's above in
       mind.

       Of course, full information is always recorded for the ship
       that made the recording.

       Planet motion is only updated once every 5 seconds in client
       recordings, since the orbital trajectories computed by the
       client are not recorded.

   Server:

       Server recordings are complete (like the old recordings made in
       previous versions of conquest), since the server has full
       access to the common block.
             
       All active ship/planet/etc data is stored in server recordings.
       You can watch any ship during playack with a server recording
       and get all info on the ship (heading, fuel, temps, etc).

   To replay a recording:

      $ conquestgl -P somefile.cqr

   If libz and it's development header files are available on your
   system when building conquest, game data will be recorded using
   gzip compression.  It's a good idea to use this.  Replay can read
   either uncompressed or gzip compressed files, and can be played
   back using either the GLUT/OpenGL client or the curses client.

   If your client was not compiled with libz support, then you
   will need to uncompress any compressed .cqr files you may have
   before you can replay them.  A simple way is:

   $ gunzip -f <somefile.cqr >somefile-nocompress.cqr
   $ conquestgl -P somefile-nocompress.cqr

   If anyone creates some amusing recordings and sends them to me,
   I'll happily make them available on the website. ;-)

## Replaying Games

   The Conquest client (either curses or OpenGL version) is used to
   replay previously recorded games.

   This is a much nicer way to save and playback games than using
   something like script, or Xterm logging.  

   The replay allows you to speed up or slowdown the playback, as well
   as giving you the ability to jump forward and backward in a
   recording.  Not as nice as a VCR but close enough.

   To playback a game, you use the '-P' option to the conquest client.

   For example, to play back a file called dethfun.cqr:

     conquestgl -P dethfun.cqr

   There is a 'demonstration' CQR file up on the website if you want
   to try one out.

   See the section '## Recording Games' for more information.
   
   NOTES:

   - Only the messages sent to the player that made the recording are
     saved into the CQR file of a client recording.  You can't use a
     recording to 'snoop' on other players conversations.

   - there is no way at this time to manually start and stop client
     recording from within the game.  You must start conquest with the
     '-r' option to start client recording, and the entire session will be
     recorded.


## Hints for new players

   Here are some general things to keep in mind while playing.

# Shields

  Shields are important for protecting your ship.  Once your shields
  are down, then your ship can start taking damage.

  One main thing to remember:

  - When your shields are up, they consume more power and cause your
    engines to heat faster.

    For this reason, *only* keep your shields up when you are in
    danger - ie: an enemy ship is nearby, or you are close to an enemy
    planet, torps, or a Sun, etc.

    Don't run around the universe with your shields up all the time.
    It just flags you as inexperienced and probably an easy kill.

    On the other hand, when an enemy gets close, don't forget to raise
    them :)

  Your shields will repair at twice the normal rate if you lower
  them. 

# Energy Allocation

  In Conquest, you can assign an energy allocation that is split
  between your engines and your weapons.  The max allocation
  percentage is 30/70.

  When you are just flying around, set your allocation so your engines
  get most of the power.  This can be done with (A30\r).  This way
  your engines will be as efficient as possible - using less fuel,
  generating less heat, and making your ship more manuverable at high
  speeds.

  When bombing, do the opposite.  Having your weapons have the maximum
  power allocation increases your army kill rate.  This can be done
  with (A70\r).

  When dogfighting, you will probably want to quickly switch between
  the two.  I would use a Macro for this (see the '## Macro Keys'
  section).  In this case, what you want to do is keep maximum power
  for your engines, but switch to max weapons whenever you fire them.
  This increases their power, and potential damage to an enemy.

  I personally use a Macro for most phaser firing and torping (except
  for aiming them).  This macro switches to max weapon allocation,
  fires the weapon, then switches back to max engine allocation.

  Most efficient.  Sometimes when you are dogfighting someone else (or
  a robot) the first one to overload or run out of fuel loses.  It's
  important that you are not the one that this happens too :)

  Some battles I have fought have depended entirely on the efficient
  use of fuel and heat resources.  A good player will always try to
  get you to waste fuel and heat up.  Robots, being fairly stupid, can
  be goaded into wasting fuel and heat too, if you are careful.

# Bombing

  Bombing is the usual way to get kills (unless you are good with
  robots).

  To bomb a planet, raise shields and go into orbit.  Set weapons
  allocation to max (A70\r), and use the (B) command.

  If you want to bomb a team owned planet (those that are not
  'self-ruled'), you will need to declare war with the team first
  (W).  Bombing a self-ruled planet automatically makes you at war
  with that planet.

  The more armies a planet has, the faster it will damage you.  Keep
  this in mind.

  When bombing, set your weapons allocation to max (A70\r).  This
  will increase your army kills per bomb run.

  When you have bombed the planet down to 3 armies, you now have to
  'take' it.  To take a planet, you must go and get some of your
  team's armies and beam them down.  You will need at least 4.  3 for
  killing the remaining 3 enemy armies, and 1 to claim the planet as
  your own.  

  While bombing, break off and repair when your damage gets around
  50-70%.  As you get more experienced, you can push the line a bit.
  But it's important to know that the more damage you have, the slower
  you will be able to run.  With 70% damage, your maximum speed will
  be about warp 3.  On a 100 army planet, this may not be fast enough
  for you to move away from the planet before the armies overwhelm your
  shields and you explode.  Exercise caution :)

  Bombing a home system planet of a team will create a robot defender.
  Be ready for this.

  Home systems, and their planets are the following:

  Federation:         Earth, Telos, Omega
  Klingon:            Klingus, Leudus, Tarsus
  Romulan:            Romulus, Remus, Rho
  Orion:              Orion, Oberon, Umbriel

  All other planets are self-ruled when a game is initialized, and
  will not create robot defenders when bombed (even if owned by
  another, non self-ruled team).  Newcomers should probably avoid
  bombing home system planets until they are ready to handle robot
  defenders.

  All planets, with the exception of Altair, Hell, and Jinx, must be
  taken in order to conquer the universe.

# Repairing

  When you are damaged, you will want to repair as soon as you are
  able, so that you can regain your max warp and efficiency.

  When not under attack, you will repair at a 'nominal' rate - which
  will be quite slow.

  Use the (R) command to go into repair mode.  This sets you at warp 0
  and lowers your shields - so don't do it in the middle of battle.
  Repairing is faster this way.

  If there is a friendly planet nearby, go into orbit around it before
  using (R).  You will repair even faster.

  You will also cool down much faster when in orbit about a friendly
  planet. 

# Cloaking

  You can cloak your ship if you wish with the (C\t) command.

  Cloaking consumes alot of power and heat.  If you are moving, you
  will exhaust your fuel or overload fairly quickly.  How fast this
  happens depends on your ship type, and how fast you are moving.  If
  you put your shields up, you will overload even faster.  Overloading
  your engines is really bad in battle for obvious reasons.

  If you are moving when you are cloaked, you are detectable - but only to
  an approximate location.

  If you are at warp 0, and you cloak, you cannot be detected at all.
  This is a good trick to use when you want to ambush an enemy who is
  approaching (assuming he does not already know you are in the
  vicinity).

  This is also a good way to escape from robots if you find you are in
  trouble.  You can cloak and go to warp 0.  Then even robots cannot
  detect you.  This may give you the time you need to heal a little,
  and perhaps the robot will wander off somewhere and give you some
  breathing room.

  Keep in mind that depending on ship type and your kills score,
  decelerating can take a little time.  So, if you are trying to evade
  a robot, and he is very close, don't go to warp 0 and cloak.  While
  you are decelerating you are still detectable enough for the robot
  to steam-roll right over you.  Get a little distance from it first.

# Carrying armies

  You should only carry armies when you are going to take over a
  planet.  If there are alot of enemy armies on the planet, bomb them
  down some before bringing armies.

  Carrying armies will increase fuel consumption and heating, so only
  carry them when you are going to use them fairly quickly.

  It's a real bummer to have to get into a dogfight when you are
  carrying.  Unless you are good and your opponent is bad, you will
  probably not survive since you will most likely run out of fuel or
  overload before he does.

# Detonating enemy torps

  With the (d) command, you can try to detonate enemy torps before
  they hit you.  This command consumes fuel and heat, and will only
  work on torps that are relatively close to you.

  It is better to detonate torps before they hit you, to limit damage.
  If it is possible for you to simply move out of the way of oncoming
  torps, then doing so is more efficient than detting them.  

  If you can move out of the way rather than det them, the enemy ship
  will have wasted fuel and heat firing them, and will then also have
  to det them himself in order to free up torps slots to fire more -
  while you have expended far less fuel and heat to evade them.

  Getting the enemy to waste fuel and heat faster than you is an
  important strategy in battle, and can often be the deciding factor
  in a dogfight.

# Using torpedos

  Torpedos are probably the most used weapon in Conquest.  When fired,
  they head in the direction they were fired until they hit an enemy
  ship, or timeout (about 50 seconds).

  The damage they inflict depends on the ship type that fired them,
  the number of kills the ship has (more is better), as well as the
  weapons allocation in effect when they were fired.

  For the maximum damage potential, you should set weapons
  allocation to 70% (A70\r) when firing.  Maybe use a macro. :)

  You can only have 9 torps out at a time.  If you have fired them
  all, and they missed, you should detonate them (D) so that you can
  free up slots to fire more.  Hopefully with better aim this time. :)

# Using phasers

  Phasers are a close-in weapon.  If the ship you are firing at is not
  in RED ALERT range (about 1000) they won't have much (if any)
  effect, and you will just waste fuel and heat using them.

  They are *very* effective close up though, so don't abandon them in
  favor of using torps only.  

  You can only fire a phaser about once per second.  When in really
  close combat, alternate between firing your phasers and torpedoes.

# Kill points

  In short, the more kill points your ship has, the better.

  You get kills by bombing planets, and blowing up enemy ships.

  The number of kills you have will affect your ship in the following
  ways: 

  - The more kills you have, the more efficient your weapons and
    engines will be, in terms of fuel consumption and heating.

  - The more kills you have, the more damage your weapons can
    inflict. 

  - The more kills you have, the faster acceleration and deceleration
    will be.  You will also be able to turn quicker at higher speeds.

  See also, the '## Ship Strength' section for more information.

  If you are fighting enemy players, you will probably want to
  concentrate on those with the highest number of kills.  If you let
  someone get a huge number of kills, it will just get harder to
  destroy them, unless they make a mistake, or you ambush them.

# Robot scanning range

  Robots have a somewhat limited scanning range.  Basically, if you
  are within around 6500 of an enemy robot, he can scan you and will
  come after you if he can.

  If you are bombing planets and there are other enemy robots around,
  you might want to do frequent info commands on them (ine\r) to make
  sure you stay outside this rough radius.  Otherwise, they will see
  you and come after you.

  This is especially good advice if you are not good at fighting
  robots :)  Avoid them if you can.  

## Planets

   You need at least one kill before you will be able to transport
   armies to, or from, a planet.

   Core planets are those that need to be conquered in order to take
   the universe.  The (?)planet list option in conqoper/conquest will
   identify core planets with a '+' sign.  Currently, there are only 3
   non-core planets, that while not necessary to conquer the universe,
   can provide some strategic advantage.  These are Altair, Jinx, and
   Hell.  Particularly Altair.  Keep an eye on Altair ;-)

   Additionally, Conquest (as of V6.5) contains 20 extra planet slots
   that can be configured with the planet edit option in conqoper.  By
   default, they are all 'turned off' so unless a CO goes into
   conqoper and 'enables' them, you won't see them.  They are named
   'Extra 1' through 'Extra 20' (though, obviously, the names can be
   changed in the planet editor).

   Use them together.  Use them in peace.


## Suns

   Suns are hot.  Don't fly through them unless it absolutely,
   positively, has to be there overnight.  Hint: Robots don't seem to
   worry about suns.  This can be used against them.


## Cloaking

   Cloaking can be very useful in battle.  Unfortunately, it's
   expensive in terms of fuel and engine heating.  But at warp 0
   however, it can be very nice.  There are ways of locating (at least
   approximately) cloaked ships.  Really.  Two people who know what
   they're doing can get pretty damn good at triangulating cloaked
   ships... right Dave?  Robots can't detect cloaked ships at warp 0.


## Tractor beams

   One use I've seen for them so far is to drag a helpless ship into
   the sun, so it's death can be as humiliating as possible.  There
   *are* a few other interesting uses for them as well ;-)

   If the server has the SlingShot flag enabled, even better ;-)


## Ship Strength

   Different teams have different strengths.  Romulans have the best
   weapons, but the worst engines.  Orions have the best engines and
   the worst weapons.  The feds/klings are in-between.

   If the server has the Refit flag set, you can change your
   ship type, regardless of which team you are on, provided you are
   orbiting a team owned planet and have at least one kill.

   The number of kills your ship has will determine how much more
   efficient your weapons and engines are than the base efficiency you
   started out with.  

   When your kills count reaches DOUBLE_E_KILLS (currently 40), your
   efficiency will be double what you started out with.  It's very
   nice to be in a ship with alot of kills.  The problem is, at least
   in our games, we tend to attack whoever has the most kills - it's a
   wise move for self preservation if the ship in question isn't on
   your team ;-) Even if you have high kills, it's difficult to
   survive against the continuous onslaught of a couple of determined
   foes, unless you run and cloak alot.


## Refitting

   If the server you are connecting to has enabled the Refit flag, you
   will be able to refit your ship to a new ship type.

   Basically, when you enter the game, and join a team, your ship is
   the same type of ship (in terms of weapons and engine performance)
   that is the default for your team - like all previous versions of
   Conquest.  

   With Refit capability, once you have at least one kill, and are
   orbiting a team owned planet, you can use the 'r', refit option to
   select a different ship type.  The current ship types, and their
   equivalence with the traditional types assigned to a team are
   listed below:


   Default Ship Type  Traditional ship type assigned to team.
   -----------------  -------------------------------------------------

   Scout              Orion - strong engines, weak weapons
   Destroyer          Federation/Klingon - good engines, good
                      weapons
   Cruiser            Romulan - weak engines, strong weapons


   The type of a given ship can be determined by doing an (i)nfo on
   it, or by using '/' Player List to look at the list of currently
   active ships, and note the character ('S', 'D', 'C) following their
   ship number.

   The ability to refit is controlled by the server operator with the
   'Refit' option in the conqoper options menu.

## Leaving the game

   To exit Conquest, normally you must self-destruct, or be killed.

   In a hurry, you can also exit Conquest quickly with the SIGQUIT
   signal (usually the Control-\ key).

   If the server operator has enabled the 'Vacant' flag in the
   conqoper Options menu, then your ship will be left intact on the
   server, so you can reconnect to it in the future.

   If you exit this way, I'd be careful where you leave your ship.

   If the 'Vacant' flag has not been enabled by the server operator,
   then your ship will be immediately killed by a lightning bolt on
   the server.


## Teams

   When you first enter Conquest, it will randomly select a team for
   you, before bringing you to the main menu.  At this point, you can
   switch teams with the (s)witch teams option if you wish (provided
   the server has the 'SwitchTeams' flag enabled).

   Remember, different teams have different strengths and weaknesses.
   Federation and Klingon teams are pretty middle-of-the-road as far
   as engine/weapons efficiency goes, while Orions have better
   engines, and Romulans have stronger weapons.  But you can always
   Refit if the server allows it...


## Combat

   Taking on a robot is quite a bit different from taking on a human
   player.  With a robot, in time you learn it's strategy, and
   compensate for it.  After you've done it a few hundred times,
   robots aren't too much of a challenge, ...if you don't do anything
   brave and stupid :-).  

   People on the other hand, tend to adapt to your strategies, forcing
   you to come up with new ones.  

   There are various strategies that can be employed effectively
   against your opponent.  A common one we used to use, is the
   'lame-duck maneuver'.  If you take alot of damage, though you have
   plenty of fuel and your weapons are cool, sometimes you can trick an
   enemy into thinking your really hurting... by limping away at warp
   2 with your shields down for example.  

   He'll do an info on you and see your damaged, or he might think
   you're out of fuel, and therefore, an easy kill.  Sometimes you can
   surprise him ;-)  It's simple, but often effective with a player
   determined to 'finish you off' carelessly.

   Cloaking can be used to excellent effect on an unsuspecting
   opponent.  I leave it up to you to explore the possibilities.

   Getting your opponent to waste fuel and heat is also a good idea if
   you can arrange it.


## Macro Keys

   The reason I added macros to Conquest, was that at the time I was
   starting to play, I used PC emulators like MS-KERMIT to play from
   home.  

   Kermit made it pretty easy to redefine keys, and when you can have
   one key that does the work of several keys (such as changing
   allocation, firing a spread, and resetting allocation) it was too
   useful an ability to ignore.  

   Secondly, since a player with macros can be quite formidable to a
   player without, I thought that Conquest itself should support a
   similar ability so that such a disadvantage wouldn't be an issue.

   Macros are sequences of Conquest commands that are issued when a
   Function Key (Fkey) is hit.  On PC hardware, these are the F1-F12
   keys.  With certain emulators (like Unixware's at386 console) the
   Shifted F1-12 keys (F13-F24) are available too.

   Fkey macros are defined in your ~/.conquestrc file.  Users can edit
   their macro keys from within Conquest using the (O)ptions Menu.

   One handy macro I like is 

       macro_f1=dP\r

       Which makes my F1 key detonate enemy torps (d), and fire a
       spread of 3 torps in the last direction I fired (P\r).  

   Here is a 'star burst' macro:
   
       macro_f2=A70\rpe\rpd\rpc\rpx\rpz\rpa\rpq\rpw\rA30\r

       This macro for the F2 key changes weapons alloc to maximum
       efficiency (A70\r), and then fires a single torp at each of the
       8 primary compass points (pe\r...), then resets to maximum
       engine efficiency (A30\r).  Aside from putting on a pretty
       display, this can also be used to attempt to locate nearby
       cloaked ships by watching for 'unexplained' detonations. :)

   There are many other interesting and useful combinations that I
   won't detail... After all, choosing the right macros and using them
   well is an important part of the strategy you employ against your
   opponents.


## Navigation

   Using the direction keys ('qweadzxc') to the (k)ourse or weapons
   commands can be faster than specifying the direction in degrees.

   If a ship is approaching from 90 degrees, it's easier (and faster)
   to type 'Pw\r' than 'P90\r' to fire the torps in the proper
   direction.  You're also less likely to screw up in the heat of
   battle.  See conquest.doc for a description of the direction keys,
   and how they work.

   You can set course, lock onto, and automatically enter orbit around
   a planet by typing the planet name (or first 3 unique characters)
   followed by [TAB] as input to the (k)ourse command.  You will
   automatically enter orbit when you get close enough to your
   destination.

   In addition, the (i)nfo command understands several special strings
   like 'ne' for info on nearest enemy.  Obviously you can't fire
   weapons like that though - that would be too easy.  See
   conquest.doc for more info.

   The Keypad keys/Arrow keys (if your terminal emulator and terminfo
   entry supports them) can be used for 1-key steering, which can be
   faster in battle.  They (the keypad keys) can also be used as input
   to the fire and course commands, as they are translated into the
   appropriate 'direction' keys like so:

        789     qwe 
        4 6 --> a d 
        123     zxc


## The Robots

# Conqstrat

  The AI code used by the robot ships is the original strategy table
  that was generated by the conqstrat.r program with the exception of
  one new rule that lessens robot sun-deaths somewhat.

  The conqstrat program can be used to modify the Robot strategy
  tables if you don't like the supplied rules.  You can have a maximum
  of 32 rules.  Conquest is supplied with a file called conqrule that
  describes in a simplistic 'language' how a robot should behave under
  certain conditions... You can edit this file, and use conqstrat to
  generate a new conqdata.h file, or update the common block directly.

  For example, the following command parses the conqrule file and
  updates the common block with the newly generated strategy table:

      conqstrat -U <conqrule

      NOTE: If someone then (I)nits the (r)obots via conqoper, your
      changes will be overwritten.  In order for the changes to be
      permanent, you will need to generate a conqdata.h file
      (described below) and recompile and install Conquest.

  The following command will generate a new conqdata.h file.  You can
  then recompile Conquest to get the new default strategy table.
  After compiling and installing, remember to (I)nitialize the
  (r)obots to update the common block copy of the strategy table with
  the compiled in version.

      conqstrat -o conqdata.h <conqrule
      make all
      make install

# Combat

  To new users, the robots may seem tough.  Gleefully harsh, even.
  But they are predictable, and can be taken once you learn their
  'strategy'.  One thing to remember, NEVER attack one head-on (let
  alone 2 or three...) unless you are experienced.  They are much
  faster on the trigger than you are, and you'll probably lose.

  See the conqrule file supplied with the source distribution if you
  want to see their basic strategies... That's cheating though ;-) It
  was much more fun to figure it out via trial and error (death).


# Creating Robots

  Robots are created one of two ways:

  A.  You attack a home-system planet of an opposing team, and there
      are no team players around to defend it.  Presto, one pissed
      robot headed your way.

  B.  A Conquest Operator fires up conqoper and creates some with the
      (r)obot menu option.


## The Doomsday Machine

   The Doomsday machine (if activated) *can* be killed.  It probably
   requires that you've seen the (old) Star Trek episode called 'The
   Doomsday Machine' though.  Heh.

   It can also be rather annoying after a time or two though.  If you
   get tired of it, you can set the 'NoDoomsday' flag in the conqoper
   Options menu to true, which will prevent it from randomly starting
   up and wasting the universe.  I'd recommend this for public access
   servers.


## Using conqoper 

# The semaphore status line

  The semaphore status line (line 2) in conqoper can give you useful
  information on the locks used by Conquest to prevent simultaneous
  writes to the common block.  The following is an example line,
  labeled by the letters 'A'-'I' above it.

  A         B   C     D  E        F    G     H  I
  -         -   -     -  -        -    -     -  -
  MesgCnt = 268(25116:0) CmnCnt = 4693(25116:0) Last: Nov 28 13:10:38

  KEY.
        A. status for the messaging semaphore.  preceded by '*' if
           currently locked
        B. number of semops on this semaphore
        C. PID of last process to alter this semaphore
        D. number of processes waiting for the semaphore to become
           zero.  ie. the number of processes waiting to acquire a
           lock.  This should be 0 99.9999% of the time.
        E. status for the common block semaphore (everything except
           messages).
        F. number of semops on this semaphore
        G. PID of last process to alter this semaphore
        H. number of processes waiting for the semaphore to become
           zero.  ie. the number of processes waiting to acquire a
           lock.  This should be 0 99.9999% of the time.
        I. time and date of last semop.


# Leaving a screen on conqoper

  When watching another ship in conqoper or editing a player or
  planet, use 'q' to quit.

  In most other screens, you can use RETURN or SPACE to quit.  I
  know... some consistency is needed.


### The installed files

    Here are the files installed by Conquest, and a brief synopsis of
    what each does.  All paths are relative to the installation
    directory (/opt by default).


## bin/conquest

   The Conquest curses client. type 'conquest -?' to see a list of
   options.  

   The curses client can also be used to replay conquest recording
   (.cqr) files using the '-P' option to conquest.

## bin/conquestgl

   This is the OpenGL version of the conquest client. Type 'conquest -?' 
   to see a list of options.  

   The OpenGL client can also be used to replay conquest recording
   (.cqr) files using the '-P' option to conquestgl.

## bin/conquestd

   This is the conquest server. Type 'conquestd -?' to see a list of
   options.  See SERVER.TXT for information on the server and how to
   set one up.  If all you want to do is use the conquest client to
   fight on remote servers, you do not need to run your own server.

   In addition, if run with the '-m' flag, conquestd will notify the
   metaserver at conquest.radscan.com of your game, so that others
   that query the metaserver will see your server and might jump in.

   Oh, and if your conquestd server is not accessible from the
   Internet, please don't register it with the metaserver.  ;-)


## bin/conqmetad

   The Conquest metaserver.  You should never need to run this unless
   you have a group of conquest servers on your private network that
   you do not want to advertise to the world.  The definitive
   metaserver for public Internet conquest games is running at
   conquest.radscan.com.


## conquestsh

   The is a Conquest 'shell' used if you are going to allow telnet
   access to you server.  It basically exec()'s conquest like so:

    $ conquest -t -s localhost

   The '-t' option tells conquest not to attempt to load/save the user
   configuration (~/.conquestrc).

   See SERVER.TXT for further information on how to setup a telnet
   interface for a conquest server.


## bin/conqdriv

   The universe driver process.  A driver is kicked off whenever
   someone enters Conquest and a driver isn't already running.  A
   normal user cannot start the driver manually.  (You should never
   have to.)  A CO can manually start the driver for debugging
   purposes by supplying the '-f' option.


## bin/conqoper

   This is the Conquest Operator program that allows suitably
   privileged individuals to control, monitor, and modify the behavior
   of the game.  The root user is always a CO and therefore can run
   the conqoper program.  If you want to allow other people to be
   CO's, you will need to add them to the conquest group in
   /etc/group.

   My conquest entry in /etc/group looks like this:

     conquest::102:jon,davep,johnc

     jon, davep, and johnc all have CO status on my machine.  

   Conqoper currently supports the following options, (type conqoper
   -?  to see the various options):

     usage: conqoper [-C] [-D] [-E] [-I <what>]
        -C               rebuild systemwide conquestrc file
        -D               disable the game
        -E               enable the game
        -I <what>        Initialize <what>, where <what> is:
           e - everything
           g - game
           l - lockwords
           m - messages
           p - planets
           r - robots
           s - ships
           u - universe
           z - zero common block

      The init and enable/disable options are of primary interest to
      server operators.

    Be careful who you give CO status to, a bad CO can cheat, or
    otherwise disrupt a game.  In addition, due to the fact that a CO
    is a member of the conquest group, a bad CO will be able to trash
    the common block, as well as other undesirable things.

    A CO with permission to overwrite the system-wide conquestrc file
    can call conqoper with the '-C' option to update the file with a
    newer version.  User-level ~/.conquestrc files are always updated
    automatically when conquest is run.  This is not done
    automatically for the system wide conquestrc file due to potential
    security problems.


## bin/conqai

   This program allows a CO to take over robot control from the
   Conquest driver for debugging purposes.  Don't run it if you don't
   know what it does.  It will disable robot AI control by the driver.
   After running conqai for some purpose, be sure to re-run it with
   the '-r' option to return control of the robots to the Conquest
   driver when you're done.


## var/conquest/conquest_common.img

   The Conquest (ex-Fortran) Common Block.  This file contains the
   'state' of the universe for the server.  It is mapped into the
   address space (using mmap(2)) of the Conquest server executables.
   Never manually edit this file.  Use conqoper to change the
   universe. ;-) This file *must* have perms of 660 with a group of
   conquest.  If read/write access is opened up to all, then anybody
   with shell access to the server will be able to modify the common
   block, and hence, the universe.  Gives me the willies just thinking
   about it.


## share/HISTORY

   Latest Conquest news.  View via (N)ews in the Conquest main menu.
   Contains a chronological order of changes and modifications.
   Definitely worth viewing if you want to see what's changed since
   the previous releases.


## share/conquest.doc

   Conquest instructions and commands. View via (H)elp lesson in the
   Conquest main menu.  You might also want to print this out.  The
   last page contains a command summary - a handy reference for new
   players.


## var/conquest/conquest.log

   Conquest's log file.  All errors/warnings, and debug messages are
   written here.  For the source distribution, see the bottom of
   defs.h for a list of debuggables.


## etc/conquestrc

   System wide options.  Read it, it should be self explanatory.  Can
   be edited directly or using the (O)ptions Menu from within
   conqoper.

## lib/libconquest.so

   Shared library used by Conquest executables.

## lib/libconqclnt.so

   Shared library used by Conquest client(s).

## lib/libconqserv.so

   Shared library used by Conquest server.

## libUi.so

   Shared generic UI (User Interface) lib.

## libUiCU.so

   UI related code for curses client.

## libUiGL.so

   UI related code for GLUT/OpenGL client.

## img/*

   Textures and texfonts used by the OpenGL client (conquestgl).

## ~/.conquestrc

   User options and macro definitions.  Can be edited directly or
   using the (O)ptions Menu from within conquest.


### Getting more information

    More information, a command list/description and some specifics of
    the game can be found in conquest.doc.

    See SERVER.TXT for information on running a server.

    See HISTORY for the latest change/modification history
    information for Conquest.

### Obtaining Conquest

    The latest stable and development versions of Conquest will always
    be available from:

    http://radscan.com/conquest.html

### Copyright Information

                 C O N Q U E S T   (VAX/VMS Ratfor)

     Copyright (C)1983-1986 by Jef Poskanzer and Craig Leres 

     Permission to use, copy, modify, and distribute this software and
     its documentation for any purpose and without fee is hereby
     granted, provided that this copyright notice appear in all copies
     and in all supporting documentation. Jef Poskanzer and Craig
     Leres make no representations about the suitability of this
     software for any purpose. It is provided "as is" without express
     or implied warranty.

     Unix/C specific porting and supporting code Copyright
     (C)1994-2004 by Jon Trulson <jon@radscan.com> under the same
     terms, conditions, and restrictions of the original copyright by
     Jef Poskanzer and Craig Leres.

     (1/28/99) Due to a little prodding from Sunsite, I've decided on
     the ARTISTIC LICENSE (see the LICENSE file) for Conquest.

$Id: README,v 1.24 2004/12/28 01:35:26 jon Exp $