atc
atc
is a terminal game found in the bsd-games
package. it was written by Ed James a Long Time Ago. because i felt like writing an article, i will explain How To Play this game.
the package is probably available through your package manager as either bsd-games
or bsdgames
. it is also available in two different versions on github.
that’s a good question. let’s find out:
$ whatis atc
atc (6) - air traffic controller game
well that’s pretty self explanitory. atc
is a game in which you direct planes to their correct routes for as long as you can without screwing it up.
there are a few different ways to lose:
sending a plane out at the wrong place or at the wrong height
having two planes collide (as the man page puts it: “defined as adjacency in all three dimensions”)
having a plane run out of fuel midair
most of the game’s screen is a ‘radar’ showing where all the planes are. the default game has two beacons (signified with *0
and *1
), eight exits numbered 0 to 7, lines of +
s showing the ‘recommended routes’ or something, and two airports ^0
and >1
.
there is also a status screen to the side, showing the A7
plane, and the fact that it wants to head to E6
. we will learn how to direct this plane over there soon.
the ‘symbol’ used to depict a plane incorporates some important information about it. a plane is assigned a letter from a to z, which is used as its ‘code’ for inputting commands (more on that later).
this letter is written as a capital if it is a prop plane, and in lower case when it is a jet. the difference between them is that jets move once every turn and prop planes move once every two turns.
the number represents altitude, in thousands of feet. for example 7 means 7000ft in the air.
if there is an asterisk between the plane’s ‘name’ and its destination in the status, it is low on fuel.
planes can both come from and land/pass through airports and exits. for a plane to be added to the score,
it must be at its destination (shown under the dt
column in the status bar)
it must be at the right height:
a plane must leave an exit at 9000ft
a plane landing in an airport must land at 0ft (that’s kind of what landing is) and at the direction indicated by the airport’s arrow (<^>v
are right, up, left and down respectively)
planes enter the airspace at 7000ft, and planes departing from airports must leave out of the direction indicated by the arrow.
each turn passes by in a set short amount of time, so you have to think quickly if you want to avoid crashing a plane.
each command is made up of components made out of single characters, which form small sentences. the first part will be the letter code of a plane, and the second part will be a verb. but after that it can depend. its best to see some specific examples.
also note that you have to press enter to submit a command when you have written it, and you can backspace with ESC
for a more complete documentation of commands, see the INPUT subheading in atc(6)
to turn a plane, you use t
for turn. to specify the direction to turn in, you can use the 8 keys surrounding the s
key corresponding to degrees on a compass, like this:
qwe
a d
zxc
so to turn plane a
north, you can do
atw
you can also set the plane to turn at one of the beacons by putting ab[n]
after.
to turn plane e
north-west at beacon 0,
etqab0
note, however, that planes can only move 90 degrees in one turn.
remember how you have to leave the airspace at 9000ft? this is how you do that. with a
.
to make plane b
ascend to 9000ft
ba9
this is also how you make a plane waiting in an airport take off.
so if plane d
is waiting at an airport you can set it to ascend to 5000ft with
da5
you can also change altitude with relative numbers
plane f
descend by 1000ft: (d
here meaning descend)
fad1
plane g
ascend by 2000ft: (c
here meaning climb)
gac2
that’s all the really important stuff you need to know. there is more but you can find it out pretty easily at this point from the man page. bye