This is an overview of the Dynamic Campaign Generator. Note that this DCG cannot (yet) control a ground war. Ground objects are purely targets or eye candy. The war is an air War. CREDITS: Note! MBot is the ED Forums name of the person who developed ths Campaign Generator and full credit must go to him. This Campaign set is just a variant. Note also that whilst this Campaign set has been adapted by klem for a WWII Campaign on the Caucuses map, MBot created other, original, Campaigns for the Nevada map and, at the time of writing, F-5E and F-15C with similar folder/filesets. Their information is relevant to the Nevada map and may be a better starting point for Nevada campaigns. You can get these Campaigns from:- https://forums.eagle.ru/showthread.php?t=153020 This Campaign set is a generic mission named "Generic WWII" and based on the Caucuses Map. An actual campaign named "CaucusesSpitfireAssignment" is also provided, stripped back/edited to the campaign needs. You can create your own Campaign and even change the Map by adapting the "Generic WWII" Campaign files. The entire generic Campaign folder/file set sits under the 'Generic_WWII' folder and contains all of the Campaign folders/files. In actual use you would place a copy of the entire folder structure into a campaigns folder at: "[C:]\Program Files\DSC\Mods\Campaigns\EN\" OR "[C:]\Users\[UserName]\Saved Games\DCS\Missions\Campaigns\EN" Re-name the 'Generic_WWII' folder to suit your campaign name, say 'Normandy_1944'. The Campaign folders path is defined in the file 'camp_init.lua' in the 'Init' folder and MUST be edited to match your campaign top folder location. Overview: All the files that define a Campaign are in the \Init\ folder. The \Scripts\ folder does not need to be touched, nor do any others. Note that the six files in the \Init\ folder are the ones, and the ONLY ones, to edit to create a new mission and the files in the Generic Campaign may not contain exactly he details you need for yours. Read the instructions below to learn how to use these files and create a Campaign. Be sure to keep to the data structure when editing files. The files in the \Init\ folder do the following: 1. base_mission.miz - This is a basic mission that defines the coalitions and all ground units in the campaign. This basic mission is created in the DCS Mission Editor (ME) using the required map. Place your Objects (targets, AAA, ground units etc.). Do not place any aircraft or triggers. 2. camp_init.lua - Define some basic properties of the campaign. All variable are commented and should be self explanatory. 3. db_airbases.lua - Define the airbases you will be using. x-y coordinates and aerodrome id must match DCS. You can name the airfields to whatever you want but you must then use the same names when adding squadrons to an airbase - see "oob_air_init.lua". You may wish to keep the names exactly as on the ME Map. TIP! The Generic fileset "db_airbases.lua" contains most if not all airfields and you can simply remove any you are not using in your campaign and add any new bases to the generic file should you find any.You will have to give co-ordinates of Airfields along with airdromID and ATC frequency which is where the \Tools\ folder (see below) will be helpful. 4. oob_air_init.lua - Define all squadrons/regiments you want to appear in the campaign. Aircraft type, airbase, numbers, what tasks they should do etc. These are commented in the file and should be self-explanatory. TIP! Several units are already defined in the Generic file. You can edit, delete and add new units as necessary. You can add to the Generic file any definitions that you think you may wish to use in future. 5. db_loadouts.lua - For each aircraft type and each task, you must define at least one loadout with stores and various properties. TIP! As with other files, you can add any definitions to the Generic file if you think you may need them in future campaigns. 6. targetlist_init.lua - Here you define all targets, including CAP stations, interceptor assignments etc. Example target data sets are given in the file. Note that some 'target' assignments are actually CAP, Escort, Fighter sweep taskings for fighters whilst some are actual Target taskings such as CAS, Ground Attack, etc.. You will have to give co-ordinates of CAP stations, Targets etc which is where the Tools will be helpful. TIP! As with other files you can add definitions to the Generic file if you think they will be useful in future Campaigns. 7. camp_trigger_init.lua - This is used to define various triggers and actions for the campaign, such as victory conditions, resupply, unit/target activation/deactivation, briefing texts etc. No campaign triggers are strictly needed to run a campaign, but it makes it more interesting. Generally the files have plenty of comments and examples. A lot of the setup is just tedious work. Getting the campaign to generate a sensible Air Tasking Order (ATO, see below) might require quite a bit of tweaking and balancing. Some more details about some of the more delicate variables might be needed later, but this should be enough to get you started. TIP! Save new definitions in the Generic files for re-use in future Campaigns. TOOLS NOTE: the generic Campaign set contains a \Tools\ folder which is not part of the Campaign set and can be removed from your own Campaign set. "statics_finder.lua" will collect details and co-ordinates of Static Objects that you will need when editing your Campaign .lua files. "Airfields_finder.lua" will collect similar Airfield details although that is likely to be only a one-off excercise for a new map. To use these lua files, simply place a SearchZone in your base mission over the area you wish to interrogate. Create a 'Mission Start' trigger, setting the action to "Do Script File" and select whichever tool you want to use. Run the mission for a few seconds until you see the message "File Exported". A "Scenery Finder.lua" file will have been created in the \DCS World\ main game folder containing the details collected. Move the SearchZone around as necessary and keep it small for static objects or you will have a mountain of detail to sift through. The "ListOfCaucusesAirfields.xls" contains the Caucuses airdromeID's. The Overview file is this file. You may wish to add another folder into the \Init\ folder for, say, Images (mission images placed into the basic mission in the ME). You may also want a \Misc\ folder for specific Campaign information files you may wish to collect and refer to whilst building your Campaign and which, like this file, are NOT part of the actual Campaign set. You should move or delete this folder once the Campaign has been created or keep it elsewhere from the start. First Mission (Canpaign starter) Use the FirstMission.bat in the Campaign top folder to create a new 'Campaign start' mission based on the current files in the \Init\ folder. GEEKSPACE How it works Generally speaking, as there is no strategic layer in DCE (factories building stuff etc.), destroying a power plant will not shut down industries and / or air defences. In broad terms, DCE fits in as follows: -Strategic level: This is the campaign designer setting up the campaign: where does it take place; what are the objectives/targets; victory conditions; the resources available; the time available. -Operational level: This is DCE trying to achieve the strategic objectives by tasking the tactical level (below) through prioritizing targets, allocating available resources etc. -Tactical level: This is the player and AI trying to complete the tasks given from the operational level by flying their aircraft. The Air Tasking Order (ATO) The ATO is the centerpiece of DCE. It will assign available aircraft (which depend on the losses in previous missions) to available targets (which depend on targets struck in previous missions). The ATO will put together packages of multiple flights including SEAD and fighter escorts if applicable and create sensible flight plans. Here are some of the factors which will affect the ATO: -Mission priority (target_list.lua): High priority missions are more likely to be flown. -Threat level. The risk to strike a target is calculated for each potential mission, which includes a threat avoiding route, how many threats cannot be avoided and how dangerous these threats are. Safe missions are more likely to be flown. -Escorts (target_list.lua and oob_air_init.lua): The availability of SEAD or fighter escorts can reduce the threat level of a mission and make a mission more likely. -Route profile (db_loadouts.lua): The campaign designer can assign an altitude profile for a certain loadout (for example, F-16 on precision strike with GBU-24 should always attack high) or let the ATO decide on the most efficient option (high-high, high-low, low-low). Altitude affects routing around threats and therefore threat level and likeliness of a mission. -Time of day (camp_init.lua): During night, some air defense systems are ignored for threat avoidance (MANPADS don't see at night). This means that during day the ATO might plan a strike at hight altitude with a SEAD escort to punch through some SA-6 because it is safer, while at night the same mission would be planned at low level without SEAD escort, avoiding the SA-6 and passing through blind SHORAD (freeing the SEAD escort aircraft to do another mission on their own). -Aircraft proficiency (db_loadouts.lua?): Each aircraft-task-loadout combination has a proficiency (capability?) value. So an F-15 with an escort task with AMRAAMS should be very good, while an F-15 with an anti-ship task with guns only should be horrible. The better an aircraft with a loadout is suited for a specific mission, the more likely the ATO will asign it. -Loadout firepower (db_loadouts.lua): Loadouts with more bang are more likely to be selected by the ATO. But if a target is out of range, the ATO will select a loadout with less firepower but sufficient range. The overall calculation which missions will be flown and which aircraft are assigned is quite complex. This is further complicated by the fact that some aircraft are multirole. Should a F-16 be a SEAD escort for some B-52, do a strike mission on its own or better be on CAP? This will require a lot of testing to polish, but I think I have a pretty solid system so far. The campaign designer has the job to assign a list of possible tasks for each aviation unit defined in the campaign. Since this is unit specific and not aircraft type specific, it will be possible for example to have a the 1st Squadron with F-16 doing CAP, sweep and escort only, while the 2nd Squadron with F-16 is doing SEAD and ground attack. Furthermore the campaign designer must then define loadouts for each aircraft-task combination, where he can define key properties such as night capability, firepower value, proficiency, altitude profiles, cruise speeds, range etc. Setting this up for each campaign will be a lot of work initially, but it is also an extremely flexible system. It will allow for example to set up that a F-117 unit will only fly at night or that a MiG-21 unit will only fly ground attack at day and intercepts at night.