home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 24
/
CD_ASCQ_24_0995.iso
/
vrac
/
aafdoc.zip
/
AAFREV.TXT
< prev
next >
Wrap
Text File
|
1995-06-15
|
10KB
|
229 lines
AAFREV
This review of the Aircraft and Adventure Factory from
Mallard/BAO deals only with the latter: the adventure part.
With AAF it is possible to write "scripts" or "scenarios" which
are really BASIC-type programs. These, when compiled ("AAF
YOURFILE.TXT YOURFILE.ADV") will create "adventures" which can
then be run with MicroSoft's Flight Simulator 4.0.
A typical adventure will find you at the threshold of a runway.
When you're ready to contact Clearance, you say (into your
imaginary mike) "Wherever Clearance, Cessna 1234B requesting
clearance for wherever, as filed." Then clearance will come back
with "Cessna 1234B, cleared as filed. Squawk 1234." In digital
sound, if you have a sound card (most popular brands are
supported) -- what's really happening is that a sound .VOC file
is being played. You acknowledge: "Cessna 34B direct wherever"
etc.; clearance says "Cessna 34B readback correct. Ground on
point whatever." On through contact ground, contact tower,
contact departure, contact approach, contact (destination) tower,
contact (destination) ground. etc. You actually hear ATC as you
(or your friends, to give different voices for different
stations) make them as .VOC files.
Or you're on standby with a rescue squad. You hear "Cessna 1234B,
can you pick up a guy with a broken leg at Mount Snow?" Respond,
receive detailed orders, and take off.
Or, when flying over RFK stadium hear "Hail to the Redskins!"
from the band as the 'Skins score another touchdown.
The script, which is a text file later to be compiled, looks, as
remarked, much like a BASIC program, and indeed the language is a
somewhat cut-down version of QBASIC. It depends largely on "if. .
. . [then]/endif" statements, such as:
if com(121.35)
PLAY "CLEAR.VOC"
endif
This means if your COM radio is tuned to 121.35, play the
(recorded by you) CLEAR.VOC file. But you don't *have* to play
something (maybe you don't have a sound board). That instruction
could have read PRINT "Cessna 23B, cleared as filed", and such a
message would print out at the bottom of your screen.
All kinds of variables can be tested: not just COM tuning, but
also:
if airspeed(500,1000) ;speed range low-hi
print "You're going too fast"
endif
if altagl(0,100) ;altitude above ground level, range low-hi
play "PULLUP.VOC"
endif
if cylinder(16580,12346,0,15)
print "You're within 15 nautical miles"
endif
This last means if you're in an imaginary cylinder centered at
those FS North and FS East coordinates with a radius of 15 miles,
print the message.
if key("a")
gosub readout
endif
If you press "a" you will go to a subroutine which will print on
your screen your current altitude and course, and then return you
to the rest of the adventure. GOSUBs are typical BASIC commands;
you can also GOTO another part of the adventure, which has a
particular "label" -- again a standard BASIC routine.
if gearup() ;this one has no other parameters
print "Put your gear down, you ninny!"
endif
Most of these are checking a variable or a condition and taking
appropriate action. But you can also *set* certain variables:
if key("b")
setvar(cloud1top,5000)
setvar(cloud1bot, 500)
endif
This sets the top of cloud level 1 to 5000 (meters) and the
bottom to 500 meters -- cold front coming through. The condition
("if" statement) on this could have been a cylinder, as above:
when you're within that cylinder (so far from those coordinates),
roll in the clouds.
You can check whether you're on the glideslope, whether you're on
the ground, whether your course is within certain limits, whether
you have a sufficient climb rate, etc. AAF can do more than radar
can. There are a good many "standard" inquiries/requests as in
the foregoing, and also a great many FS variables which can
otherwise be tested and changed: cloud1top is one of them. They
are all listed in the appendix to the AAF documentation -- I do
not myself yet know what all of them mean and do!
Another interesting program fragment is:
if course(0,0)
endif
printvar(result,"Your course is: ")
(PRINTVAR is a primitive which prints the value of any variable
with a header.)
The variable RESULT "contains the value to be compared against
(LOW, HIGH)" according to the documentation. Here it will contain
your course. So also with AIRSPEED(LOW,HIGH), ALTITUDE(LOW,HIGH),
BANK(LOW,HIGH), although I haven't tried all of these. The gosub
readout routine mentioned above uses these.
So, PLAY or PRINT a voice file or a message. But you can also
VIEW: a .PCX graphics file. If you have a .PCX file with, say, an
instrument approach plate for your destination airport, you can
issue:
if cylinder (x,y,0,15)
view(10,DCAIAP.PCX)
endif
If you're in that cylinder, your DCAIAP.PCX will come up on the
screen for ten seconds. .PCX files are PC Paintbrush files, and
can be created with many different graphics programs, including
Windows Paint. They have to be 320 x 200 resolution and 256
colors.
In the case of demos (which you make) PLAY is replaced by $PLAY.
Other "primitives" are WAIT(x) -- a certain number of seconds
before proceeding; and SETPOSITION(NORTH,EAST,ALTITUDE), which
puts your plane at such-and-such FS coordinates at a particular
altitude.
Now the catch with all of this, of course, is that you have to
learn at least the rudiments of BASIC (as used here) to write
these scripts, and that might be a little scary for those who
have never done this sort of thing ("all I know how to do is turn
on my computer and type FS!"). But this is not complicated BASIC:
as a matter of fact, it does not include some commands which are
pretty common in BASIC: IF . . . ELSE, FOR loops, WHILE
statements, etc.: I myself miss all of these, and whereas they
can all be duplicated in AAF-BASIC, it's pretty cumbersome. The
AAF compiler is fast, but not terribly robust: it gives you some
warnings if you make a mistake, but these are not always obvious,
and sometimes you can write an .ADV which sure won't work because
of some syntax error, and the compiler won't tell you anything.
My own advice is to look at the original text files (before
compiling) that have been produced by others -- no doubt they
will be made available on the FSFORUM and elsewhere. As of this
writing, there are, however, only two available: SAMPLE.TXT,
which comes with AAF, and my CMIBMI.TXT, in CMIBMI.ZIP, library
5/Aircraft/Adventure. Ask yourself "why did he do that?" and "why
does that work?" Or, write some small programs with just a few
routines, see how they work, and then combine them (with a word
processor) into a larger program. You can write up quite a series
of subroutines, such as the readout mentioned above (gives you
current altitude and heading).
Making the voice files (.VOC) is another matter. I myself write
programs first to PRINT to the screen, to see if they work:
then I write a .VOC and change PRINT to PLAY. Sound cards usually
come with a utility to produce .VOC files -- for example,
Soundblaster Pro has VEDIT2. I somewhat prefer a shareware
program, Blaster Master, available (BMST5.ZIP) in the Sound Cards
library of the MIDI forum. Both of these programs can "pack" .VOC
files so they take up less room (and therefore less disk space
and less upload/download time). But these have to be unpacked to
restore the original before they can be used with AAF: there is a
utility to do this provided with the program. I do not myself
find it very helpful: "packed" and "unpacked" files sound pretty
awful. However, I *do* find that at least for voice, you can do
your "sampling" at a very low rate, even 4000, and this
considerably cuts down the size of the .VOCs. Anyway PKZIP won't
touch packed files: they're already compressed.
Of course some ATC messages work much better as PRINTs than as
PLAYs. In my readout subroutine, I print on the screen airspeed,
course, and altitude -- I just use PRINTVAR(x,"message") here. It
would be a killer to make up .VOC files for all the possible
combinations!
What They Say:
It is always a bit difficult to get the conventions and jargon of
ATC communications. There are several sources, however. One is
John Rafferty's Realistic Commerical Flying with Flight Simulator
(Compute! Books, 1989), which has several good examples. The best
book here, however, is by Paul Illman and Jay Pouzar, The Pilot's
Radio Communications Handbook (Tab Practical Flying Series, Tab
Books, 1989) -- everything from UNICOM to transiting an Air
Traffic Control Center, with a great many examples and a complete
script for Kansas City to Minneapolis and back. Or, of course,
you can follow the examples provided with AAF or from other
sources, such as Simutech's ProSim Plus series, as well as files
which will be uploaded to the FSFORUM. And you can buy a scanner
and listen to real ATC (and the pilot's responses) if you're
within range of an active airport. Basically there are certain
procedures: the pilot calls clearance, clearance clears and hands
off to ground; ground authorizes taxi and hands off to tower;
tower clears for takeoff; departure sends one on the way;
approach gives general directions and then (destination) tower
gives such things as vectors and final landing clearance, handing
off to ground, etc. SubLOGIC's Air Transport Pilot has all of
these and others as well, printed to the screen. Obviously there
are other messages: "Descend and maintain x thousand", "Turn
right to heading y", "Execute missed approach", and the like.
I really have been playing with AAF for only a short time, and I
am sure that there are many more applications which have not yet
occured to me: no doubt we will be seeing some of them on the
FSFORUM. But still, at least in my experience so far, this is the
best "add-on" to MicroSoft's Flight Simulator since the Aircraft
and Scenery Designer. I confidently predict that it will produce
a whole flurry of new scenarios/scripts which will extend our use
of FS by a major factor. And that's not even counting the
aircraft designing functions, which are another matter for
another day (and most probably another reviewer!).
Jim Ross 70235,143