ATC is a classic curses based Unix game that puts you in the seat of an air traffic controller - but safely. The basics of the game have you moving two types of airplanes to exits and airports. The airplanes come in two types - jet planes (show up as lower case letters) which move every update and prop planes (show up as upper case letters) that move ever other update. Within the game, once can give orders to the airplanes regarding flight direction and altitude.

The game continues until it is over (ok, that says little). High scores are recorded as "game time spent, real time spent, and number of planes safe" - it just keeps going and going and going. There are several conditions that would cause a game to finish:

  • Planes collide if they are adjacent and within unit of altitude of each other.
  • A plane leaves the map at some place other than the exit it is destined for.
  • A plane is set to altitude 0 at some point other than the airport it is destined for.
  • A plane runs out of fuel (this takes some time).
Planes exit and enter in the same locations (they don't just pop up). When exiting, an airplane must be at 9000 feet while new planes enter at 7000 feet.

To make this slightly less confusing and trying to keep track of all the planes at all times - orders to turn may be delayed. In stead of saying "turn left now", you can issue an order saying "airplane G: turn towards exit #4 ant beacon #1" (this particular order is issued by typing 'gtte4ab1'). Orders for change in altitude are handled immediately with a plane gaining or loosing 1000 feet each time it moves (recall this is 2 turns for a prop plane).

A given board has a number of variables that can be set:

update
The number of seconds between forced updates. The player can force an update by hitting the return key to get things moving (like waiting for an airplane to appear or for some other event), but updates happen every 5 seconds - this is not a turn based game.
newplane
An approximation of the number of updates between a new plane entering the playing field. This is subject to the random number generator and I have played with 100 turns going past on a 10 turn newplane setting.
width / height
The size of the area playing area. The default game runs at a 30 x 21 size. Realize that the size of the default terminal is 80 by 24. Furthermore, The information about airplanes presented on the screen takes two characters, the width of 30 represents 60 columns.
beacon
Locations of beacons on the map. These are given simply as x,y pairs enclosed in parentheses.
exit / airport
Airports and exits are designated as an x,y pair (for exits, one of the pair must be along an edge of the map). A third value designates the direction that planes are headed when entering from an exit, and the direction of the runway for airports. This is given as a letter:
qwe
a d
zxc
(look at the keyboard, it will make sense) Thus, (20 15 w) refers to an airport at 20,15 with the runway pointing north.
line
Newer versions of ATC have the ability to display a line on the screen. This line is often used to show paths between beacons or exits and sometimes airports. Lines are given as [ (x1 y1) (x2 y2) ]. The only requirement is that the lines be either horizontal, vertical, or run at a 45 degree angle.
The default game is defined as:
update = 5;
newplane = 10;
width = 30;
height = 21;

exit:           ( 12  0 x ) ( 29  0 z ) ( 29  7 a ) ( 29 17 a )
                (  9 20 e ) (  0 13 d ) (  0  7 d ) (  0  0 c ) ;

beacon:         ( 12  7 ) ( 12 17 ) ;

airport:        ( 20 15 w ) ( 20 18 d ) ;

line:           [ (  1  1 ) (  6  6 ) ]
                [ ( 12  1 ) ( 12  6 ) ]
                [ ( 13  7 ) ( 28  7 ) ]
                [ ( 28  1 ) ( 13 16 ) ]
                [ (  1 13 ) ( 11 13 ) ]
                [ ( 12  8 ) ( 12 16 ) ]
                [ ( 11 18 ) ( 10 19 ) ]
                [ ( 13 17 ) ( 28 17 ) ]
                [ (  1  7 ) ( 11  7 ) ] ;

The playing field for the map looks like thus after a few turns:

7-----------------------0---------------------------------1 Time: 31   Safe: 0
| + . . . . . . . . . . + . . . . . . . . . . . . . . . + |                   
| . + . . . . . . . . . + . . . . . . . . . . . . . . b9. | pl dt  comm       
| . . + . . . . . . . . + . . . . . . . . . . . . . + . . | A9 E1: ---------
| . . . + . . . . . . . + . . . . . . . . . . . . + . . . | b9 E1: ---------
| . . . . + . . . . . . + . . . . . . . . . . . A9. . . . | D7 E0:          
| . . . . . + . . . . . + . . . . . . . . . . + . . . . . | e7 A0: 90 @ 1
6 + + + + + + + + + + + *0+ + + + + + + + + + + + + + + + 2 
| . . . . . . . . . . . + . . . . . . . . + . . . . . . . | C0 E2: Holding @ A1
| . . . . . . . . . . . + . . . . . . . + . . . . . . . . |
| . . . . . . . . . . . + . . . . . . + . . . . . . . . . |
| . . . . . . . . . . . + . . . . . + . . . . . . . . . . |
| . . . . . . . . . . . + . . . . + . . . . . . . . . . . |
5 + + + + + + + + + + + + . . . + . . . . . . . . . . . . |
| . . . . . . . . . . . + . . + . . . . . . . . . . . . . |
| . . . . . . . . . . . + . + . . . . . ^0. . . . . . . . |
| . . . . . . . . . . . + + . . . . . . . . . . . . . . . |
| . . . . . . . . . . . *1+ + + + + + + + + + + D7+ + + + 3 
| . . . . . . . . . . e7. . . . . . . . >1. . . . . . . . |
| . . . . . . . . . + . . . . . . . . . . . . . . . . . . |
------------------4----------------------------------------
d: turn towards exit #0 at beacon #1                        *******************
                                                             ATC - by Ed James 
                                                            *******************