
\documentstyle{article}
\title{{\sf Elan 1.00}}
\author{Andrea Giotti}
\date{April 13, 1996}

\begin{document}
\maketitle

\section{Introduction}

{\sf Elan} is a portable simulation game written by the author on a
Commodore Amiga, made available on Linux and OS/2 thanks to the
contributions listed in section \ref{credits} (p. \pageref{credits}).

The program only has a text output and is targeted at an audience that
doesn't give too much importance to form. Color is not necessary, but
strongly recommended. Enhancements that improve interaction, like a
graphical user interface and special effects, are scheduled for future
releases and contributions in these directions are well accepted.

The simulation consists in reproducing colonization of a hostile
environment with a limited budget. Reasons and methods are discussed in
the following sections.

\section{Installation and configuration}

Before running the simulation you should copy the executable {\tt elan}
and the configuration file {\tt elan.cfg} from the platform specific
subdirectory (Amiga, Linux/ANSI, Linux/ncurses or OS/2) to the directory
where you want to install it. The user configurable parameters are the
interface window size, on systems that support it, and the
text/background color combinations to be used for the message classes
and for map symbols. The configuration file is a fixed format ASCII text
file, that must be found in the same directory where the program is run
from.

The window must be large enough to display a $80 \times 45$ text page in the
proper font. Color numbers from 0 to 7 are valid for all versions, while
greater numbers may be accepted by specific versions. As an example, the
distribution package includes a GIF image of a correctly configured 
Amiga version.

The Amiga version can be run from the workbench or a shell window. In
the latter case a stack of at least 6000 is required. This version
always opens a new console window on the workbench screen using the
default system font.

Of the two Linux versions, the ANSI one can run on any terminal that can
decode ANSI escape sequences, the other one needs the ncurses library
and works on every terminal described on the library's own
documentation. Both inherit the terminal from the shell they are run
from, and it's best to experiment them on your preferred console before
choosing one.

The OS/2 version can be run from the desktop or a shell window. It always
opens a new console window.

Along with this documentation in various formats, the distribution
package contains sources and makefiles. Before you try and recompile
them on other platforms, reading of the section \ref{technical} (p.
\pageref{technical}) is strongly adviced.

\section{Background}

In the galactic market, the substance with the highest specific value is
without any doubt elan, because of its thamuaturgic proprierties and its
difficult production process. On worlds dominated by political or
religious dictatorships, moreover, its banning brings its price so high
that you can buy a whole spaceship with few centiliters of pure elan. If
regularly taken, a much lower quantity is enough for a human being to
reverse the ageing process and acquire a virtual immortality in an ever
young body, accidents aside. Other presumed wonders, like the ability to
speak unknown languages and see mysterious worlds, have never been
scientifically documented. Unfortunatey, a human body accustomed to elan
will age quickly if deprived of it, and this confers a formidable
blackmailing power over some of the most powerful man of the galaxy, to
who can produce the substance.

On only one known world a lichen, from which elan is distilled through a
complex electrochemical process, will grow. Its code in the database is
Csi Afrae 5, a rocky planetoid three astronimical units away from Csi
Afrae, a star in pre-nova stage beyond the Magellan clouds. Csi Afrae 5
has a strongly elliptic orbit, that brings a highly variable intesity of
rays from the primary during the year, resulting in a mean thermal range
from -7 to -98 degrees celsius. A year is 333 days long, each day one
and a half standard solar days. The planetoid is small but dense and
gravity is a fifth of earth's. The atmosphere is a highly corrosive
mixture of nitrogen, hydrocarbons and sulphurous anhydrides, with strong
winds and storms of sulphur salts. Under the hard ultraviolet light of
Csi Afrae, in the valleys where the atmosphear is more dense and lakes
of sulphydric acid form, the mother lichen grows with few other
lifeforms. Every attempt to duplicate the conditions under which the
lichen grows in a lab, have failed.

To be useful for elan production, the lichen must grow in a homogeneous
plantation and not among other commercially uninteresting, though
similar, lifeforms. The plantation produces strongly reactive fermenting
biomass, that must immediatly distilled or stored in appropriate
inert-crystal silo. Its direct exportation is sometimes attempted but,
since biomass degrades with acceleration, its value as a source for elan
is much lower, bringing its final price down to a fifth. The
distillation process takes place in complex plants specially built,
requires high temperatures and is energetically very expensive.

Obviously production of elan on location for later exportation is
preferrable, but survival on the surface of Csi Afrae 5 is uncertain
because of the adverse environmental conditions that are a source of
frequent plant failures. Through atmospheric processors installed at
high altitude, far away from plantations, it is possible to obtain air
and water and grow the necessary food in hydroponic greenhouses. The
processors' yield descreases sensibly when the planet is more distant
from the primary and the temperature gets lower, time at which the
growth of the lichen gets more flourishing. The position of Csi Afrae,
far away from commercial routes at the edge of known space, renders
highly anti-economic frequent contacts for supplies. Of all the attempts
to install a colony on Csi Afrae 5 to produce elan, few have survived
the first winter.

Another problem is the local ecosystem, that has a hostile reaction to
every intrusion attemp. A seemingly common parasite can attack the
plants, other more esoteric ones seem to be able to perforate
distribution ducts. The removal of the ecosystem using military robots
seems desirable, but the high cost of such an operation has till now
forced to solve the problem using thermal barriers towards which native
forms have an inborn aversion. Specific studies regarding the ecosystem
have never been publicly disclosed.

Elan export and commerce are monopoly of Hermeschem Galactica, that owns
large provisions of it. Its production is contracted to firms
specialized in extreme condition worlds. Often, the dream of their
managers was to steal Hermeschem's control over elan to enter the club
of the powerful in the galaxy. The crude reality has always been a
dependency upon the shuttle that, once a year, buys biomass or elan in
exchange for supplies and new machinery. An exploitation permit for Csi
Afrae 5 is in fact conceded only under an exclusiveness contract
regarding every commercial exchange with the colony.

A new variable has been introduced in the picture when the Altair
biolaboratories developed a genetic process that adapts a human being
for life on Csi Afrae 5. The process consists in a metamorphosys of a
number of human beings to hybrid breeders, destined to live the rest of
their lifes in an elan-saturated environment. A new generation of
pantropic forms should be born from the hybrids, capable of surviving
and breeding outside. Sustaintment of hybrids for a time long enough for
reproduction needs large quantities of elan, because of this it's so
expensive that the second phase of the process has only been
experimented on rats.

\section{Target}

Purpose of the games is to remove the native ecosystem of Csi Afrae 5
and replace it with one dominated by pantropic forms derived from
mankind, free of running in sulphuric acid pools and sinthetizing elan
internally while feeding on mother lichen. To do this it will be
necessary to design, buy, install, connect, check and defend the colony
systems for at least ten years.

The plants are autoregulating and the robots are controlled by
predefined programs, but without a constant supervision even the most
perfect colony will collapse. The choice, by trial and error, of the
parameters that are the base of the management strategy is an integral
element of the game, and is left to the user. The design limits are
described in the \ref{commands} (p. \pageref{commands}) section, with
the related commands, while some playing suggestions are collected in
the \ref{tips} (p. \pageref{tips}) section.

\section{Plants}

\subsection{Production plants}

\subsubsection{Energetic}

\begin{itemize}

\item[$\diamond$] {\it Solar cell}\nopagebreak

Generator that produces electricity proportionally to the intensity of
solar radiation, variable during the year.

\item[$\diamond$] {\it Nuclear reactor}\nopagebreak

Generator that produces a constant quantity of electricity but has to be
fed with always new cooling water that becomes radioactive and can not
be reprocessed.

\item[$\diamond$] {\it Heating system}\nopagebreak

System that transforms electricity in heat. Consumption variation
related to external temperature is folded in the plant yield figure. The
heating ducts seem to offer some protection from alien lifeforms, if the
thermal range is high enough.

\end{itemize}

\subsubsection{Chemical}

\begin{itemize}

\item[$\diamond$] {\it Water and air processors}\nopagebreak

Condensators that extract drinkable water or breathable air from the
alien atmosphere and using electricity. Their yield depends on their
position, higher in altitude, and meteorological factors that typically
get better with growing environmental temperature.

\item[$\diamond$] {\it Distillery}\nopagebreak

Complex of reactors that distill elan from raw biomass, using large
quantities of electricity and heat in the process.

\end{itemize}

\subsubsection{Biological}

\begin{itemize}

\item[$\diamond$] {\it Greenhouse}\nopagebreak

Pressurized idroponic plant where eatable food is cultivated for human
beings. It is run with electricity, heat, water and air. Its yield is
independent from position and environmental factors.

\item[$\diamond$] {\it Plantation}\nopagebreak

Open air coltivation of the mother lichen from which raw biomass is
obtained. Its yield depends on its position, lower in altitude, and from
the growth rate of the lichen that typically gets worse as environmental
temperature gets higher.

\item[$\diamond$] {\it Yeaster}\nopagebreak

Organic device in symbiosis with the mother lichen, doesn't necessitate
of maintenance and directly produces elan without passing through the
raw biomass stage and without using energy. As for the plantation, yield
depends on position and lichen growth rate and is slightly lower than
for the cultivation and distillation process.

\end{itemize}

\subsection{Storage systems}

\begin{itemize}

\item[$\diamond$] {\it Battery}
\item[$\diamond$] {\it Water tank}
\item[$\diamond$] {\it Air tank}
\item[$\diamond$] {\it Food storage}
\item[$\diamond$] {\it Biomass silo}
\item[$\diamond$] {\it Elan tank}

\end{itemize}

\subsection{Consumption plants}

\begin{itemize}

\item[$\diamond$] {\it Computer}\nopagebreak

System for telecontrolled robots, only needs electricity to work. If the
output CPU power is too low, the telecontrolled robots will stop. Every
robot can be controlled using a different control program among the ones
available in the computer's library.

\item[$\diamond$] {\it Habitat}\nopagebreak

Pressurized environment for support of the colony's human population,
who is responsible for the correct functioning of systems. It runs on
electricity, heat, water, air and food and has an internal life support
supply for emergencies. It contains special incubators for accelerated
growth of individuals produced in-vitro, that are activated
automatically when vital support output exceeds population use. At least
one habitat must have a clear side to allow for shuttle docking.

\item[$\diamond$] {\it Hybridome}\nopagebreak

Semiorganic capsule that hosts the colony's hybrid population. It
doesn't require maintenance, runs on electricity and elan and has a
small internal supply of vital support. Hybrids can not get out of it,
so they are useless for repair tasks in case of emergency. The capsule
must have a clear side to allow for the release in the environment of
pantropic forms which are the generation after hybrids. Gestation of
pantropic forms starts when vital support output exceeds population use.

\item[$\diamond$] {\it Metamorpher}\nopagebreak

Pressurized environment that hosts an automatic biolaboratory where,
using baths of elan at different concentrations, human beings are
progressively transformed in hybrids through a genetic recombination
process. It runs on electricity, heat, air and elan. The metamorphosys
is completed only when an adeguate hybrid vital support is available.

\item[$\diamond$] {\it Radiator}\nopagebreak

Dissipating device that permits the setting of a lower bound to the thermal
range of heat ducts. Heating for the colony is taken before the
radiator, that dissipates upto the set value.

\end{itemize}

\section{Robots}

\subsection{Hardware}

\begin{itemize}

\item[$\diamond$] {\it Roboprobe}\nopagebreak

Simple robot controlled by an integrated CPU that runs an exploration
program. It carries a low power laser but doesn't distinguish lifeforms
and attacks them when they interfere with its task. Lack of an armour
renders it particularly vulnerable to electromagnetic phenomena.

\item[$\diamond$] {\it Raider}\nopagebreak

Telecontrolled robot armed with a medium power laser and light armour.
Excellent against parasites, it discerns native lifeforms from human
derived ones. Its low price makes it useful for many tasks.

\item[$\diamond$] {\it Exterminator}\nopagebreak

Telecontrolled robot armed with antiparticle cannon and heavy armour.
Effective against the strongest creatures, it discerns native lifeforms
from human derived ones. It's born to run hunt programs.

\item[$\diamond$] {\it Stalker}\nopagebreak

Telecontrolled robot that can jump ducts, armed with a medium power
laser and an enforced heavy armour with electromagnetic shielding. It carries
devices to dissolve plasma vortexes and limitedly hunt creatures that hide
underground. It discerns native lifeforms from human derived ones.

\item[$\diamond$] {\it Guardian}\nopagebreak

Sophisticated robot controlled by an integrated CPU that runs a patrol
program. It can jump ducts and is armed with a high power laser and a
double heavy armor with electromagnetic shielding. It carries devices
similar to the Stalker but more effective against underground creatures.
It can discern pure pantropic forms from eventual mutations, beyond
native forms. It destroys survivor roboprobes, that are a potential
danger for pantropic forms.

\end{itemize}

\subsection{Library programs}

\begin{itemize}

\item[$\diamond$] {\it Survey}\nopagebreak

The robot stands still and attempts to eliminate hostile forms that come
close to him, supposing he notices their presence.

\item[$\diamond$] {\it Explore}\nopagebreak

The robot tends to move without halt and prefers unexplored regions, not
seeking fights but defending himself if necessary.

\item[$\diamond$] {\it Hunt}\nopagebreak

The robot hunts hostile forms, preferring low altitude regions where the
ecosystem is more flourishing.

\item[$\diamond$] {\it Patrol}\nopagebreak

The robot hunts hostile forms, preferring high altitude explored
regions, typically around the colony nucleus.

\end{itemize}

\section{Commands}\label{commands}

Every command is given with a single keystroke. The most frequent
commands are grouped on the numeric keypad.

\subsection{Movement}

\begin{itemize}

\item[$\Box$] {\large {\tt 1 2 3 4 6 7 8 9}}\nopagebreak

All these keys move the cursor in the direction corresponding to their
placement on the numeric keypad.

In duct construction modes, they also place a duct segment in the new
location, if it doesn't contain plants or deduction points of other
ducts. In this case time is advanced. The first location of a new duct
has to be empty and generally two ducts can only cross in points that
aren't deduction points of connected plants.

\item[$\Box$] {\large {\tt 5}}\nopagebreak

In control mode, moves the cursor to the next deduction point of the
underlying duct.

\item[$\Box$] {\large {\tt .}}\nopagebreak

In control mode, moves the cursor to the next plant with manual
regulation of output or failure.

\end{itemize}

\subsection{Implementation}

\begin{itemize}

\item[$\Box$] {\large {\tt [}}\nopagebreak

In control mode, if the location under the cursor is empty and not
surrounded by other plants, a new plant is placed and time is advanced.

In trade mode, buys a new plant to be placed later.

\item[$\Box$] {\large {\tt ]}}\nopagebreak

In control mode, if the location under the cursor is empty and
previously explored a new robot is placed and time is advanced.

In trade mode, buys a new robot to be placed later.

\item[$\Box$] {\large {\tt /}}\nopagebreak

Switches from control to duct construction mode and viceversa. If a
plant is under the cursor a new duct will be started from there, if a
duct is under the cursor it will be extended fromt he current location
in the direction specified moving the cursor.

\item[$\Box$] {\large {\tt X}}\nopagebreak

In control mode, destroys the duct or plant under the cursor.

\end{itemize}

\subsection{Management}

\begin{itemize}

\item[$\Box$] {\large {\tt Enter}}\nopagebreak

In control mode, if a plant is under the cursor it is switched from
automatic to manual output regulation, or viceversa. If two ducts cross
under the cursor, the lower one is rised.

\item[$\Box$] {\large {\tt +}}\nopagebreak

In control mode, if a plant is under the cursor and is manually
regulated, its target output increases of 5\% of nominal maximum. If a
telecontrolled robot is under the cursor, the next library program is
selected for it.

In trade mode, if the plant is a non-full container it is filled
buying the appropriate resource for 5\% of its maximum capacity.

\item[$\Box$] {\large {\tt -}}\nopagebreak

In control mode, if a plant is under the cursor and is manually
regulated, its target output decreases of 5\% of nominal maximum. If a
telecontrolled robot is under the cursor, the previous library program
is selected for it.

In trade mode, if the plant is a non-empty container the stored
resource is sold for 5\% of its maximum capacity.

\item[$\Box$] {\large {\tt *}}\nopagebreak

In control mode, is a plant is under the cursor and is manually
regulated it target output is zeroed or, if already zero, maximized. If
a telecontrolled robot is under the cursor, the default program is
selected for it.

In trade mode, if the plant under the cursor is a non-empty
containter, the stored resource is entirely sold, if empty it's filled
buying the appropriate resource until it's full or until credits are
finished.

\end{itemize}

\subsection{Evolution}

\begin{itemize}

\item[$\Box$] {\large {\tt 0}}\nopagebreak

In every mode except trade, advances time by one step.

\item[$\Box$] {\large {\tt Spacebar}}\nopagebreak

Exits trade mode advancing time by one step.

\item[$\Box$] {\large {\tt Tab}}\nopagebreak

In control, trade ad watch modes, advances time till the next
event or keystroke. Examples of events are shuttle arrival and departure
and colony end.

\item[$\Box$] {\large {\tt >}}\nopagebreak

In control ad watch modes, advances time till the next event or
year end, without updating the map.

\end{itemize}

\subsection{Utilities}

\begin{itemize}

\item[$\Box$] {\large {\tt Backspace}}\nopagebreak

Show the list of the latest messages.

\item[$\Box$] {\large {\tt ?}}\nopagebreak

Show a list of accepted commands.

\item[$\Box$] {\large {\tt \$}}\nopagebreak

Show a colony value extimate.

\item[$\Box$] {\large {\tt R}}\nopagebreak

Redraw map.

\item[$\Box$] {\large {\tt D}}\nopagebreak

Save the map to disk as a text file with name {\tt elan.map}.

\end{itemize}

\subsection{General}

\begin{itemize}

\item[$\Box$] {\large {\tt L}}\nopagebreak

Load last saved game.

\item[$\Box$] {\large {\tt S}}\nopagebreak

Save current game.

\item[$\Box$] {\large {\tt Q}}\nopagebreak

Run ten years of evolution of the colony, calculate final score and quit
simulation. The process stops when a year is over if a key has been
pressed in the mean time.

\item[$\Box$] {\large {\tt Esc}}\nopagebreak

Immediatly quit simulation.

\end{itemize}

\section{Symbols}

The symbols used on the map are explained in table \ref{symboltable} (p.
\pageref{symboltable}), except for the ones used to represent ducts.

Plants are represented with the corresponding letter, using the color
characteristic of the produced resource. For plants that have an
internal capacity the letter is upper case if the current capacity is
above 1\% of nominal maximum, lower case otherwise. For all the others a
lower case letter means the output is at least 1\% over the nominal
maximum. If the letter is in reverse the plant is functional, be it
turned on or not, otherwise it's broken.

Even robots are represented through the corresponding letter, in upper
case if the robot is active or in lower case if not active because of
lack of CPU power.

Ducts are represented through conventional symbols that are an
indication of the direction, using the color of the resource they
convey, crossings with lower case {\tt x}'s using the color of the
higher duct. Deduction points are marked by a number that is a count of
the plants connected to that duct segment.

Different terrain types are represented by spaces for peaks, or by
punctuation symbols for lower altitudes, down to valleys marked by
asterisks. Peaks and valleys aren't visible at first, and appear only
during exploration of the environment. Unexplored and explored cells
have different colors, and objects are visible only if located in the
the latter.

\begin{table}
\caption{Main map symbols}\label{symboltable}
\begin{center}
\begin{tabular}{|c|l|}
\hline
\multicolumn{2}{|c|}{Devices} \\
\hline
{\tt E} & Solar cell \\
{\tt N} & Nuclear reactor \\
{\tt H} & Heating system \\
{\tt W} & Water processor \\
{\tt A} & Air processor \\
{\tt D} & Distillery \\
{\tt G} & Greenhouse \\
{\tt P} & Plantation \\
{\tt Y} & Yeaster \\
{\tt B} & Battery \\
{\tt U} & Water tank \\
{\tt O} & Air tank \\
{\tt F} & Food storage \\
{\tt S} & Biomass silo \\
{\tt \$} & Elan tank \\
{\tt C} & Computer \\
{\tt @} & Habitat \\
{\tt \&} & Hybridome \\
{\tt M} & Metamorpher \\
{\tt R} & Radiator \\
\hline\hline
\multicolumn{2}{|c|}{Robots} \\
\hline
{\tt I} & Roboprobe \\
{\tt J} & Raider \\
{\tt K} & Exterminator \\
{\tt L} & Stalker \\
{\tt T} & Guardian \\
\hline\hline
\multicolumn{2}{|c|}{Lifeforms} \\
\hline
{\tt X} & Alien parasite \\
{\tt Z} & Alien breeder \\
{\tt \#} & Plasma gizmo \\
{\tt \^{}} & Alien mole \\
{\tt \&} & Pantropic form \\
{\tt ?} & Mutant form \\
\hline\hline
\multicolumn{2}{|c|}{Terrains} \\
\hline
& Peak \\
{\tt .} & Superior region \\
{\tt :} & Intermediate region \\
{\tt ;} & Inferior region \\
{\tt *} & Valley \\
\hline
\end{tabular}
\end{center}
\end{table}

Even though lack of color makes it hard to read, inclusion of the map in
figure \ref{map} could be useful. The map shows a colony in its terminal 
development phase and has been cleaned of terrain type symbols for clarity.
The original color image is included in the distribution package.

\begin{figure}
\caption{A map example}\label{map}
\begin{verbatim}
                                     Y   Y
                                     1---1
                                     |
                     +1-1-------+--+-x+
                     |H1R+-----+1 $| ||
                     | | 1O W C1M11x-+|
                     |B2A1+-221-1-xx11|
                     | | ||O @2F|$1|&||
                     |E2A1x211| ++|| ++
                     | | |+1@1x-+|1|
                     |E1-xx22-1F|1D1--------+
                     | | +x1G1--+|11--+P   P|
                     |E2W1+2-1U || S S111P 1|
                     | | | U |  1x1+  | +--1|
                     |E1W1   1N H|H| S2P1P P|
                     | 12-1-1-2-2+2+--------+
                     |B E E E E B B|
                     +-------------+
\end{verbatim}
\end{figure}

\section{Tips}\label{tips}

For a proficient playing, the following few survival rules are adviced:

\begin{itemize}

\item Initially place the habitat in a high altitude region, suitable
for the atmospheric processors' installation. If the area doesn't present
large enough regions, generate a new one.

\item Design a compact colony, because ducts for resource distribution
have a cost that depends on the resource and has to be anticipated.

\item Don't confuse creation of a new duct with extension of an existing
one, since two ducts can't be connected later.

\item Protect the colony by surrounding it with heating ducts layed
along cardinal directions, since diagonal segments can be crossed.

\item Use storage systems to absorb the consequences of the seasonal
cycle and store resources to be sold when the shuttle comes.

\item Manually check the output of plants when a resource is scarce,
since automatic plant regulations might induce undesired production
priorities.

\item Manually check the output of plants if a fast response time is
desired, since automatic plant regulations produce slower transients to
reduce waist of stored resources.

\item Remember that plants wear out and this induces lower efficiency and
higher failure rates, which can be disastreous for habitats.

\item Don't let human population count get too much lower than the
number of systems, since this dangerously rises average repair time.

\item As soon as your capital allows it, buy a backup habitat that you
will eventually keep running.

\item Keep under control alien activity and don't be impatient with
robots.

\end{itemize}

\section{Technical notes}\label{technical}

The source is almost completely ANSI C, with system dependent code in
the source files:

{\tt system.h} and {\tt console.\{c|h\}}.

All calls to routines not in the standard library are in {\tt console.c}
and porting to systems that have an ANSI driver for the console is
simply a matter of rewriting these.

Adding a minimal graphical user interface would mean slightly deeper
changes, but still limited to the source files:

{\tt interf.\{c|h\}}, {\tt files.\{c|h\}}, {\tt config.\{c|h\}},
{\tt texts.\{c|h\}}, {\tt symbols.\{c|h\}} and {\tt symtable.c}.

The remaining code is independent of the presentation modes.

Currently, the savefile format is tied to the {\sf Elan} execution
system. Implementing a system independent savefile is a matter of
changing {\tt files.\{c|h\}}.

The version that uses the ncurses libraries is compilable on virtually
any system where these are available, since it doesn't contain any call
to Unix specific routines.

\section{Warnings and Known Bugs}

\begin{itemize}

\item Erasing a plant near other plants, all connected to a duct that
passes between them in points distinct but close to the plant to be
erased, the symbols of the deduction points might not be updated
correctly. This is only a representation defect and doesn't have any
consequence on simulation state. The case is quite rare and doesn't seem
so bad to need a correction, but different opinions will be considered.

\item The simulation slows down sensibly as the number of lifeforms on
the map increases. The adopted solution in similar games is to limit
their number, but it appears non realistic and very questionable. Aside
from technical considerations, if the alien population starts to grow
exponentially the best thing to do is to give up on fighting it and
abandon the game.

\item The measurment units used for resources are completely arbitrary
and will be made more realistic a future release.

\item the Linux/ANSI version doesn't support cursor hiding during screen
update because of lack of a standard ANSI escape sequence, while the
Linux/ncurses version will do it on terminals that support it.
Reliability of this depends on the version of the ncurses library used.

\end{itemize}

\section{Credits and tools}\label{credits}

Idea, design and implementation on the Commodore Amiga are by Andrea
Giotti. The two Linux versions and the distribution package are the
result of the work of Michele Bini, who has also contributed good advice
during {\sf Elan} fine tuning. The OS/2 version and the english
documentation are by Duncan Wilcox.

The systems used during development where an Amiga 4000/040 and a
Pentium PC clone, the compilers SAS/C, GCC and IBM C-Set, the reference
text "ANSI C" published by Mark Williams.

Thanks to the countless authors of Moria for the example they provide.

If you like the game, please send a postcard to:

\begin{tabbing}
xxxxxx \= \kill
\> Andrea Giotti \\
\> P.za Monteoliveto, 10 \\
\> 51100 Pistoia \\
\> Italy
\end{tabbing}

\end{document}

