A Story in a Storyless Game: Encounter With an Enemy Ace in Strike Fighters 2
- Caio "Hueman" Barreto
- 3 minutes ago
- 15 min read

Ask anyone who’s ever played Ace Combat - video games can be far more than mere entertainment. When intended as such by their developers, they can be incredibly powerful vessels for storytelling, possessing a trait unique to interactive media: while a well-written book will certainly immerse you in the story, a video game allows the author to place the audience directly inside it. This format’s potential for storytelling is in fact so great that, sometimes, a story will be told even though it was never really intended to have a story at all. Many years ago, when I didn’t yet have a PC powerful enough to play DCS or one of the newer IL-2 games, Strike Fighters 2 was my go-to combat flight sim. We’ve covered this old gem before, but suffice to say that while it does have several campaigns, there’s not really any narrative. No characters, no cutscenes; no storytelling.
It does, however, have two features which in conjunction resulted in an experience I’ve been wanting to talk about ever since.
Of Rosters, Rookies, and Aces
The first is the game’s Custom Campaign feature. Players can take one of the game’s campaigns and change settings such as your unit’s aircraft and even the country it’s from - you can even pick certain squadrons from air forces around the world. Alongside the game’s vast modding scene adding more aircraft and maps to the game, this allows the player to create almost any scenario imaginable, from French Mirage IIIs intervening in the war between the game’s fictional countries of Dhimar and Paran, to JASDF F-4EJ Kai fighting Flankers over the Kuril Islands.

The other feature of note is the pilot roster system. Pilots in your squadron are given a name and surname at random, picked from the game’s remarkably expansive list of available names for each country - and if it’s a mercenary campaign, you will have a hodge-podge of names from all over the world.

They each have their own set of stats for various skills, and even fatigue - which forces the player to constantly rotate which pilots go out on sorties. The combination of these stats change the way in which individual pilots behave, fly and respond to threats. They aren't fixed, however; As pilots gain experience in combat, they sharpen their skills and can also be promoted.
The simple fact that these NPCs have names and their own behaviors changes how the player interacts with his wingmen as opposed to flight sims where they remain nameless. You will certainly end up having your favorite pilots to fly with, that one inexperienced rookie you always have to take care of at the start and ends up growing into a solid pilot - and, because this is a combat game, some of them will almost inevitably be shot down.
If they manage to eject, they might be rescued by friendly forces, hospitalized due to injuries, or go missing in action; if they don’t, they’ll be KIA, and be permanently crossed out on your roster.

This is of course not unique to SF2, and the fascinating phenomenon of player attachment to characters simply because they have a name has been explored at least since 1993’s Cannon Fodder. What is interesting though, is that under the hood, the same system is being applied to all pilots in the campaign - not just to the player’s squadron roster. This means that each NPC has their own skill stats, they also earn experience, they can also get promoted, and their number of kills is tracked - even though you can't see it. That is… until one of them gets five kills. When an NPC becomes an ace, their name becomes visible to the player. Every time you come across them while flying, you will be able to see their rank and name; and in the pre-mission planning map, when looking at an airbase, it’ll tell you which squadrons are stationed there - as well as listing out known aces belonging to these units.

The thing is, for the longest time, I had only seen friendly aces ( I guess the poor Fishbed pilots never lived long enough to get five kills...) and thus I thought this feature applied only to pilots on the BLUFOR side.
It made sense to me at the time - this is a flight sim, after all. It doesn’t have the narrative drive of an arcade game like Ace Combat; the whole point is that it’s attempting to simulate aircraft behavior to a point where you must use the appropriate tactics when fighting them. In this context, enemy aircraft are simply targets for you to practice against; there’s no need for characters to be attached to them. There’s no use for a story.
This is the story of when I was proven wrong, and all of that changed.
Setting the Stage
SF2’s custom campaigns gave me many memorable moments - like that one time in a Starfighter campaign, when I took a rookie pilot along for an easy recon mission for him to gain some experience, only for my F-104G to end up being blue-on-blue’d by a Sidewinder when we came across a pair of MiG-21PFs and the rookie turned out to be dangerously trigger-happy.

However, of course the most memorable one of them all had to involve Northop’s masterpiece: the F-5E Tiger II.
When starting this campaign, I wanted to fly the F-5E in the classic matchup of Tiger II versus Fishbed. For the squadron, I picked Brazil’s 1º/14º GAv/Ca (Grupo de Aviação de Caça - Fighter Aviation Group), “Pampa”; all that was left was to pick the area where the campaign would take place.
But where would it even remotely fit? There was no South America map. And then it crossed my mind - during WWII, Brazil sent an expeditionary fighter squadron to fight alongside Allied forces in Europe - what about a what-if scenario where the same happens in a Cold War gone hot? A completely insane proposal, but it was enough for me - and so, the campaign would be set in Europe.
This scenario would’ve been set in the mid to late 70’s (the F-5E first flew in 1972, and entered operational service with the FAB in 1975) - however, this would mean facing tons of MiG-23s with their semi-active radar homing R-23s. What I wanted instead was to face MiG-21s in close-range dogfights, the classic Fox 2 and guns only action; and to achieve this, I cheated a little bit, and set the campaign’s year to 1968, a time-travelling journey for the “Echo” Tigers which SF2’s campaign editor happily allowed.
This was, after all, a completely casual campaign - just to have some fun. Little did I know I would get way more than what I’d bargained for when asking for dogfights against MiG-21s.
The Story Begins
The campaign starts with 1º/14º GAv/Ca (Grupo de Aviação de Caça - Fighter Aviation Group) “Pampa” being forward deployed to Brüggen airbase, West Germany. On the 21st of August, Warsaw Pact forces cross the inner German border, seeking to unify the two countries under the GDR’s banner.

What shall be the F-5E squadron’s first assignment as this conventional conflict deflagrates? SF2's automatically generated missions are always a box full of surprises, after all. I look at the game’s briefing screen: we’re being sortied as a four-ship, callsign Kingfish. Mission objective:
“Provide close air support to friendly units defending Fulda.” Oh. Oh no.
Looking at the squadron’s roster, I pick the three other pilots who will be heading straight into the jaws of the Pact’s armored push alongside me. Armed with a pair of Mk 82s and two 70mm rocket pods each, the four little F-5Es head towards Fulda, where the battle already rages on both in air and ground. There are F-104Gs dropping bombs on columns of advancing T-55s; on the other side, Su-7 Fitters lob rockets at the defending NATO forces.

In the ensuing onslaught, two of my wingmen get shot down by anti-aircraft gunfire. One of them bursts into a fireball after being hit by a burst 23mm gunfire from a ZSU-23-4; the other one manages to eject, and parachutes straight into the battlefield below.

At the end of the day, NATO forces succeed in repelling the assault. The fields of Fulda lay covered in smoldering hulls of T-55s and BMPs; and apart from strafing armored columns with rockets and guns, the 1º/14º gets its first air-to-air kills when, spotting an opportunity, I slot behind a pair of Su-7 Fitters setting up for an attack run and let off a pair of AIM-9Bs - one of which surprisingly connects, while the other misses entirely, leaving me to finish off the lead Fitter with my two 20mm M39 autocannons.

However, for me, this victory was a bittersweet one. Of the four F-5Es which sortied out, only two are coming home. On its very first sortie, the squadron lost two aircraft and one aircrew; while one of the pilots was rescued by friendly forces after the battle and returned to the squadron’s roster, 2nd Lt. Janelson Monteiro is KIA.
The following sorties went a lot smoother; however, it was perhaps because of this initial shock that, after a successful armed reconnaissance mission, I ordered my wingman to return to base while I searched for targets of opportunity.
I still had nearly all of my weapon loadout - two Mk 82s and two rocket pods - and sure enough, after a while I came across the mother of all targets of opportunity: an airbase with most of its air defenses knocked out, and a bunch of MiG-21s just sitting there on the flight line.
I look at my map - Merseburg Airbase. Not exactly on near the frontline, but not super deep inside Germany. I figure I can make a run for it if something goes wrong; and after looking around to make sure no bandits are in the area, I line up for my attack run on the airfield.

A barrage of rockets rains down on the parked MiG-21s. Very little AAA fire comes to meet me in response. Emboldened by this success, I decide to go for a second pass, and my two Mk 82s vaporize a section of revetment where Fishbed-Js had been parked.

However, after I pull up from this attack run, I notice I've got company. Approaching fast from my east is a lone MiG-21, afterburner blazing, armed with two heatseekers and a massive 23mm gunpod on the centreline - it's a Fishbed-J. I figure he must be from this airbase, and he's probably not very happy about what I just pulled off.
But something else caught my eye immediately and sent chills down my spine: This guy had a name. Instead of "MiG-21S Fishbed-J", the red letters on my screen read out: "K-n Dmitri Kostilev".

My heart races. What on earth? A named enemy ace? I didn't even know that was possible in this game! What is this fight going to be like? How different will it be from a common enemy MiG-21? As I tried to process what I was looking at, the distance between us was closing fast. I didn't have an escape window to bug out of this fight - I had no option but to face him on the merge.

I do not remember the details of this fight as much as how it felt - this guy was a lot more difficult to deal with than anything I'd been across before. Most SF2 enemies are nearly trivial to fight - but this guy knew how to move his Fishbed around, and most importantly, he was aggressive. And, this being an F-5E versus MiG-21 fight, our performance was very evenly matched. Whether it was due to the shock of this being the first time I'd seen an enemy ace, or whether it was actually that good, the fact of the matter is: for the very first time in a Strike Fighters 2 playthrough, I actually felt like I could end up losing a 1v1 dogfight against the AI.
After a good few minutes of the most tense fighting I'd ever had in this game, I finally managed to get him in a rolling scissors, where the low-speed performance advantage of the F-5E over the Fishbed gave me enough of an edge to put him in my gunsight.


As the twin 20mm cannons roared to life, the Fishbed-J's right wing was sawn clean off. A massive fire erupted from the wing root; and a second after the canopy blew off, the plumes of the ejection seat's motor dashed out of the cockpit.

I circled around once as I watched the smoking MiG-21 plummet to the ground, and sure enough, a white parachute canopy opened up. Mr. Kostilev would live to fight another day. My victory came right in the nick of time, as two East German MiG-21PFMs showed up to the party - thankfully too late.

After returning home with barely any fuel left, I went straight to the game's planning map. Sure enough: at Merseburg Airbase, there was an unknown Soviet unit, and in the list of known aces: K-n Dmitri Kostilev, with five confirmed kills.

Unfamiliar with Soviet rank abbreviations, I did my best to look up what "K-n" was supposed to stand for - and, while inconclusive, my best guess was that it indicated the rank of Kápitan - or Captain. Though he had appeared alone this time, it was very well possible I'd see him leading a flight.
My next sortie, a combat air patrol over friendly territory, was uneventful - but, in the second sortie after that encounter, our mission was to attack the runway at Neubrandenburg Airbase in a two-ship formation.
I figured we'd have escort, so our loadout was full air-to-ground - all Mk 82s. As we approached the target, however, it became clear there was no escort - the enemy air defenses were cleared out, but if someone jumped us, we'd have to fight our own way out.
And what would you guess - as we're just getting ready to line up on the runway, Red Crown comes through the radio: Bandits at 12 O'Clock.
Fishbeds - no less than eight of them, heading straight for us.
And on the lead MiG-21S, was none other than Dmitri Kostilev.
8v2 isn't even close to a fair fight to begin with, but running away is hardly an option - we're deep inside GDR territory, and the Fishbeds are faster than us. We wouldn't make it to friendly lines in time.
I order my wingman to jettison his payload and head back home; as he does so, I fly directly at the Fishbeds, the four Mk 82s still bristling under my wings. My plan is to push straight through and head for the target - faced with the option of an F-5 running away and one heading for their airbase, I figure the MiG-21s will choose me and leave my wingman alone. I just need to survive the head-on pass; whatever happens later, we'll see. I had no reason to fear crossing the bandits head-on: their missiles, just like mine, were rear-aspect only. SF2 AI also typically only uses guns when they have a textbook firing solution - I had never seen one go guns head-on.
But this wasn't your typical enemy.
As the eight dots in my windscreen grow larger and larger, I see bright yellow shapes coming from the lead MiG-21.

"What the?" Instinctively, I roll hard to the right and pull back on the stick; the tracers fly screaming by, just barely missing my poor F-5E.

Completely astounded, I try to keep my focus on the runway as the Fishbeds streak by - none of the others tried pulling off something similar. I had never seen an SF2 AI being anywhere close to that aggressive - I now dreaded the fight that awaited me.

After successfuly dropping my bombs on the runway, I weigh my options. Should I try to disengage? But there's no way - trying to run away would only put me deeper in enemy territory, and would only delay the inevitable as the horde of Fishbeds catches up to me.
Once again, Kostilev has left me out of options - I must turn and fight.

After dodging another nasty head-on cannon burst, the mad fight began. I remember dodging more than a couple missiles, but overall, apart from Kostilev the other fighters thankfully presented little challenge. After shooting down two jets, I finally managed to down Kostilev again - and once more, he ejected.
After that, the enemy fighters disengaged and returned to base. I took the opportunity to head straight for friendly lines; nearly out of fuel, I opted to land at the closest friendly airbase I could find instead of trying to reach home plate.
This pattern continued for several sorties - we'd have a handful of uneventful sorties, and then Kostilev would appear and force me into a situation that completely ruined my game plan.

He'd somehow manage to show up at the most terribly inconvenient times - such as when I was going back home after a deep strike into enemy territory, in an area covered by a bunch of SAMs; or to attack a bunch of friendly bombers I was escorting just as another enemy unit had drawn us away.

Every time, I managed to shoot him down after a long and difficult fight; and every single time, he ejected successfully, a parachute popped up, and he lived to fight another day - preferably at precisely the worst possible time for us. Usually he'd show up with a two-ship, sometimes with a four-ship; but luckily, he never showed up with the massive eight-ship formation again. That is, until he did. We were scrambled to intercept an incoming attack; A bunch of Tu-16 Badgers were headed straight for our airbase. Eight F-5Es went up in full air-to-air loadout. Usually these bomber interception missions were fairly easy - but this time, one of their escort groups was none other than Kostilev's squadron - an eight-ship formation led by the man himself.

By this time, Kostilev's rank read "P-k", which i can only guess means Polkovnik - Colonel. Somewhere along the line, he'd been promoted - presumably for managing to be the largest possible pain on my squadron's butt. But this time, it was an even fight. It was 8v8 - and my squadron was full of experienced pilots. Confident, I ordered one of my four-ship flights to deal with the bombers while me and my three best pilots dealt with the Fishbeds.
I managed to shoot down Kostilev once more - and once again, he ejected successfuly. The poor guy's spine must have been compressed a few centimeters by now. At the end of the day, the bombers were destroyed, and all of our F-5Es came back home safely.

For several sorties after that, I waited for Kostilev to come back, as he always did. But it never happened. I wondered how could that be - after all, I saw him eject, and he had a good chute.
But then it hit me - of course! If the game applies the same system for enemy pilots as it does for the player’s squadron roster, then that means the logic applies for what happens with them once they're shot down. And, since Kostilev bailed out well within NATO-controlled territory, that meant he was now a POW.
I felt a sense of relief knowing Kostilev - this fictional character who didn't even have a face, nor a backstory, nothing but a name - was still alive; and a slight hint of sadness knowing I’d never see him again.

The fact is, after the enemy ace which had long been my nemesis was no longer a factor, the campaign felt... empty. It was like something was missing. No longer did I go into every sortie wondering whether he'd appear; no longer did I have to worry about him showing up with a four-ship and force me to abort a ground attack mission.

A few sorties later, I encountered another enemy pilot which had become an ace - from the same unit as Kostilev. However, it just wasn't the same.
For the readers who played Ace Combat 04 - do you remember how it felt like to fight the fraud that was Megalith’s “Yellow Squadron” after defeating Yellow 13 over Farbanti? That's how it felt to face this new ace after Kostilev was gone.
Sure, he put up a slightly harder fight than the average MiG-21, but compared to Kostilev it was laughable - so much so, that I don't even remember the bloke's name. There was none of the challenge, none of the thrill. “You’re not him”, I thought to myself. “Here, catch this Sidewinder. See? Kostilev would’ve dodged that.”

A few more missions came and went. With one of the only enemy pilots which posed a genuine challenge out of the way, the experienced pilots in my squadron and other BLUFOR units - some of which had become aces themselves - established complete air superiority over East Germany.
As NATO forces pushed into East Berlin, and it becomes clear the Soviet plans of a quick takeover of West Germany have failed, the campaign ends with talks of a peace treaty, and thus we come to the end of our F-5E saga.

At the campaign's end, NATO air forces had five aces up their sleeve: apart from the maniac F-5E driver (the player), three USAF Phantom pilots and one RNLAF Starfighter pilot had achieved over five kills. I came across them in several sorties, and the game even made it so the F-4 aces escorted some of our strike missions.

And yet, the only ace from this campaign whose name I remember off the top of my head is Polkovnik Dmitri Kostilev. In a game where there is no fixed story, where names are semi-randomly generated and where nothing is scripted, it is impossible for me to share this experience as one would with facing off against Yellow 13 in AC04, or against Pixy in AC Zero. But despite this inherent limitation of a story which is by definition personal, I cannot deny it: Kostilev left as much of a fond memory to me as any of these legendary Ace Combat characters. So much so that, years later, I even decided to draw that fateful first encounter.

Sometimes, a name is all it takes for a story.