chiark / gitweb /
Overhaul. Allow larger chunks of the galaxy to be shown, and do
[rocl] / README
1 RIGHT ON COMMAND-LINE
2   Elite tools for the discerning player
3
4 1. Installation
5
6         You need a C compiler and a working Tcl/Tk installation.  (The
7         elite-editor program needs Tk; the rest of the tools don't.)
8         The Makefile works on my Debian GNU/Linux box, but I'm not
9         making any promises about anyone else's.  I've successfully
10         built earlier versions of everything under Cygwin, against
11         ActiveState's Tcl 8.4, but I've forgotten the Holy Runes.  I do
12         have the `.def' file I used to build the DLL, though, for
13         whatever that's worth.  (If you want to hack the Makefile to
14         work under Windows, I'll take a patch.)
15
16         The theory is that you should edit the Makefile for your system
17         and say `make'; then, as some suitably privileged person, say
18         `make install' and stand well back.  Everything should then be
19         installed.
20
21         In practice:
22
23           * If you can't build `pkgIndex.tcl', run `tclsh' and say
24
25               % pkg_mkIndex -verbose -direct . elite.so elite.tcl
26
27             to it.  (Use `elite.dll' if you're on Windows.)  Say
28
29               % set tcl_pkgPath
30
31             to see a list of suitable places for putting the kit.  Pick
32             one.  The directory `/usr/local/lib' appears in my
33             installation, so that's what I use.
34
35           * Make a subdirectory in the place you chose, and copy
36             `elite.so', `elite.tcl' and `pkgIndex.tcl' into it.  All
37             should now be hunky-dory.
38
39           * Run (say) `elite-describe lave' to check that things are set
40             up properly.
41
42
43 2. The command-line tools
44
45         A `galaxy-spec' is
46
47           * a number, between 1 and 8, for one of the standard eight
48             galaxies; 
49
50           * a `galaxy seed' of 12 hex digits (a 48-bit value), for any
51             arbitrary galaxy; or
52
53           * a string `SEED:N' where SEED is a galaxy seed and N is a
54             number between 1 and 8, for the Nth galaxy in some custom
55             universe.
56
57         A `planet-spec' is interpreted relative to some parent galaxy.
58         It may be
59
60           * a number N, for the Nth planet in the galaxy (planets are
61             numbered pseudorandomly -- this is not often a helpful
62             option);
63
64           * a `planet seed' of 12 hex digits (a 48-bit value), for any
65             arbitrary planet;
66
67           * a pair of numbers `X,Y', for the planet nearest the point X
68             decilightyears rightwards and T decilightyears down from the
69             top left of the galaxy;
70
71           * a glob pattern (a string containing `*' and `?' wildcards,
72             matching any substring or any single character,
73             respectively), for the first planet whose name matches the
74             pattern; or
75
76           * a string `GAL:P', where GAL is a galaxy-spec and P is a
77             planet-spec, for the planet P in galaxy GAL.
78
79
80   elite-describe [-g GAL] PLANET ...
81
82         For each PLANET, print the planet data for that PLANET.  The
83         PLANETs are interpreted relative to GAL, or standard galaxy 1 if
84         GAL is not specified.
85
86
87   elite-map [-qv] [-g GALAXY] [-d DIST] [-w WEIGHT] [-W WD,HT] [-a ASP]
88         [PLANET ...]
89
90         Prints a map of (part of) a galaxy to the terminal.
91
92         If PLANET is specified (which it usually is), a map of the area
93         around PLANET in GALAXY (default standard galaxy 1) is printed,
94         showing other planets within a box extending about DIST
95         lightyears around the PLANETs.
96
97         If no PLANETs are not specified, the entire galaxy is printed.
98         This is usually unhelpful.
99
100         The `-w' option plots a route through the listed planets,
101         highlighting the waypoints.  See `elite-path' for the possible
102         weightings.
103
104         Planets are shown as numbers or letters (or, occasionally a
105         sequence of letters).  If there is only one PLANET, it is shown
106         as a `*'; otherwise, they're labelled `*0', `*1', etc.  Planets
107         on the path are labelled `+0', `+1', ..., in the order you're
108         meant to visit them.  (Note that if the path doubles back on
109         itself, the planets involved /won't/ be listed twice.  Use
110         `elite-path' for a full guide on where to go, and `elite-map' to
111         visualize the route.)
112
113         The `-q' and `-v' options allow optional suppression of the key
114         below the map.  The defaults are as follows:
115
116           * A galactic map shows no key.
117
118           * A route map (with the `-w' option) shows the waypoints
119             (named PLANETs) and the planets on the path.
120
121           * An area map (around named planets) shows the names of all
122             planets shown.
123
124         The key can be made more verbose by giving the `-v' option, or
125         less verbose by `-q'.  Note that the options parser is currently
126         really shoddy, and won't let you say things like `-qqq'.
127
128         The size of the map may be controlled by the -W option -- set WD
129         to the maximum allowable width, and HT to the maximum allowable
130         height (in columns and rows, respectively).  The map will be
131         scaled so as to fit.  The -a option sets the aspect ratio of
132         your characters, height to width (the default is about 2, and
133         seems right for viewing in an xterm with the standard fixed
134         font).
135
136
137
138   elite-path [-g GALAXY] [-w WEIGHT] PLANET PLANET ...
139
140         Computes a route through a GALAXY (default is standard galaxy
141         1), starting at the first PLANET listed, via the second, via the
142         third, etc., and ending at the last.  For each planet you're
143         meant to stop at on the way, a summary line is printed giving
144         the planet's name, position, government type, economy type and
145         tech level.
146
147         You can affect how elite-path selects its routes using the `-w'
148         option.  The default is to minimize the number of hops.  Other
149         possibilities are:
150
151         hops            Minimize number of hops.  This is the default.
152
153         safety          Maximize stability of the planets in the route,
154                         to attempt to improve safety.  Useful during the
155                         early stages of the game.
156
157         encounters      The opposite of `safety' -- minimizes stability
158                         of planets in the route.  Useful if you want to
159                         maximize kills.
160
161         trading         Maximize the difference in economy type between
162                         successive planets in the route.  This should
163                         give you an opportunity to make a good profit as
164                         you go.
165
166         fuel            Minimize absolute distance.  For those on a
167                         tight budget.
168
169
170   elite-reach [-d DIST] [GALAXY ...]
171
172         For each GALAXY (default is the 8 standard ones), print summary
173         information for each planet, with blank lines separating
174         disconnected groups of planets, i.e., groups where a ship
175         capable of travelling DIST lightyears (default 7) can't get from
176         one to the other.
177
178
179   elite-find [-g GALAXY] [EXPR]
180
181         Without EXPR, simply prints summary information for each planet
182         in GALAXY (default standard 1).
183
184         If EXPR is specified, it must be a Tcl expression (as for the
185         `expr' command).  Information is printed for each planet for
186         which EXPR returns nonzero.  The EXPR may use the following
187         variables:
188
189         name            The planet name, with initial capital letter.
190
191         x, y            X and Y coordinates, from top left, in
192                         decilightyears.
193
194         economy         From 0 (rich industrial) to 7 (poor
195                         agricultural).
196
197         government      From 0 (anarchy) to 7 (corporate state).
198
199         techlevel       From 1 to 15.
200
201         radius          In kilometres.
202
203         productivity    In millions of credits.
204
205         population      In hundreds of millions.
206
207         inhabitants     A Tcl list of words describing the inhabitants.
208
209         description     As a Tcl list of words.
210
211
212   elite-pairs [-g GALAXY] [-d DIST] AEXPR BEXPR
213
214         Prints the names of pairs of planets A and B in GALAXY (default
215         standard 1), no further than DIST (default 7) lightyears apart,
216         such that AEXPR returns nonzero for planet A and BEXPR returns
217         nonzero for planet B.
218
219         The expressions AEXPR and BEXPR may use the same variables as
220         for elite-find.  In addition, BEXPR may use
221
222         d               The distance between planets A and B.
223
224         a               An array containing the information about planet
225                         A.  The indices have the same names and meanings
226                         as the variables described above.
227
228
229   elite-prices [-g GALAXY] [-s SORT] [FROM TO]
230
231         Shows minimum, average and maximum profit (in that order, in
232         credits per unit) for the various commodities, starting at one
233         kind of world and ending at another.
234
235         By default, the commodities are listed in standard order, and
236         the profits are computed going from a poor agricultural world to
237         a rich industrial one.
238
239         You can change the worlds under consideration by typing a pair
240         of planet-specs or economy types (as printed by `elite-find').
241         Any planet-specs are obviously taken relative to GALAXY.
242
243         The SORT parameter may be one of `min', `max', or `avg' to sort
244         by minimum, maximum or average profit (highest at the top).
245
246
247 3. The graphical editor
248
249   elite-editor [GALAXY | FILE]
250
251         Starts the RIGHT ON COMMAND-LINE Commander Editor and Map.  This
252         is a Tk program -- you'll need that installed to run it.
253
254         I'll not go into excruciating detail about how to work the
255         program.  It's fairly simple, really.
256
257         The map view lets you colour-code planets according to
258         techlevel, government or economy.  The colours ought to be as
259         follows:
260
261         Colour          Government      Economy         Techlevel
262
263         Red             Anarchy         Poor agri       1
264         Orange          Feudal          Average agri    2 or 3
265         Yellow          Multi-gov       Rich agri       4 or 5
266         Green           Dictatorship    Mainly agri     6 or 7
267         Blue            Communist       Mainly indust   8 or 9
268         Magenta         Confederacy     Poor indust     10 or 11
269         Violet          Democracy       Average indust  12 or 13
270         White           Corporate       Rich indust     14 or 15
271
272         The connectivity map shows how you can get around the galaxy
273         using hops of up to 7 light years.
274
275         Planet names are unhelpful except at small scales.  The
276         placement algorithm could do with a lot of work.
277
278         Clicking on the map with button 1 (usually the left one) sets
279         the destination world, marked with an orange cross.  Clicking
280         with button 3 (usually the right one) sets the home world,
281         marked with a red cross, and with a green hyperspace-range
282         circle around it.  (The circle doesn't actually correspond
283         exactly with hyperspace reachability, because there are rounding
284         errors in the distance computation.  ROCL correctly emulates the
285         rounding errors from the original game.)
286
287         Double-clicking opens a window showing information about a
288         planet.  Two info windows can be open at any time, one for the
289         home world and one for the destination.
290
291         The bar along the bottom of the map window shows the names of
292         the home and destination worlds, and the distance between them.
293         You can type new names (or any old planet spec) into either to
294         select different planets.  The change will take place when you
295         press return or when the input focus moves.
296
297         The `Compute path' lets you do the same kinds of computations as
298         the elite-path tool.  It plots a route from the home to the
299         destination.  The path is shown in orange on the map.
300
301         The commander editor should be self-explanatory, but maybe a few
302         pointers might be helpful.
303
304         The entry fields for items with pop-up menus are disabled when
305         the menus show values other than `Custom', so you must first
306         choose `Custom' from the menu if you want a fancy value.
307
308         The `Show galaxy map' button opens a map which will be tied to
309         the commander window.  When you select a home world (button 3),
310         this will set the world where the commander will start.  Note
311         that the market prices (in the `Cargo' window) update
312         automatically as you move about the universe.  It is quite
313         possible to travel about entirely new universes by turning off
314         the `Standard galaxy' button and typing some hex number into the
315         `Galaxy seed' box.  All of the ROCL tools work in these custom
316         universes.  Note that your docked planet is recorded as an x, y
317         coordinate pair, so Elite can't tell which of two coincident
318         planets you're docked at (yes, there are such pairs).  ROCL
319         won't cope with this at the moment.
320
321         Lasers are a bit odd.  Bit 7 is a `rapid-fire' bit.  It doesn't
322         affect the strength of the laser, but means that there's no
323         delay between shots.  The low 7 bits control the strength, but
324         without the rapid-fire bit, powerful lasers will tend to fire
325         more slowly than weak ones.  Some comparisons in the program are
326         for exact laser power: you can't damage the Constrictor or
327         Cougar ships unless you have military (or 0x17 slow-firing)
328         lasers; and you can't fragment asteroids unless you have mining
329         or 0xb2 rapid-fire lasers.  (The 0xb2's pack a serious punch.  I
330         recommend them as an upgrade for commanders who don't wish to
331         cheat completely.)
332
333         One suggestion I've heard of, if Elite is too easy, is to start
334         at Lave (as usual), with no money, lasers, missiles, or fuel.
335         You can get your first money by ramming asteroids (easy but
336         unrewarding) or pirates (risky and tedious), and start trading
337         food and other cheap items.
338
339 $Id: README,v 1.3 2003/02/26 01:12:30 mdw Exp $
340 \f
341 Local variables:
342 mode: text
343 End: