Skip to content

Development guide

Vasyl Horbachenko edited this page Sep 13, 2018 · 12 revisions

Development

Notice

Code is written pretty badly and poorly documented, so, sorry for that in advance.

How to:

  1. Clone the repository
  2. Fetch submodules
  3. Verify directory links:
  4. ./dcs should point to ./submodules/dcs
  5. ./resources/tools/dcs should point to ./submodules/dcs
  6. Copy DCS loadout files from release bundle ./resources/payloads (originally they were scattered around DCS folder)

And, finally, to actually run application from source files, you would need to execute __init__.py and provide two arguments: User profile directory location (usually %UserProfile%) and application version (for the logs and save compatibility check) and --stdout (so that debug output would go into console).

Supported arguments:

  • --stdout - console output, no exception handler
  • --force-stable-DCS - force using DCS instead of DCS.openbeta
  • --ignore-save - don't load saved game on startup

Tools in resources/tools:

  • generate_goundobjectsmap.py - will generate enemy ground assets map from cau|gulf_groundobjects.miz and save them to ../cau|gulf_groundobjects.p. Those static groups and AA units are used to populate the territory with enemy infrastructure and as a targets in strike type of missions. Only a handful of statics are supported.
  • generate_landmap.py - will generate landmap polygons from cau|gulf_terrain.miz and save them to `../cau|gulflandmap.p". Polygons are constructed from USA units in the mission files, first being a overall landmap, and others are exclusion zones (like lakes and whatnot). Used to determine units placement (so ground vehicles won't end up in a sea or lake)
  • generate_loadout_check.py - will generate loadout_check.miz mission, which would contain all supported planes in all possible configurations. Used to verify that each plane have correct ordinance
  • miz_diff.py - debugging tool to compare two lua mission files (from .miz files).
  • mkrelease.py - zip up everything into release bundle. Contrary to other tools must be run from the root directory

Other resources files:

  • default_options.lua - default options file for missions.

Ground object (strike targets) placement guide

Strike targets (both ground assets and AA) are placed in resources/tools/cau|gulf_groundobjects.miz.

Objects are grouped together into single strike objective, if they're less than 2km apart. Strike objectives itself will be assigned to closest control point from the map perspective. Type of the strike objective will be determined by the types of units that are in the group. It's important that particular event would only be a part of one type of objective, for example, "Structures/FARP Tent" is assigned as a part of "FARP" strike objective category, so it should only be used with other "FARP" category objects for them to form a complete strike objective (else it'd result in objectives of both types generated at the same location).

Categories go as following:

  • AA: any AA unit (it'd be replaced with correct one on mission generation)
  • Power: "Structures/Workshop A"
  • Warehouse: "Structures/Warehouse"
  • Fuel: "Warehouses/Tank"
  • Ammo: "Warehouses/Ammunition depot"
  • FARP: "Structures/FARP Tent"
  • Comms: "Structures/TV tower", "Structures/Comms tower"
  • Oil: "Structures/Oil platform"

Clone this wiki locally