1)
Animation state control
This aircraft
operated in
what were essentially two "modes" - hover mode and airplane mode. Hover
mode acted like a helicopter, and it used some different animations
than the aircraft used when in normal flight. Aircraft in this engine
can usually only have one set of animations for one thing, so to get
around this limitation, I assigned the extra animations to be switched
on by dummy conditions - placeholders set through the gauge.
As long as control for the aircraft rested solely with what was
presented on the gauge (and it did, thankfully this was a
tightly-controlled ecosystem), I could be 100% sure that my gauge
represented the sum total of what was going on with the aircraft.
2)
Droppable objects in
multiplayer
One of the
quirks of
developing in this flight simulator is that, while available in the
singleplayer version of the game, droppable objects (ordnance, weapons,
etc.) were not available in multiplayer. This was nearly a "must-have"
feature of this program, so I had to work it in somehow.
Like the above, I knew that as long as my features could exist solely
within the context of the player's UI they'd be fairly easy to control.
The problem here was that, for the same reason droppable objects were
so necessary (they represent a means to interact with the game world),
droppable objects must not exist solely on the gauge. They had to exist
in some manner in the mission, otherwise I couldn't demonstrate their
effects to every player.
What I did here was a combination of simulating ordnance and simply
deceiving the player about what was going on. To make my aircraft
interact with the environment without having any true dummy conditions
to test in the mission, I set the gauge to fire off a bunch of
disparate conditions in a combination that was unlikely to take place
when they were being used (e.g. wheels down, tailhook down, cockpit
open, etc.) and then asked the mission to test for these conditions
happening all at once. Because these conditions were all tied to
animations acting on a delay, I could save the previous state, set the
conditions, and then set them back before the user ever saw these
actually happen to the aircraft.