\input texinfo   @c -*-texinfo-*-

@c %**start of header
@setfilename acm.info
@include version.texi
@settitle GNU ACM @value{VERSION} Manual
@c Disable the monstrous rectangles beside overfull hbox-es.
@finalout
@c Use `odd' to print double-sided.
@setchapternewpage on
@c %**end of header

@iftex
@c Remove this if you don't use A4 paper.
@afourpaper
@end iftex

@c Title for man page.  The weird way texi2pod.pl is written requires
@c the preceding @set.
@set ACM ACM
@c man title Wget The non-interactive network downloader.

@dircategory Games
@direntry
* ACM: (acm).         Aerial combat simulator.
@end direntry

@copying
This file documents GNU ACM, the Aerial combat simulator.

@c man begin COPYRIGHT
Copyright @copyright{} 2010 Free Software Foundation, Inc.

@iftex
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
@end iftex

@ignore
Permission is granted to process this file through TeX and print the
results, provided the printed document carries a copying permission
notice identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).
@end ignore
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
copy of the license is included in the section entitled ``GNU Free
Documentation License''.
@c man end
@end copying

@titlepage
@title GNU ACM @value{VERSION}
@subtitle The aerial combat simulator
@subtitle Updated for ACM @value{VERSION}, @value{UPDATED}
@author by Sergio Lopez

@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage

@contents

@ifnottex
@node Top, Overview, (dir), (dir)
@top ACM @value{VERSION}

@insertcopying
@end ifnottex

@menu
* Overview::                    Features of ACM.
* Invoking::                    ACM command-line arguments.
* Playing::                     How to play.
* Keyboard Command List::       List of assigned key bindings.
* Network Play::                Playing with a friend.
* Copying this manual::         You may give out copies of this manual.
@end menu

@node Overview, Invoking, Top, Top
@chapter Overview
@cindex overview
@cindex features

@c man begin DESCRIPTION
GNU ACM is a distributed aerial combat simulator that runs on the X
Windows System. Players can engage in simultaneous air combat from different
computers. Players fly jet aircraft (something close to either an
F-16C Falcon or a MiG-29 Fulcrum) equipped with radar, heat seeking missiles and cannon.

@c man end

GNU ACM is a slighty modified version of the original ACM made by
Riley Rainey at WebSimulations.


@ignore
@c man begin FILES
@table @samp
@item /usr/local/etc/wgetrc
Default location of the @dfn{global} startup file.

@item .wgetrc
User startup file.
@end table
@c man end
@end ignore

Finally, GNU ACM is free software.  This means that everyone may use
it, redistribute it and/or modify it under the terms of the GNU General
Public License, as published by the Free Software Foundation (see the
file @file{COPYING} that came with GNU ACM, for details).

@node Invoking, Playing, Overview, Top
@chapter Invoking
@cindex invoking
@cindex command line
@cindex arguments
@cindex nohup

The syntax for running GNU ACM is pretty simple:

@example
@c man begin SYNOPSIS
acm [@var{option}]@dots{}
@c man end
@end example

If no arguments are specified, a game will be created with default
options. This environment is enough for getting to know the game and
its controls.

@menu
* Game Options::       
* DIS Options::  
@end menu

@c man begin OPTIONS

@node Game Options, DIS Options, , Invoking
@section Game Options

@table @samp
@item -plane @var{plane}
Select @var{plane} as your aircraft. Valid options are F-16, MiG-29,
C-172.

@item -team @var{team_id}
The team id is used to determine in which point of the map are you
going to start (all players with the same team id start in the same point).

@item -frame-rate @var{rate}
Limits the displayed frame rate to n frames per second.  If neither 
@samp{-frame-rate} nor @samp{-update-rate} are specified, ACM updates the display
as fast as possible, effectively eating all available CPU time.

@item -update-rate @var{rate}
Sets the simulation update rate to n interations per second. If neither 
@samp{-frame-rate} nor @samp{-update-rate} are specified, ACM updates the display
as fast as possible, effectively eating all available CPU time.  If 
@samp{-frame-rate} is supplied alone the update rate defaults to 50
hertz.

@item -watch-frame-rate
Print statistics about the actual display frame rate on standard
output.

@end table

@node DIS Options, , Game Options, Invoking
@section DIS Options

@table @samp
@item -dis-site @var{id}
Sets the DIS site id to the specified value. This value is used to
distinguish between different nodes in a network game.

@item -dis-sim @var{address}
Sets the DIS simulation address to the specified value.  The DIS
standard defines this address as an enumerated value corresponding to
a geographical site.  For more information, consult the IEEE 1278
protocol definition.

@item -dis-appl @var{app_id}
Sets the DIS application id to the specified value. This value is used
in DIS packets to distinguish your acm application from other DIS
applications running at the same site.

@c man end

@end table
                                   
@node Playing, Keyboard Command List, Invoking, Top
@chapter Playing

This chapter describes the basics you need to fly your jet and to
start killing some drones.

@menu
* How to Takeoff::       
* Controlling the Engine::  
* Looking Around::                 
* The Head-Up Display (HUD)::
* Using your Radar::
* Who's gunning for me?::
* Armaments::
@end menu

@node How to Takeoff, Controlling the Engine, , Playing
@section How to Takeoff

Your mouse is the control stick.  The neutral position is the center of your
view display -- denoted by the dot in the center of your heads-up-display (HUD).
Moving the mouse away from you pitches the plane down, moving it back
pitches the plane up.  Left and right inputs roll the aircraft in the
corresponding direction.  On the ground at speeds up to 100 kts, nose
wheel steering guides the aircraft.

To take off for the first time, select 20 degrees of flaps (press H twice),
then press the full throttle key (the 4 key on the main keyboard).  Keep the
mouse in the neutral position until you are moving at about 140 kts, then pull
the mouse about two-thirds of the way down the view window.  You should pitch
up and lift off the ground fairly easily.  Gradually move the stick closer
to the neutral position and let your airspeed build -- don't move it back to
neutral too quickly or you will end up back on the ground again!  As your
airspeed passes about 250 kts, raise the flaps (press Y twice) and landing
gear (press G).  Congratulations, you're flying a multi-million dollar jet.


@node Controlling the Engine, Looking Around, How to Takeoff, Playing
@section Engine Controls

The following keys control your engine thrust:

@table @samp
@item 4
Full Power

@item 3
Increase Power (about 2 percent)

@item 2
Decrease Power (about the same amount)

@item 1
Idle Power

@item A
Toggle Afterburner
@end table

Your engine gauge displays the power that you are generating.  Below that,
you have displays showing your total fuel remaining as well as your current
fuel consumption rate.  The afterburner uses fuel at an amazing rate; use it
wisely.

@node Looking Around, The Head-Up Display (HUD), Controlling the Engine, Playing
@section Looking Around
The keys of the numeric keypad control which direction you're looking outside
of the cockpit:

@table @samp
@item KP_8
Forward

@item KP_4
Left

@item KP_5
Up    

@item KP_6
Right

@item KP_2
Aft
@end table

It pays to look around when you're in a combat environment.  Your chances
of staying alive increase remarkably.

@node The Head-Up Display (HUD), Using your Radar, Looking Around, Playing
@section The Head-Up Display (HUD)

On the left side of the HUD is a ladder showing your current airspeed in
nautical miles per hour (it displays true airspeed).  Above that, in the
upper left corner, is a G-meter.  

The right ladder shows altitude; above that
is a readout of your current angle-of-attack in degrees ("a=X.X").  
Your
jet will stall at a 30 degrees positive angle of attack and negative 16 
degrees. 

The airplane symbol (something like "-O-") shows the direction
that the relative wind is coming from.  The relative wind combines your
current angles of attack and sideslip.  A ladder in the center of the
HUD show your aircraft's current attitude. 

The lower, horizontal ladder shows your current heading.  Discretes in the
lower left-hand corner show the state of your weapons systems.  Slightly
above them is a readout of your current thrust percentage as well as the
state of your engine's afterburner -- the "AB" symbol means the
afterburner is on.

@node Using your Radar, Who's gunning for me?, The Head-Up Display (HUD), Playing
@section Using your Radar

The radar system has a field of view of 130 degrees vertically and side-to-side.
Radar automatically locks onto the closest threat in its field of view.  A
locked target is displayed as a solid block.  Other hostile targets are 
displayed as hollow squares.

Targeting information is displayed in the lower right corner of the display.
The top number is the heading of the locked target, the next number is the
relative heading you should steer to intercept the target (displayed as
"ddd R", and the third number is the rate that you are closing with this
target, expressed in knots.

You can lock onto other targets by pressing the target designator key
(Q).

@node Who's gunning for me?, Armaments, Using your Radar, Playing
@section Who's gunning for me?

Radar sets that are tracking your aircraft can be detected.  Your Threat
Early Warning System (TEWS) display warns you of potential threats.  This
circular display shows the relative direction of radars (other aircraft)
that are looking at you.

@node Armaments, ,Who's gunning for me?, Playing
@section Armaments

Your aircraft is equipped with heat-seeking missiles and a 20 millimeter
cannon.  Weapon information is displayed in the lower left-hand corner of
your HUD.  Different weapons may be selected by pressing mouse button 3.

The missiles are patterned after U.S. AIM-9M Sidewinders.  They can
detect infrared (IR) targets at any aspect (not just from the rear).  Their
range varies dramatically with the altitude and closure rate.  The
missile subsystem couples with your radar set to provide time-to-impact
information when AIM-9's are selected.

@node Keyboard Command List, Network Play, Playing, Top
@chapter Keyboard Command List

@menu
* Stick and Rudder Controls::       
* Engine Controls::  
* Radar Controls::
* Flaps::
* Speed Brakes::
* Weapon Controls::
* Pitch Trim Controls::
* View Controls::
* Other Controls::
@end menu

@node Stick and Rudder Controls, Engine Controls, , Keyboard Command List
@section Stick and Rudder Controls

@table @samp
@item Mouse
The Mouse if your stick.  It controls pitch and roll.

@item Z
Rudder Left

@item C
Rudder Right

@item X
Center the Rudder
@end table

@node Engine Controls, Radar Controls, Stick and Rudder Controls, Keyboard Command List
@section Engine Controls

@table @samp
@item 4
Full Power

@item 3
Increase Power

@item 2
Decrease Power

@item 1
Idle

@item A
Toggle Afterburner State
@end table

@node Radar Controls, Flaps, Engine Controls, Keyboard Command List
@section Radar Controls

@table @samp
@item R
Toggle Radar State (On/Standby)

@item Q
Target Designator
@end table


@node Flaps, Speed Brakes, Radar Controls, Keyboard Command List
@section Flaps

@table @samp
@item H
Extend 10 degrees

@item Y
Retract 10 degrees
@end table


@node Speed Brakes, Weapon Controls, Flaps, Keyboard Command List
@section Speed Brakes

@table @samp
@item S
Extend
@item W
Retract
@end table


@node Weapon Controls, Pitch Trim Controls, Speed Brakes, Keyboard Command List
@section Weapon Controls

@table @samp
@item Mouse Button 2
Fire the selected weapon

@item Mouse Button 3
Select another weapon
@end table


@node Pitch Trim Controls, View Controls, Weapon Controls, Keyboard Command List
@section Pitch Trim Controls

@table @samp
@item U
Set Take-off pitch trim
@item J
Set pitch trim to the control stick's current pitch setting
@end table


@node View Controls, Other Controls, Pitch Trim Controls, Keyboard Command List
@section View Controls (Numeric Keypad)

@table @samp
@item KP_8
Forward

@item KP_2
Aft

@item KP_4
Left

@item KP_6
Right

@item KP_5
Up
@end table

@node Other Controls, , View Controls, Keyboard Command List
@section Other Controls

@table @samp
@item G
Retract/Extend landing gear

@item P
Self-Destruct (Quit the game)

@item L
Launch a target drone
@end table

@node Network Play, Copying this manual, Keyboard Command List, Top
@chapter Network Play

After getting familiar with the controls and killing some drones,
you're ready to engage in dog fight with a friend.

@menu
* Requirements::        Requirements for a network game.
* Launching a game::    Creating a new network game.
@end menu

@node Requirements, Launching a game, , Network Play
@section Requirements

ACM uses the DIS protocol to communicate between nodes running the
game. Current implementation sends updates to broadcast, so both
players need to be in the same LAN, and this one must allow broadcast
traffic.

@node Launching a game, , Requirements, Network Play
There're two parameters you must use when launching a network game:
@samp{-dis-site} and @samp{-team}. The first one sets the player ID
for this session (and must be unique between all the players), while 
the second selects a team (all players of a team start the game in 
the same point of the map).

Let's suppose you want to play a game with a friend. You could run ACM
with this arguments:

@example
acm -dis-site 1 -team 1
@end example

While your friend should use a different @samp{-dis-site} and
@samp{-team} (though this one can be same, seems pretty pointless that
both players start the game in the same point of the map):

@example
acm -dis-site 2 -team 2
@end example

@node Copying this manual, , Network Play, Top
@appendix Copying this manual
  
@menu
* GNU Free Documentation License::  License for copying this manual.
@end menu

@node GNU Free Documentation License,  , Copying this manual, Copying this manual
@appendixsec GNU Free Documentation License
@cindex FDL, GNU Free Documentation License

@include fdl.texi


@contents

@bye
