From: aem@symbiosis.ahp.com (a.e.mossberg)
Newsgroups: rec.aviation.simulators,comp.sys.hp
Subject: flight simulators for HP/UX s700 SUMMARY
Date: 22 Jan 1993 21:03:57 -0500
Organization: Symbiosis Corporation, Miami, Florida  (305) 597-4000
Distribution: na
Reply-To: aem@symbiosis.ahp.com
NNTP-Posting-Host: symbi1.symbiosis.ahp.com


Thanks to all that responded, it turns out to be a very simple answer:

acm 

In fact, one of you mailed it to me!

Thanks to:

uunet!pereiii.uji.es!navarro
Thomas Treadway
Bernd Schusser
Greg Cagle
Torsten R. Kirschner
Brad F. Bass

No doubt most interested parties already have this, but I'm including
the readme for acm here:

--
Subject: ACM Flight Simulator Frequently-Asked Questions List

This article contains the answers to some Frequently-Asked Questions
(FAQ) about the ACM Flight Simulator.  It has been posted as a response
to the growing interest in ACM and to reduce the net traffic in the
"rec.aviation.simulators" newsgroup.

This FAQ is only pertinent to the 2.4 version of ACM.

The following questions are answered:

    Q: What is ACM?
    Q: What machines does ACM run on?
    Q: How do you run ACM?
    Q: What aircraft are simulated?
    Q: Where can I get ACM?
    Q: Who is/are the authors?
    Q: Why won't ACM compile under HPUX?
    Q: Is there an PC or Mac version of ACM?
    Q: What is the current "official" release?
|   Q: When will there be another release?
    Q: Are there other versions around?
|   Q: How can I learn about modern air combat tactics and flight simulation?
    Q: How can I change the scenery?  Is there a scenery editor available?
    Q: What is the file format of an object file?
    Q: What is ACM's coordinate system like?  What basic units are used?
    Q: When I tried to run "acm", I get "Can't connect to server".
    Q: How can I add to the list of available aircraft?
    Q: When I compile, the compiler says "malformed or unknown option ...."


Of course, this FAQ won't answer all the questions.  If you have a
question about ACM, please e-mail me at "bass@convex.com".  I'll
try to reply as soon as possible.  I'll also update the FAQ and
repost it periodically.

----------------------------------------------------------------------
Q: What is ACM?

ACM is a LAN-oriented, multiplayer aerial combat simulation.  Players
engage in air-to-air combat against one another using heat-seeking
missiles and cannons.

ACM is not the SGI flight simulator.  ACM is not Sun's "Aviator".
Neither is it related to any commercially-available simulator.

----------------------------------------------------------------------
Q: What machines does ACM run on?

I personally know that HP, MIPS, Sparc, Sun3 and DEC versions exist.
The operating system is BSD-style Unix.

>From the README file:
    ... [Riley's] main design objective was to provide source code that
    could be easily compiled and executed on a wide variety of
    platforms.  To that end, ACM is written entirely in C, exploiting
    the programming features of Unix, X11, and the BSD socket interface.

    ...I suspect that an 10+ SPECmark system could handle a typical
    multiplayer load...

----------------------------------------------------------------------
Q: How do you run ACM?

ACM exists as two programs.  The first component, named "acms", is a
server process that manages the multiplayer environment.  It also
manages the flight simulation and display management that is required.

The second, named "acm", is a small program that, when invoked, starts
a session on a given workstation.

Most players will prefer to run the "acms" process on a back-end server
system on their local area network.  Players at client workstations can
then invoke the "acm" program to begin play.

----------------------------------------------------------------------
Q: What aircraft are simulated?

Two aircraft are modeled: the General Dynamics F-16 and the Soviet
MiG-23.  The missiles are AIM-9M Sidewinders.  The cannon is a
20-mm M61A1 Vulcan.

----------------------------------------------------------------------
Q: Where can I get ACM?

ACM can be FTP'ed from "export.lcs.mit.edu" (18.24.0.12).  It's in the
"contrib" directory:

    % ftp export.lcs.mit.edu
    Connected to export.lcs.mit.edu.
    Name (export.lcs.mit.edu:xxx): anonymous
    331 Guest login ok, send ident as password.
    Password: _________
    ftp> cd contrib
    ftp> binary
    ftp> get acm.2.4.tar.Z
    ftp> quit

Now, you'll have to uncompress and un-tar it, like so:

    % uncompress acm.2.4.tar.Z
    % tar xvf acm.2.4.tar

This will create an "acm" subdirectory.  There is a README file that
will tell you where to go from here.

----------------------------------------------------------------------
Q: Who is/are the authors?

ACM was written by Riley Rainey (riley@atria.com).  In the credits,
Riley cites Dan A. Dickey's assistance in improving the server code.
The 3-D graphics routines are closely based on an article in "Byte
Magazine" by Franklin C. Crow.

Many others have sent in bug fixes and enhancements that have been
incorporated into ACM.

Also, there is an ad-hoc ACM development forum which functions was a
sounding board for Riley to bounce new ideas off of.  It also functions
as a beta-test group and forwards suggestions and enhancements for
inclusion in the next release.  Two of its members and their areas of
interest are:

Brad Bass (bass@convex.com) - addition of conventional flight and 
    navigation instruments.  Inclusion of FAA navaid and airport data
    for IFR flight simulation.

Tim Tessin (tjt@cirrus.com) - experimentation with higher-performance
    graphics systems (Sun GX accelerator, XGL), sound, and increased
    simulation and combat realism.

----------------------------------------------------------------------
Q: Why won't ACM compile under HPUX?

Some of the library functions have different names.  Add the following
to the end of "fsim/manifest.h":

    #ifdef hpux
    #define NEEDS_COPYSIGN
    #define srandom srand
    #define random rand
    #define sigvec sigvector
    #endif

----------------------------------------------------------------------
Q: Is there an PC or Mac version of ACM?

No. At this point, ACM relies heavily on X-windows and the Berkeley
Unix socket interface.

----------------------------------------------------------------------
Q: What is the current "official" release?

ACM2.4 was the last release to come from Riley and was posted to to
the Usenet in September of 1991.

----------------------------------------------------------------------
Q: When will there be another release?

The release of ACM revision 3 has been delayed at least to the end
of January 1993 -- possibly as late as February.

----------------------------------------------------------------------
Q: Are there other versions around?

ACM was distributed as source code.  This has encouraged much user
experimentation.  Many people have used ACM as a foundation for an
arcade-style shoot-em-up game.  Others have added additional aircraft
types, surface-to-air missile sites, ground vehicles and more scenery,
and wage extensive battles in teams.  Still others have added
conventional aircraft instrumentation and built IFR simulators with
navaids and runways from the FAA data tapes.

----------------------------------------------------------------------
Q: How can I learn about modern air combat tactics and aircraft simulation?

Here is a list of Riley's references for those looking for more
detailed information about modern air combat and the technical basis
for the ACM software.

Good General References:        [Spick87], [Sweet87]
Air Combat Tactics:             [Shaw85]
Aerodynamics:                   [Huenecke87, [Blake91]
Aircraft Performance Data:      [Spick87], [AirI Aug92], [Blake91],
                                [Gunston80], [Chant81]
Modern Air-to-Air Missiles:     [Blake91], [Shaw85]
---------
[Spick87]       Spick, Mike.  An Illustrated Guide to Modern Fighter Combat.
                New York: Prentice Hall, 1987.

[Sweet87]       Sweetman, Bill, et al.  The Great Book of Modern Warplanes.
                New York: Portland House, 1987.

[Shaw85]        Shaw, Robert L.  Fighter Combat.
                Annapolis: Naval Institute Press, 1985.

[Huenecke87]    Huenecke, Klaus.  Modern Combat Aircraft Design.
                Trans. Airlife Publishing Ltd.  Annapolis: Naval Institute
                Press, 1987.

[Blake91]       Blakelock, John H.  Automatic Control of Aircraft and Missiles.
                New York: John Wiley and Sons, 1991.

[Gunston80]     Gunston, Bill.  An Illustrated Guide to Modern Fighters and
                Attack Aircraft.  New York: Arco Publishing Inc., 1980.

[Chant81]       Chant, Chris (editor).  Concise Guide to Military Aircraft of
                the World.  Feltham: Temple Press, 1981.

[AirI Aug92]    Braybrook, Roy. ``Rapidly Going Nowhere?'', Air International,
                43, No. 2 (1992), 67-74.

----------------------------------------------------------------------
Q: How can I change the scenery?  Is there a scenery editor available?

At present, there is no public-domain scenery editor available for the
creation and placement of ACM objects. (any volunteers out there?)
Simple objects can be built using your favorite text editor (see the
next two questions for the format specifics).  Study "init.c" to learn
how they are placed in the ACM environment.

Clearly, this is an area that could easily be improved upon.  The
author's primary development focus has been in the fidelity of the
flight model, not the external view.

----------------------------------------------------------------------
Q: What is the file format of an ACM object file?

The basic format of an object file looks like this:

    *<name>
    <vertex_count> <polygon_count>
    <vertex_number> <x-coord> <y-coord> <z-coord>
    :
    :
    #<polygon_color> <number of vertices in this polygon> <vertex_number list>
    :
    :

For example:

    *pyramid                    # the name of the object
    5 4                         # vertex and polygon count
    1 28000 0 0                 # the
    2 0 16000 0                 #   five
    3 -35000 0 0                #     vertices
    4 0 -14000 0
    5 0 0 -8200
    #788b63 3  1 2 5            # the
    #788b63 3  2 3 5            #   four
    #788b63 3  3 4 5            #     polygons
    #788b63 3  4 1 5


----------------------------------------------------------------------
Q: What is ACM's coordinate system like?  What basic units are used?

It looks like the Right-Hand-Rule is used exclusively, but thumbs-down
instead of thumbs-up, like so:

     First finger: the positive X-axis is away from you (North)
     2nd finger:   the positive Y-axis is to the right (East)
     Thumb:        the positive Z-axis is down (negative is Up)

All distances are in feet.  Angles are in radians.  Velocity is in
feet-per-second.  Yaw/pitch/roll rates are in radians-per-second.
Conversions are made to the usual units when displayed on the HUD.

----------------------------------------------------------------------
Q: When I tried to run "acm", I get "Can't connect to server: Connection refused".

You haven't started the "acms" server process yet.

See the next question, also.

----------------------------------------------------------------------
Q: When I tried to run "acm", I get "acm: can't open <hostname>:0.0".

The machine that's running "acms"  is being denied a connection to
your workstation's X-windows server.  It's a simple form of privacy
and security control.  The "xhost" command is used to add and delete
computer host names to the access list.  For example, if "cyclone"
is the name of the computer running "acms":

        % xhost cyclone

To completely switch off access control:

        % xhost +

----------------------------------------------------------------------
Q: How can I add to the list of available aircraft?

ACM3, due out Q1-93, will have an aircraft configuration file
that the user can modify or add to.

Under ACM 2.4, the aircraft are hard-coded in.  Presently, there are
two functions, initf16() and initmig23(), called from init(), that
construct each aircraft type.  Build yourself another similar function
using initf16() as a model.  Also, see the "craftType" struct
definition in "pm.h" for more detail on its members.  Don't forget that
the units are feet, radians, pounds and seconds.

Call your function from init() to create an instantiation of your new
aircraft.  The parameters that describe your aircraft will be loaded
into an element of the craftType array "ctype".  Two f16's and two
mig23's are already created.  You'll be adding a fifth plane.

Now, look at "newPlayer.c" around line 234.  You'll see that "char *plane"
is set to "f-16c" or "mig-23" based on the team number, then a call is
made to newPlane() to retrieve the aircraft type.  You'll have to add
your aircraft name to the "if" statement.

Naturally, a better way would be to have a "-plane" flag to "acm", and
then make the call to newPlane() based on its argument.  This is an
easy hack and would be preferable to the approach in the previous
paragraph.

The last modification is in resupplyCheck().  The initialization of
each player's start location, based on the team number, is done here.
If you implemented a "-plane" flag, you won't have to do this.  If
not, you'll have to do something to keep from overstepping the bounds
of the "teamLoc" array.


----------------------------------------------------------------------
Q: When I compile, the compiler says "malformed or unknown option ...."

You probably didn't run "xmkmf", then "make Makefiles".  This will
create a new set of makefiles for the particular hardware & operating
system that you're using.  See the README file for more details.

----------------------------END---------------------------------------

-- 
andrew mossberg           systems specialist           symbiosis corporation
(305) 597-4110            fax (305) 597-4002           miami, florida 33166-6202
aem@symbiosis.ahp.com     uunet!symbi1!aem             SPAN: UMIGW::AEM
Newsgroups: rec.aviation.simulators