Ship placement is perhaps the most important aspect of creating procedural missions. For procedural patrol missions in Eterium, placement is handled by providing a maximum difficulty and an individual encounter difficulty for the mission. Encounter difficulty determines how many and which type of ships can be placed at a particular encounter (e.g. en route to Nav 1), while the maximum difficulty is the sum total of all encounters. The latter ensures that a mission will not be generated that consists of several brutal encounters in a row.
To place the ship, the algorithm examines each nav point in order and picks an encounter location between previous and current nav point, favoring points closest to the nav point itself. Then ship selection is done by drawing ships from a level-capped list. Each ship has an associated cost as well as a set number to place. It would be quite odd to encounter a single medium fighter, so in order to place a medium fighter, two must be placed in formation. Each time a group of ships is placed, the encounter difficulty increases. No ship is placed 1/3rd of the time or if the selected ship group exceeds the available points remaining in the encounter. Placing no ship costs one point. When all points in the encounter have been used, the algorithm sums up the total points for all ships placed and applies it against the maximum difficulty before proceeding to the next encounter zone. This allows the creation of small fleets of ships, just a single wing, or even no ships at all. The maximum difficulty should be set to balance the amount of full encounters that can be generated. The idea here is to minimize the total number of full encounters and spread out the ships among multiple nav points; certain rolls may result in epic battles that might be summed up or proceeded by a small patrol while others will deliver several smaller pockets of resistance thoughout the entire mission.
I have begun testing a simplified algorithm that draws from two possible ships. It will probably take much tweaking before I come up with a final algorithm. The idea is to find a way to have the computer create compelling and challenging encounters based on the current level of the player. In later chapters, procedurally generated missions should regularly contain a light cap ship encounter. Light cap ships should always have some sort of escort. I will continue to post more about this as I work on the procedural mission generator and add more ships. The ultimate end goal is to be able to create a missions simply by providing a mission type and a difficulty level. These kind of missions would make great additions to an in-game simulator.