Update for 3.0.

Dan Albert
2021-06-11 00:32:47 -07:00
parent de11ad73dc
commit bf911bb8fa

@@ -1,5 +1,3 @@
**Changes for DCS Liberation 3.0:** Campaign definition has changed significantly in DCS Liberation 3.0. That guide is being kept [here](https://github.com/dcs-liberation/dcs_liberation/wiki/Custom-campaigns-(3.0)) until release to avoid confusion.
Campaigns in DCS Liberation can be modified using the mission editor. Each campaign is defined by a JSON file to provide metadata, and a DCS mission file (`.miz` file) to set up the theater.
The included campaigns can be modified, or new campaigns can be added to the `resources/campaigns` directory of the Liberation install.
@@ -10,6 +8,10 @@ DCS Liberation must be restarted after campaign changes are made. Campaign chang
If the campaign does not appear in the New Game wizard, there is likely an issue in the JSON file. Check the console window for errors.
### Campaign changes in the dev branch
Breaking campaign changes to do not get documented on the wiki immediately, but will always be listed in the notes next to `CAMPAIGN_FORMAT_VERSION` in [game/version.py](https://github.com/dcs-liberation/dcs_liberation/blob/develop/game/version.py).
## Descriptor file
The campaign uses a JSON file to describe some metadata. To create a new campaign, add a JSON file (such as `mycampaign.json`) to `resources\campaigns`.
@@ -24,7 +26,7 @@ This json file should contain a json object, with the following parameters :
Note that this field is **not** the DCS Liberation version, but the version of the campaign file format. The latest version is defined by `CAMPAIGN_FORMAT_VERSION` in [game/version.py](https://github.com/Khopa/dcs_liberation/blob/develop/game/version.py).
If `version` is not set or is `0`, the campaign is from an unknown version of the game and will be marked as incompatible in the new game wizard.
If `version` is not set or is `"0"`, the campaign is from an unknown version of the game and will be marked as incompatible in the new game wizard.
* `recommended_player_faction`: The recommended player faction (will be automatically selected by default on the faction selection page)
* `recommended_enemy_faction`: The recommended enemy faction (will be automatically selected by default on the faction selection page)
* `miz`: The name of the miz file (in the same `resources\campaigns` directory) that describes the campaign.
@@ -63,170 +65,158 @@ A FOB a a capturable point that can spawn ground units but not aircraft. A FOB i
The group name of the unit is used to name the FOB.
FOB defenses function similarly to airbase defenses and their spawn positions are determined by placing the same units. The only difference is that the chance for a group to be generated are determined as follows:
*Between 2 and 6 defense groups are generated.
*The first group has 1/2 chance of being a SHORAD and a 1/2 chance of being a garrison.
*All further groups have a 1/3 chance of being a SHORAD and a 2/3 chance of being a garrison.
Note that a FOB will not generate objective locations as an airbase would.
#### Importance
Control points can be assigned an "importance", which determines the proportion of their forces that the AI commander will assign to the control point. This value is set using the `Periodicity` property of the control point's warehouse. This applies to airbases only.
30 is the default in the editor and leaving it at 30 will cause it to have its default priority in the campaign (1.2).
Custom priorities may be set by changing the periodicity to a value between 10 and 14 (inclusive), with 14 being the most important and 10 being the least important. This value will be divided by 10 to fit the game's importance range of 1.0 to 1.4, so a value of 12 will also set the default importance of 1.2.
#### Campaign inversion
Inverting the campaign allows the player to play the campaign in reverse (starting from the North instead of the South, for example). This doesn't simply swap all of the control points, but swaps a number of control points as defined by the mission designer so that the player doesn't begin the campaign with most of the control points already captured.
To specify that an airbase should be owned by the player when the campaign is inverted, set the "unlimited aircraft" property of the warehouse. To specify the same for a carrier, LHA, or off-map spawn, set the "late activation" property of the group.
To specify that an airbase should be owned by the player when the campaign is inverted, set the "unlimited aircraft" property of the warehouse. To specify the same for a FOB, carrier, LHA, or off-map spawn, set the "late activation" property of the group.
### Front lines
### Supply routes
Front lines are defined by placing a CJTF Blue M-113 at an airfield and defining a route to the connected control point. The front line will follow the _waypoints_ of the vehicle group (not the path, so using on-road waypoints will not cause the front line to follow roads automatically), so waypoints should be placed at each location that the front line should turn to avoid terrain. The route beginning and end points will be used as the origin and destination endpoints for convoys, so each end point of the route should be placed on a road. The beginning and ending waypoints will associate with the nearest airfields when the campaign is generated.
Supply routes are defined by placing a CJTF Blue M-113 at an airfield and defining a route to the connected control point. Front lines progress along supply routes, and supply routes also define road networks for ground unit transit.
**Important:** Care should be taken to route the frontline around exclusion zones. If the center of the frontline location lies in an exclusion zones, frontline units may not spawn correctly. You can view the exclusion zones in the Liberation UI by enabling the display option "Map Debug Mode"
The supply route will follow the _waypoints_ of the vehicle group (not the path, so using on-road waypoints will not cause the front line to follow roads automatically), so waypoints should be placed at each location that the front line should turn to avoid terrain. The route beginning and end points will be used as the origin and destination endpoints for convoys, so each end point of the route should be placed on a road. The beginning and ending waypoints will associate with the nearest airfields when the campaign is generated.
**New in DCS Liberation 3.0:** The begin and end waypoints of the path defining the front line route define the origin and destination for convoy routes. Endpoints of the route should be placed on or near roads so that convoys can get moving quickly. If far from a road, units will move from their location off-road to the road one at a time until they have all reached the road.
**Important:** Care should be taken to route the frontline around exclusion zones. If the center of the frontline location lies in an exclusion zones, frontline units may not spawn correctly. You can view the exclusion zones in the Liberation UI by enabling the display option "Map Debug Mode"
### Shipping lanes
**New in DCS Liberation 3.0:** Shipping lanes define routes for transporting units between control points via cargo ships.
To define a shipping lane, place a CJTF Blue Bulker Handy Wind. Shipping lanes should begin in port areas that are navigable by ships and have a route to another port area. DCS ships *will not* avoid driving into islands, so ensure that their waypoints plot a navigable route.
### Base defenses
Airbases will randomly generate a set of base defenses at the beginning of the campaign. The campaign generator currently uses the following algorithm when deciding what base defenses to spawn:
* Spawn 1 EWR
* Spawn 1 garrison
Then the generator will create between 2 and 5 (evenly weighted) additional defenses with the following probabilities:
* The first has a 1/2 chance of being a SAM, 1/6 chance of being a SHORAD, and 2/6 chance of being a garrison.
* The second through fifth groups have a 1/3 chance of being a SHORAD and a 2/3 chance of being a garrison.
This means that if the campaign designer wishes to avoid randomly positioned base defenses, they must define at least:
* 7 EWR locations
* 7 air defense locations (SAMs and SHORADs differ by unit type but share placement locations)
* 6 garrison locations
More can be placed to allow more variety in each campaign. When generating base defenses, locations will be selected from the presets at random. If no more preset locations remain for the given type, the generator will fall back to random positioning. Random positioning can result in units being placed under water, on buildings, on steep mountain slopes, etc, so it should not be relied upon.
Base defense locations will automatically be associated with the closest control point to them.
#### EWR
To define a potential EWR location, place a CJTF Blue EWR 55G6. If the unit is more than 2NM away from a control point, it will become a potential strike EWR target. If the unit is within 2NM from a control point, it will become a potential base EWR target.
NOTE: One EWR will always be assigned to each control point.
To define an EWR location that will always be generated, place a CTJF Red EWR 1L13. This can be placed anywhere and does not need to be within 2NM of a base.
#### Air defenses
To define a potential air defense location, place a CJTF Blue S-300PS SR 64H6E within a 2 NM radius of the control point. Units placed outside that radius will be regular objective locations rather than base defenses.
The campaign generator will use these locations to spawn all ranges of air defenses, from an SA-10 to AAA. Precisely what is spawned depends on whether the generator uses the location for a SAM or SHROAD, the faction's available equipment, and random selection of that equipment during campaign generation.
#### Garrisons
Garrisons are ground units placed at the airbase that defend against the encroaching enemy front line. To define potential locations for garrison groups, place a CJTF Blue SA-19 Tunguska 2S6.
**New in DCS Liberation 3.0:** Random base defense generation is being removed. Replace the old base defense spawn locations with the desired number of fixed IADS and armor groups.
### Objective locations
The campaign generator will automatically generate a number of objective locations attached to each control point (airbases only). The quantities and types of objectives depends on the faction, the player's options, and random chance.
**New in DCS Liberation 3.0:** Random objective locations should no longer be used. The instructions below describe how to place fixed objectives. The contents below have changed significantly since 2.5 and should be read in full when converting campaigns.
Objective locations are automatically associated with their closest control point.
* A random number of naval groups will be generated based on the faction and player options.
* A random number of missile sites will be generated at airbases based on the faction.
* Between 2 and 7 other objectives will be generated at airbases. These other objectives have a 1 in 4 chance of being SAMs. 3 in 4 will be strike targets (either land based or offshore).
In each case, if not enough preset locations are available for the given type, the generator will fall back to random positioning. This can result in ships being placed on land, SAMs being placed underwater, or factories being placed on top of other buildings.
#### Strike targets
Strike targets make up the bulk of the objective locations and will be spawned connected to control points (airbases and FOBs). These come in a variety of types depending on the faction:
Strike targets are buildings that generate income for the owning coalition. These come in a variety of types depending on the faction:
* SAMs
* EWRs
* Power plants
* Ammo depots
* Fuel depots
* Warehouses
* FARPs
* FOBs
* Factories
* Communications towers
* Offshore oil platforms
* Oil derricks
* Bunkers
* Villages
* Army camps
* Map Objects
Note that it is possible to require that certain SAM locations are generated, and each required SAM will cause a random SAM to be skipped (though it will not skip other objective locations). This is described further in the IADS section.
To define a strike target location, place a Tech Combine structure. The unit may be either red or blue (the only difference is currently readability of the mission editor, but in the future will determine which coalition owns the objective).
Between 2 and 7 strike targets will be generated at each airbase, so to avoid random locations place at least 7 each of ground and offshore strike locations. Offshore locations will not be possible at every airbase. If no preset locations are defined the generator will fall back to random positioning, which will also fail, causing no offshore locations to be created. This is expected.
#### Offshore strike targets
To define a ground based strike location, place a CJTF Blue S-300PS SR 64H6E at least 2 NM from the associated air base. Locations within 2 NM will be base defense locations rather than strike locations.
Offshore strike targets generate income for the owning coalition.
To define an offshore strike target, place a CJTF Blue Oil Platform.
To define an offshore strike target, place a CJTF Red Oil Platform.
Beginning in DCS Liberation 3.0, it is also possible to create strike targets using built in map objects. These are the buildings/trees/scenery that are placed by the map developer (Eagle Dynamics, etc). Liberation uses trigger zones to define scenery as a strike target.
#### Map objects
**How to define scenery as a strike target:**
Arbitrary map objects may be used as strike targets. These are the buildings/trees/scenery that are placed by the map developer (Eagle Dynamics, etc). Liberation uses trigger zones to define scenery as a strike target.
Determine some buildings that you would like to use as part of an objective. For each building, right click and select "assign as...", this will create a trigger zone, centered on the building's geometric center. You may leave the name of the trigger zone as its default, or rename it to what you'd like the player to see. Do not modify the color (white), or the properties. Note that the more buildings at an objective, the more income the objective will create. Once a group of buildings has been determined, create new _circular_ trigger zone through the Mission Editor's sidebar, and give it the color of blue (`0 Red`, `0 Green`, `255 Blue`; there is a shortcut button that is blue in case you do not want to type the RGB numbers in manually). Move this trigger zone near the center of your desired objective building group, then scale the blue trigger zone's radius until the blue trigger zone surrounds all of the objective's white trigger zones (specifically their centers). Ensure each blue trigger zone has a unique name. Because blue trigger zones define objectives, you must tell Liberation what type of objective it is. Create a property for the objective definition, with the value field as be any of the entries listed in `game/db.py : REWARDS`, repeated below for convenience. This must be the first property in the objective definition (blue) trigger zone.
To define a map object strike target, right click the building in the mission editor and select "assign as...". This will create a trigger zone around the building. The name of this trigger zone will be used to identify the building in the Liberation UI. Do not modify the color (white) or the properties. This creates the individual building that will be a part of the objective group.
- `power`
- `ware`
- `fuel`
- `ammo`
- `farp`
- `fob`
- `factory`
- `comms`
- `oil`
- `derrick`
Create new _circular_ trigger zone through the Mission Editor's sidebar, and give it the color of blue (`0 Red`, `0 Green`, `255 Blue`; there is a shortcut button that is blue in case you do not want to type the RGB numbers in manually). Place this trigger zone such that it encloses each of the centers of the objective's white trigger zones. This defines the objective area (named, targetable group of buildings), whereas the white zones define the individual buildings of the objective location. Each group zone must have a unique name.
Create a property for the objective definition with the value field set to any of the entries listed in `game/db.py : REWARDS` (listed below for convenience, but may be out of date). **This must be the first property in the group zone.** This field defines the category (objective type) of the group, which impacts income generation per building.
* `power`
* `ware`
* `fuel`
* `farp`
* `fob`
* `comms`
* `oil`
* `derrick`
Each **structure** will generate its own income, not each **group**. This means that large groups of structures will generate large amounts of income.
Note that `factory` and `ammo` have different behavior. See the documentation on factories and ammunition depots below.
**Map Object Limitations:**
- Objective definitions (Blue TriggerZones) in campaign definition cannot overlap.
- Campaign creator must define objective type.
- No images for the various buildings.
- Every blue trigger zone must have a unique name.
* Objective group definitions (blue trigger zones) cannot overlap.
* The campaign creator must define objective type.
* No images for the various buildings in the Liberation UI, briefing, or kneeboard. Target identification will be difficult.
* Every blue trigger zone must have a unique name.
#### Factories
Factories are ground unit producing structures. Ground units may only originate from control points that have factories, so it is essential that each coalition have access to them. Units will form convoys to move between control points, and convoys may be interdicted to interrupt reinforcements. Destroyed factories will stop producing units. When a control point loses its last factory, it will no longer be a source for ground units.
Factories also generate $10M per turn for the owner.
Define factory locations with CJTF Blue Workshop A structures.
Recommendations for factory placement:
* Prefer back-line control points or major transit hubs (especially ports and large airports capable of fielding cargo planes) for factory locations. This allows units to reach their destinations more quickly.
* Avoid placing factories at control points that begin as the front line. Factories on the front line mean that convoys will not be formed and this removes a mission type for the player.
* Defend factories with IADS and (if accessible by the front line), armor groups.
Note that map objects (defined in the previous section) may be used as factories. Use the `factory` category.
#### Ammunition Depots
Ammunition Depots provide control over how many ground units are available to be deployed to the front line from it's closest control point. This directly effects how many ground units may be deployed on a front line.
Each control point has a free `15` deploy-able ground units available to it before ammunition depot buildings are required to raise the limit of how many ground units may be deployed. Each additional ammunition depot building raises the limit by `12` units.
Ammunition Depots are placed in a campaign using the `Ammunition Depot` warehouse object to spawn the default template of one `Ammunition Depot` and two `Hangar B`s. Each ammunition depot template will raise the front line ground unit limit by `36` units.
Alternatively, scenery objectives may be used with the `ammo` category to define an ammunition depot objective.
Recommendations for Ammunition Depot placement:
* Defend your ammunition depots with IADS and ground units.
#### Ships
Ships can be generated at airbases, carriers, and LHAs (but not off-map spawns). Ships will not be spawned if the player has disabled either player or enemy navies in the campaign generation options, or if the faction does not have naval units defined. The number of naval groups spawned is determined randomly between 0 and the limit defined by the faction, uniformly. There is no limit on how many can be spawned as is it is up to the faction designer, so place as can sensibly be placed (a dozen should be more than enough, and five should be plenty).
Ships can be generated at airbases, carriers, and LHAs (but not off-map spawns). Ships will not be spawned if the player has disabled either player or enemy navies in the campaign generation options, or if the faction does not have naval units defined.
To define a potential ship location place a CJTF Blue Arleigh Burke IIa.
To define a ship location place a CJTF Red Arleigh Burke IIa.
#### Missile sites
Missile sites (scuds, V-2s, etc) can be generated at airbases. Missile sites will only be spawned if the faction has them defined, and the amount is randomly selected between 0 and the limit defined by the faction. There is no limit on how many can be spawned as is it is up to the faction designer, so place as can sensibly be placed (a dozen should be more than enough, and five should be plenty).
Missile sites (scuds, V-2s, etc) can be generated at airbases and FOBs. Missile sites will only be spawned if the faction has them defined.
To define a potential missile site place a CJTF Blue SRBM SS-1C Scud-B 9K72 LN 9P117M.
To define a missile site place a CJTF Red SSM SS-1C Scud-B.
#### Coastal defenses
Coastal defenses (silkworms) can be generated at airbases and FOBs. Coastal defenses will only be spawned if the faction has them defined.
To define a missile site place a CJTF Red AShM SS-N-2 Silkworm.
#### Armor groups
Armor groups are ground units that defend the assigned location. These groups will not move.
To define potential locations for garrison groups, place a (red or blue) MBT M1A2 Abrams.
### IADS
To guarantee that each faction begins with a strong IADS, SAMs and EWRs can be forced to spawn at specific locations. These will take the place of the randomly generated SAM and EWR objectives when they exist, but are not required. They are strongly recommended as random IADS placement will lead to more easily defeated air defenses.
IADS locations are automatically associated with the control point closest to them.
Required IADS locations are automatically associated with the control point closest to them.
SAM locations are split into four types: long range, medium range, short range, and AAA. Each type of position will prefer to be filled by its exact type, but if the faction has no air defenses of that type available the generator will continue to downgrade the site until it finds a match. For example, a medium range SAM may be used in place of a long range SAM. _Upgrades_ are not allowed.
Required SAM locations are split into two types: long and medium range. Long range positions will prefer to be filled long range SAMs, and medium range positions will prefer to be filled by medium range SAMs. If the faction does not have the required class of SAM available, a downgrade will be used (for example, a medium range SAM may be used in place of a long range SAM, but not vice versa).
Note that the exact type of SAM or EWR that will be placed depends on the faction data. However, when designing a campaign with specific factions in mind (such as Syria defending on the Syria map), this allows the designer to see the coverage of the SAMs used by the intended faction. This way the designer can be sure that sufficient coverage will be present in the campaign when a faction using a specific type of SAM is used.
Note that the exact type of SAM or EWR that will be placed depends on the faction definition. However, when designing a campaign with specific factions in mind (such as Syria defending on the Syria map), this allows the designer to see the coverage of the SAMs used by the intended faction. This way the designer can be sure that sufficient coverage will be present in the campaign when a faction using a specific type of SAM is used.
#### Early Warning Radars
To define a required EWR location, place a CJTF **Red** EWR 1L13.
To define an EWR location, place a CJTF Red EWR 1L13.
#### Long range SAMs
Currently the only two long range SAM systems are the Patriot and the SA-10 (S-300). If the faction does not have either of those systems, medium range SAMs will be generated instead.
Currently the only two long range SAM systems are the Patriot and the SA-10 (S-300). If the faction does not have either of those systems, the location will be downgraded to a compatible type.
To define a required long range SAM location, place a CJTF **Red** unit of any of the following types:
To define a long range SAM location, place a CJTF Red unit of any of the following types:
* SAM Patriot LN M901
* SAM SA-10 S-300PS LN 5P85C
@@ -234,36 +224,50 @@ To define a required long range SAM location, place a CJTF **Red** unit of any o
#### Medium range SAMs
Medium range SAMs include any SAMs that do not qualify as long range SAMs. If the faction has no medium range SAMs available those positions will be filled by SHORADS.
Medium range SAMs include most radar SAMs that do not qualify as long range SAMs. If the faction has no medium range SAMs available, the location will be downgraded to a compatible type.
To define a required medium range SAM location, place a CJTF **Red** unit of any of the following types:
To define a medium range SAM location, place a CJTF Red unit of any of the following types:
* SAM Hawk LN M192
* SAM SA-2 LN SM-90
* SAM SA-3 S-125 LN 5P73
#### Short range SAMs
Short range SAMs include IR SAMs and shorter range radar guided systems. If the faction has no short range SAMs available, the location will be downgraded to a compatible type.
To define a short range SAM location, place a CJTF Red unit of any of the following types:
* SAM Avenger (Stinger)
* SAM Rapier LN
* SAM SA-19 Tunguska "Grison"
* SAM SA-9 Strela 1 "Gaskin" TEL
#### AAA
AAA sites include self-propelled and static anti-air artillery systems. If the faction has no AAA available, the location will not be generated.
To define a AAA location, place a unit (red or blue) of any of the following types:
* AAA 8,8cm Flak 18
* SPAAA Vulcan M163
* SPAAA ZSU-23-4 Shilka "Gun Dish"
## Unit Type Quick Reference:
* #### Required Long Range SAMs (CJTF Red):
* SAM Patriot LN M901
* SAM SA-10 S-300PS LN 5P85C
* SAM SA-10 S-300PS LN 5P85D
* #### Required Medium Range SAMs (CJTF Red):
* SAM Hawk LN M192
* SAM SA-2 LN SM-90
* SAM SA-3 S-125 LN 5P73
* #### Missile Sites (CJTF Blue):
* SRBM SS-1C Scud-B 9K72 LN 9P117M
* #### Ship (CJTF Blue):
* Arleigh Burke IIa
* #### Offshore Strike Target (CJTF Blue):
* Oil Platform
* #### Garrison (CJTF Blue):
* SA-19 Tunguska 2S6
* #### Air Defenses (CJTF Blue):
* S-300PS SR 64H6E
* #### EWR (CJTF Blue):
* EWR 55G6
* #### Required EWR (CJTF Red):
* EWR 1L13
* #### FOB (CJTF Blue/CJTF Red):
* CP_SKP_11_ATC_Mobile_Command_Post
Objective type | Coalition | Unit types
-|-|-
EWR | Red | EWR 1L13
Long range SAM | Red | SAM Patriot LN M901<br />SAM SA-10 S-300PS LN 5P85C<br />SAM SA-10 S-300PS LN 5P85D
Medium range SAM | Red | SAM Hawk LN M192<br />SAM SA-2 LN SM-90<br />SAM SA-3 S-125 LN 5P73
Short range SAM | Red | SAM Avenger (Stinger)<br />SAM Rapier LN<br />SAM SA-19 Tunguska "Grison"<br />SAM SA-9 Strela 1 "Gaskin" TEL
AAA | Either | AAA 8,8cm Flak 18<br />SPAAA Vulcan M163<br />SPAAA ZSU-23-4 Shilka "Gun Dish"
Factory | Blue| Workshop A
Ammo Depot | Either | Ammunition depot
Strike target | Either | Tech combine
Offshore strike target | Red | Oil Platform
Missile Sites | Red | SSM SS-1C Scud-B
Coastal defenses | Red | AShM SS-N-2 Silkworm
Ship | Red | Arleigh Burke IIa
Armor group | Either | MBT M1A2 Abrams
FOB | Either | Truck SKP-11 Mobile ATC