Jay's
How to make a non-linear campaign for
Jane's F/A-18

At the heart of a fully dynamic campaign is an algorithm which generates the next mission to be played on the basis of a number of variables. The results of each mission change the status of the variables, which leads the algorithm to generate a different mission to the one that preceded it.

In Jane's F/A-18, it is not possible to generate missions during a campaign in this way, as each mission has to be written in advance. However, it is possible to create a non-linear campaign which, if done well, will give the appearance of playing a dynamic campaign.

At the heart of a non-linear campaign for F/A-18 is a series of state-nodes which compute an algorithm using the campaign variables specified in the campaign builder. These nodes terminate in an output-node which determines which pre-scripted mission is to be played next. After playing the mission, the campaign variables are updated on the basis of the results and the campaign goes back to the input-node to compute the algorithm for the next mission.

By using an algorithm similar to one that would be used by a real dynamic campaign, the resulting non-linear campaign will appear dynamic to the player.

In order to demonstrate this possibility I created the Arctic Duel campaign, where the player has to sink the Kuznetsov before the Russians sink the Reagan. This campaign goes on indefinitely until one of the carriers is sunk or the player runs out of aircraft. The algorithm for that campaign is very simple, and there are only eight possible missions. With a more complex algorithm and hundreds of possible missions, the illusion of playing a dynamic campaign should be more convincing.

Consider the following example.

In order to simulate a ground war, the algorithm will select a mission from a pool that reflects the territory possessed by each side. So at the beginning of the campaign, enemy forces may occupy a whole country, and the aim of the campaign is to drive them back to their own borders. This will take place in several stages, and there will be a pool of missions for each stage.

Let the state of the ground war be determined by the relative strength of aircraft, armored vehicles and supplies. As the largest number of variables that each mission can track is four, each mission will track whether friendly forces have significantly depleted enemy strength in these three areas. Each mission will also feature an enemy attack on friendly assets, and the mission will track whether the enemy attack is successful.

The campaign variables that represent these values will then be incremented or decremented on the basis of mission results. The mission-generating algorithm will then determine whether any progress for either side has been made in the ground war. If not, another mission will be selected from the pool of missions for that stage. If one side has made progress, the campaign will move to the next stage. A few missions later, the other side may gain the advantage and the campaign will move back to the earlier stage.

The more missions there are in each pool, and the more randomness each mission contains, the more dynamic the resulting campaign will appear. I would think a reasonable stab at this would involve several hundred missions.

One feature of F/A-18 campaigns that makes this project more realizable is damage-tracking for ground objects. This means that the campaign would track damage to radars, AAA and SAM sites automatically without the algorithm having to be complicated by those factors (thanks to Matt Wagner for clearing this up for me).

Download the Arctic Duel campaign here.

F/A-18 campaign main page

Questions or comments should be directed to jypes@yahoo.com