| Home |  |

| Catalogue |  |

| FAQ |  |

| What's New? |  |

# Search for a package

Package name
Description
Author
Search Term
Case Sensitive

Locator: Home > Catalogue > acm-5.0 README file
    ACM Flight Simulator,  revision 5.0

    What is ACM?
    ------------

    ACM is a LAN-oriented, multiplayer aerial combat simulation.  The 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.  A Windows/95 version is available from www.websimulations.com.

    Players engage in air to air combat against one another using heat seeking
    missiles and cannons.

    ACM is implemented as a distributed simulation.  It communicates information
    via the IEEE Distributed Interactive Simulation protocol (IEEE 1278.1-1994).
    This should allow ACM to interoperate with other simulations that support that
    protocol.

    Riley Rainey (riley.rainey@websimulations.com)
    Dallas, Texas
    December 23, 1998

    Building ACM:
    -------------

    To build ACM, type:

    	$ ./configure
    	$ make

    On systems where X11 is installed in an unusual location, configure may have
    trouble locating the X include files and libraries (you'll know that
    because the compiler will complain that it can't find files like "X11/X.h").
    If this problem crops up, you can help configure to set up the
    Makefiles by telling it where to find X11:

    	$ x_includes=/usr/myX11/include; export x_includes
    	$ x_libraries=/usr/myX11/lib; export x_libraries
    	$ ./configure
    	$ make

    By default, configure will compile ACM using gcc if gcc is found in your PATH
    environment variable.  Some combinations of gcc and OS platforms have problems
    with ACM (gcc 2.2.2 seems to have problems on SunOS and HP-UX, for example).
    You can override configure's selection of gcc:

    	$ CC=cc; export CC
    	$ ./configure
    	$ make

    ACM can then be executed by typing:

    	$ cd src; acm

    When you are ready to install ACM on your system:

    	# make install

    What's different with revision 5.0:
    -----------------------------------

    Current ACM documentation may be found in the file "acmdoc.rtf".

    ACM now dynamically maps DIS entity identifiers to rendered objects.  The
    mapping is defined in the file "objects/object-map.txt".

    ACM now has a more flexible scheme for determining aircraft damage.  See the
    file "objects/munition-map.txt".

    ACM now supports reading DXF object description files.  This support isn't
    exhaustive, but it works with many popular 3D CAD programs capable of
    exporting DXF files.

    The V library object description file suffix was changed from ".obj" to
    ".obv" to avoid conflicting with Micrsoft object file names.

    A bug in the new scene reader code was preventing 'FEATURES' (special
    ground based features) from being rendered.  The default-scene file now
    contains an example of a ground feature reference -- the tower at Addison
    airport.

    Support for the GNU --srcdir option to 'configure'.  Michael Deutschmann
    (ldeutsch@mail.netshop.net) suggested changes to support this as well
    as numerous autoconfig enhancements.

    Several changes have been made to allow ACM to compile and link
    cleanly on Linux systems.  ACM's configure now looks for a /usr/lib/games
    directory and installs ACM's object files there if it is present.

    Mats Lofkvist fixed several bugs relating to DIS processing.

    The DIS/x library now supports more DIS dead reckoning methods.
    All static and world-based methods are now supported.  Body
    frame methods remain unsupported.

    Missiles will no longer fire while weight is on the landing gear.

    Mark Cianfaglione (markcia@nortel.ca) suggested changes to landing gear
    handling.  Now the gear will not come up until weight is off the wheels.
    At Mark's suggestion, the low fuel light now comes on when there is
    fifteen percent fuel remaining -- it used to be hard coded to come on
    any time there was less than 1000 lbs of fule on-board.

    Misha Stephanov <misha@hp1.physics.uiuc.edu> pointed out two one-line,
    but significant bugs in update.c and damage.c.  Misha also suggest
    a changes to landing gear handling to detect when someone is unlucky
    enough to attempt a gear-up landing.

    ACM now has a basic DIS Stealth capability.

    ACM supports numerous new command line options, all of which are
    documented in the acmdoc.rtf file.

    What's different with revision 4.8:
    -----------------------------------

    The world is now round -- er, spheroidal. When you enter the ACM world, you
    are placed on runway 15 at Addison airport in Dallas, Texas [my aircraft's
    home base ;-) ].  The scene databases now include realistic radio navigation
    aid information as well as runway location information. With this info
    integrated into ACM, you can fly more real instrument approaches.
    If you'd like to try, you should get a copy of the current
    National Ocean Service [NOS] terminal procedures [approach plates]
    South Central Volume 2. I will try to get permission to scan and distribute a
    few with the release of ACM.

    Only the Dallas scene database is currently available.

    Use your PC joystick with ACM!  Support for the Colorado Spectrum
    Workstation Gameport(tm) has been added to ACM.  This gameport adapter
    allows you to connect a PC joystick to a serial line on your UNIX
    workstation.  The Workstation Gameport can be ordered from Colorado
    Spectrum by phone: +1 (970) 225-6929; it currently lists for $100.
    The Workstation Gameport is a different design than the Notebook
    Gameport that you will find in your local PC retail store.  The Notebook
    Gameport will not work with ACM.

    WARNING:  This support is currently incomplete.  The joystick driver has been
    temporarily hard-wired to interface to two-axis joysticks.  To enable joystick
    operation, type:

    	$ acm -js /dev/cua1

    The name of the serial port connected to the gameport is supplied as the
    second argument.  The device name will vary from one system to the next
    (/dev/cua1 corresponds to the direct-connect port "B" on my Sparc IPX).

    Mats Lofkvist has integrated ACM with the U.S. Navy Postgraduate School's
    Distributed Interactive Simulation software (called NPSNET).  As the name
    implies, DIS is a simulation information interchange protocol that allows
    distributed servers (ACM servers, in this case) to work cooperatively.

    I have replaced Mats' use of NPSNET with a DIS library that I created.  This
    library implementation should be more portable.

    Using DIS means that if you are using ACM in a multiplayer environment, you'll
    see much better overall performance.

    The DIS protocol relies on broadcast UDP datagrams. Therefore, all ACM
    players must currently run on the same subnet (UDP broadcasts are not
    propagated beyond a subnet).  There are DIS bridges available that
    would potentially relax this restriction, but none have been tested with
    ACM yet.

    The ACM server (acms) has been eliminated.  Invoke acm by simply
    typing 'acm'.  Check the acm man page for information about new
    command-line arguments and switches.

    A font problem that manifested itself on AIX/Windows has been fixed.

    Fixes for Linux compatibility problems in ACM 4.7 were submitted by
    Jeremie Petit (petit@aurora.unice.fr).

    What's different with revision 4.7:
    -----------------------------------

    A problem with V library 3-D to 2-D mapping has been fixed.

    A problem with the V library could cause this esoteric error message on some
    X servers:

    	BadPixmap (invalid Pixmap parameter)

    The fix to this problem was identified by Brent Holland.

    What's different with revision 4.6:
    -----------------------------------

    Sound support has been added for many HP platforms.  Philippe-Andre Prindeville
    made the changes required for ACM to function with the HP-UX audio API.
    Configure no longer assumes that the NCD netaudio library is the only only one
    named "libaudio.a".

    Cloud layers can now be used to affect combat conditions.  A single cloud
    top/base can be set.  This solid cloud layer is opaque to IR emissions, so
    you will have a hard time shooting down an opponent who is on the other side
    of the clouds.  The default cloud base is 2800 feet, tops at 9000 feet.
    It is not currently possible to "turn-off" clouds.

    Portability problems with ACM's usage of the random number generators rand()
    and random() have been fixed.

    A problem with architectures where a "long" is not the size of an "int" (DEC
    Alphas) has been fixed.

    What's different with revision 4.5:
    -----------------------------------

    The HUD compass and HSI were pointing to true north rather than to magnetic
    north.  This has been fixed.  The magnetic variation has been set to
    eight degrees east (it can be changed in navaid.c).  This means that the
    18-36 runways at both team's airfields are actually 17-35 runways; the runway
    heading for the ILS 17 approach at team one's airfield is 172 degrees;  the
    runway heading for the ILS 36 approach at team two's airfield is 352 degrees.

    A field has been added to the navaid description structure to account for
    the fact that ILS localizers have a variable beam width (three to six degrees
    according to the FAA Airman's Information Manual).  The two ILS approaches
    have been adjusted so that their beam widths are 700 feet wide at the runway
    threshold (per the standard).

    Porting problems with Solaris 2.3 and DEC Alpha OSF/1 have been fixed.
    Thanks to Bill Davidson, Peter Asenstorfer, and S.Y. Ni.

    A problem in the VOR TO/FROM logic was pointed out by Jeff Westbrook and has
    been fixed.

    A problem with monochrome support was fixed by Jeff Westbrook.

    ACM's configuration facility was rebuilt using autoconf 1.9.

    What's different with revision 4.4:
    -----------------------------------

    Simple visual depth cueing has been added to ACM.  Depth cueing is only
    activated on color or grey-scale screens that have at least 8 bit planes.
    Visibility can be set using the "-visibility" switch on the acms command
    line.  It produces interesting, if slow, results when used with any of the
    Hawaiian Island scenes.  I intend to improve the performance and visual
    fidelity of this feature.

    A bug in the depth cueing color blending code has been fixed.

    Fixes to src/makefile.in and V/lib/Makefile.in have been applied.  A
    "make depend" target has been added.

    What's different with revision 4.3:
    -----------------------------------

    Drones will now maneuver and attempt to attack you with missiles.
    The original inspiration and code changes were supplied by
    Jason Nyberg (nyberg@ctron.com).  The drone tracking method was modified
    and the missile launch logic was created by Riley Rainey.

    A bug in the AIM-9 time-to-target HUD calculation was fixed.

    Support for NCD's netaudio software has been added.  The NCD netaudio software
    is free and available in source form via anonymous ftp from ftp.x.org.

    Netaudio 1.1 does not allow the user to switch the audio output port on
    a Sun IPX (an IPX has both an internal speaker and an external jack for
    headphones or separate speakers).  You can switch ports by using the SunOS
    /usr/demo/SOUND/x_soundtool before executing acms.

    The scene file format has been modified slightly.  The third line is
    now the color to be used for the "ground".

    The kauai-scene, oahu-scene and maui-scene files display environments
    around those Hawaiian islands.  Terrain elevation data was extracted from
    USGS one degree Digital Elevation Model (DEM) data files.  Because of the
    complexity of these scenes, rendering speed is unacceptably slow on all but
    the fastest contemporary workstations.

    A bug in the V library backface clipping code was fixed by Tim Love.

    A bug in the V library was resulting in oddly colored instrument panels at
    seemingly random times.  This has been fixed.

    A problem with the landing gear parameters on the F-16 has been fixed.

    Acms 4.2 core dumped on AIX systems.  This has been fixed.  Tom McConnell
    supplied the changes.

    What's different with revision 4.2:
    -----------------------------------

    Several nits reported by CodeCenter have been repaired by Brad Bass.

    Makefiles now use the $(MFLAGS) macro, where needed.

    What's different with revision 4.1:
    -----------------------------------

    Ultrix and HP-UX make(1) was having problems with the $(MAKEFLAGS) directive in
    V/Makefile.in.  It has been removed.  It's removal should not affect the
    build process.

    The Ultrix 4.3 shell was having problems with "./configure".  The problem
    has been fixed.

    A problem in "./Makefile" that would cause a mis-identification of the
    default target has been fixed.

    ClipPoly.c was unused in ACM 4, but has been updated so that it compiles.

    A problem in inventory.c that was causing the nose-wheel steering mode to
    stay enabled at all times has been fixed.  This problem was pointed-out by
          _
    Mats Lofkvist (d87-mal@nada.kth.se).

    What's different with revision 4.0:
    -----------------------------------

    Combat Simulation
    -----------------

    Mig-29's are now the default team two plane.

    The HUD display has been improved.

    A bug in the missile tracking algorithm that would induce misses when the
    target was moving at a high speed has been fixed.

    ACM now supports situation recording and playback.  The "{" key will start
    recording, the "}" key ends it.  The positions of all aircraft existing
    during the recording period will be saved in the file "./back_box_output".
    That file can be played back by moving it to the file "./black_box_input".
    Activate the playback by pressing the "[" key while you're in ACM.

    DME, VOR's, Localizers, and Glide Slopes have been added.  An HSI has been
    added to provide VOR and ILS readouts.

    To activate the HSI, press the 'R' key.  Each press of the 'R' key cycles
    through RADAR -> HSI -> RADAR STANDBY.  The Omni Bearing Selector is moved
    20 degrees with the '7' key, and one degree with the '8' key.  The '9' key
    increases the NAV frequency by 1 MHz, the '0' key increases it by 0.05 MHz.
    The selected frequency is displayed at the lower right-hand section of the HSI.

    If you want to shoot an ILS approach, I suggest the following settings:

    LEVEL FLIGHT:
    	power	45 %RPM
    	flaps	20
    	gear	up
    	speed brake  deployed as needed
    	speed	~ 150 kts

    ON GLIDE SLOPE:
    	power	35 %RPM
    	flaps	20
    	gear	down
    	speed brake  retracted
    	speed	140-150 kts
    	AOA	10-11 degrees

    When you shoot the ILS 17 approach, don't forget to set the OBS dial to
    the runway heading (172 degrees).  Otherwise, you'll get a very
    confusing picture of which way to fly.
    This approach configuration gives you a good opportunity to practice
    soft landings.

    Flight Simulation
    -----------------

    Engine response is no longer instantaneous.  Engine RPM (power) will
    increase and decrease gradually to a newly selected setting.

    The aircraft simulation model has been changed substantially.  Tim Tessin
    uncovered a bug in pm.c that was substantially degrading the performance
    of all aircraft in high angle of attack situations. It's been fixed.

    Several problems with the lift-curve determination have been fixed.
    The lift coefficient is now determined by interpolation.  The lift contribution
    of flaps has been modified to be more consistent with reality.

    Aircraft control surface effectiveness has been increased substantially.
    I believe that this increase in consistent with a more realistic simulation.

    ACM now models aircraft motion on the ground more accurately.  ACM actually
    models the spring and motion damping effects of the landing gear struts, as
    well as the contribution of ground friction by the wheels.

    A problem with the roll dynamics of the flight simulation model pointed out
    by Tim Tessin has been fixed.  The roll model (no pun intended) has been
    substantially re-worked to be able to use standard NACA stability
    derivatives to describe aircraft roll performance.

    The pitch and yaw dynamics have been modified to use NACA derivatives.

    The outside view has been modified.

    The F-16 flight model has been modified to be more well behaved; lateral
    and longitudinal motion damping coefficients have been increased.

    The Graphics
    ------------

    The graphics have been re-vamped to be much faster on color workstations.
    Monochrome graphics are slower.

    Object clipping has been improved in the V library to improve rendering
    performance.

    The Guts of ACM
    ---------------

    ACM now participates in the X11 WM_CLOSEDOWN and WM_DELETE_WINDOW protocols.

    The directory structure has been modified to get the object description
    files out of the source directory.  Object files now all have a '.obj'
    extension.  The 'make install' target has been improved.

    Aircraft descriptions are now defined in the file "objects/inventory".

    Terrain layout is now described using a "scene" file.  Acms accepts a
    "-s scene-file-name" command line option. The file "default-scene" describes
    the default layout.

    A periodic alarm facility has been added in the guts of ACM.  See alarm.[hc]
    for details.  An example of its use can be found in navaid.c; it is used
    to periodically update DME readouts on all aircraft.  It is designed to be
    compatible with variants of ACM that modify deltaT on the fly.

    The radar display has been modified to be more closely coupled to the V
    library.  This code was borrowed from the ACM 4.0 version.

    If no geometry specification is supplied, the ACM server now computes a
    reasonable window geometry based on the screen's width.

    Keypad view selection has been added for Sun systems with some help from
    Keith Fredericks (keith@cray.com).

    What's different with revision 2.4:
    -----------------------------------

    Missiles now use a more realistic target tracking method, known as proportional
    navigation guidance.

    Sustained aircraft load factors at high speeds are now limited to a range of
    about +10.0 to -4.0 gees.

    More math portability problems have been worked-around.  src/manifest.h
    contains the definition NEEDS_COPYSIGN.  You may comment this out if your
    system supports the IEEE copysign function.

    This revision has been tested with X11R5.

    What's different with revision 2.3:
    -----------------------------------

    This revision repairs several portability problems uncovered in revision 2.2.

    A problem with IEEE math in interpolate.c has been worked-around.  Invalid
    interpolation requests (which shouldn't happen in ACM) will now result in
    messages being printed to standard error.

    Several debugging code fragments are now only conditionally compiled. See
    manifest.h for more information.

    A problem controlling aircraft resupply could generate unexpected errors
    from a system's sqrt function ("sqrt: domain error", for example). It has been
    fixed.

    What's different with revision 2.2:
    -----------------------------------

    Explosions now appear in the skies of ACM.  Explosions will appear when an
    aircraft is struck by a missile or cannon shell.  Players go out with a
    bang, too.

    The flight simulation model has been tweaked to allow for spins.  I don't
    think you can really spin an F-16, but if you'd like to try it in ACM, do
    this: build up some airspeed in level flight and then go vertical (pitch
    up to ninety degrees, or thereabouts).  Cut the throttle and afterburner
    and keep the nose pointed vertically.  Eventually, the F-16 will begin to
    fall back to earth -- and typically enter a spin.  The only recovery
    procedure that I've tried that works is to apply full forward (down)
    elevator to break the stall; then re-apply power.

    Elevator trim has been added.  The (J) key sets to the elevator trim to
    be equal to the current elevator setting.  The (U) key resets it to the
    normal takeoff setting.  Typically, you'll get the aircraft into the
    pitch configuration that you want (e.g. level flight) and then press the
    (J) key -- then move the elevator control to the neutral position
    (the center of the HUD).

    Aircraft now have functioning landing gear.  The (G) key acts as the landing
    gear handle.  A landing gear handle and status lights are located to the right
    of the radar set.

    Each aircraft now carries a limited number of air-to-air missiles (eight, to
    be precise).

    Aircraft can now be re-armed and re-fueled on the ground.
    To do this, a player must land successfully at the team's home airfield
    and come to a complete stop.  After an interval of not greater than 30
    seconds, the aircraft will be completely re-armed and refueled.  Aircraft
    damage is repaired, as well.

    Acm's reaction to the resizing of its window has been improved substantially.

    The code handling the HUD altitude, airspeed, and heading ladders has been
    improved.

    A problem with acms dumping core when it cannot access the graphics
    description files has been fixed.  Thanks go to Mark Moraes.

    Acm now makes an effort to select an appropriate X Visual to run in.  These
    changes are based on code supplied by Mark Hall.

    A problem with unwanted NoExpose events on monochrome displays was fixed
    by Georges Lauri.

    Acm's usage of the X DISPLAY environment variable has been improved with the
    help of some code from Michael Pall.  Now systems where the ACM server is
    running on the same system as the X server can get "unix:*" and "local:*"
    connections.

    GENERAL NOTES
    -------------

    This software is divided into three major parts: the 3-D graphics routines,
    the DIS library and the flight simulator itself.  The 3-D stuff is contained
    in the V directory.  V/lib holds the library itself.  V/test contains a
    program that can be used to test your port of the V library. The dis
    directory holds the Distributed Interactive Simulation library.

    `src' contains the remainder of the flight simulator.

    Comments and suggestions to improve this software are welcome.

    Several "features" in this revision of the software:

    	* flaps and landing gear can be lowered at rediculously high speeds.

    	* you can fly through mountains.

    	* engines do not flame-out.

    README: patchlevel-4.8

Home | Catalogue | FAQ | What's New? | Contact Us