Development guide - shdwp/dcs_liberation GitHub Wiki
Development
Notice
Code is written pretty badly and poorly documented, so, sorry for that in advance.
develop branch is used for development and pre-releases, usually when Release Candidate works well I merge the develop back into master and push out Release build.
qt_ui branch is a work in progress rework of the project. See the last part of this page to get started with this branch.
Develop Branch
How to:
- Clone the repository
- Copy DCS loadout files from release bundle
./resources/payloads(originally they were scattered around DCS folder) - Check out
developbranch. - Verify requirements are installed (
pip install -r requirements.txt)
And, finally, to actually run application from source files, you would need to execute __init__.py and provide a few arguments: User profile "Saved Games" directory location (usually %UserProfile%\Saved Games), application version (for the logs and save compatibility check, just use dev for development) and --stdout (so that debug output would go into console).
Making a release
- You need pyinstaller.exe in the
$PATHformkrelease.py(inresources/tools) to work.
Run mkrelease.py from the root folder, it will prompt you for version number, and package up everything into zip file under ./build folder.
Required arguments:
- Saved Games path. Usually
%UserProfile%\Saved Games - Version string. For the development use
dev
Supported options:
--stdout- console output, no exception handler--force-stable-DCS- force usingDCSinstead ofDCS.openbeta--ignore-save- don't load saved game on startup
Tools in resources/tools:
generate_landmap.py- will generate landmap polygons fromcau|gulf_terrain.mizand 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 generateloadout_check.mizmission, which would contain all supported planes in all possible configurations. Used to verify that each plane have correct ordinancemiz_diff.py- debugging tool to compare two luamissionfiles (from.mizfiles).generate_goundobjectsmap.py- will generate enemy ground assets map fromcau|gulf_groundobjects.mizand 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. Contrary to other tools must be run from the root directorymkrelease.py- zip up everything into release bundle. Contrary to other tools must be run from the root directory
Other resources files:
default_options.lua- defaultoptionsfile for missions.
Qt UI Branch:
Install Python 3.7+
To get started and launch the app :
- Clone the repository, and the qt_ui branch
- Run
pip install requirement.txtto install dependencies - Run the file main.py with the following settings:
