Short:

Dynamic campaign engine for a flight simulator

Tech:

Python, Lua

Links:

Original repo, Maintained fork, Article about it, Short video demonstration of an old version

Downloads:

More than 60,000

DCS World is a air combat simulation, which while having state of the art flight and system modelling, severely lacks playable content. You can make missions for it, but there is a finite amount of those and they are usually are a one shot type of a thing, having almost zero replayability. While there were some projects trying to make missions procedurally, nothing was captivating enough to get popular.

Sometime during 2018 I had an idea of making a mission generator that would also have persistency from mission to mission, therefore facilitating player progress. Player would use my tool to setup the mission in the tool, load it up in the simulator, and after playing it the tool would see what the results during that play session were, account for that in the persistent world, and provide the player with the means to select the next mission. Therefore you can play one turn at a time, at your own pace, and also select the types of missions that you want to play, while still having the overall war effort steadily progressing.

The main influence came from ArmA's Liberation game mode missions, which let you capture bases, which provided the income, with which you would buy the tech to make your next base attack. The same approach was quite novel in DCS since usually it would put you in a pilot seat, with no means of selecting what you want to do or what you want to fly.


The initial release took a couple of months, which was written in Python with very crude interface in Tk. The reception was great:

One of the strongest sides of Liberation is its scalability. DCS has a great number of planes and maps available, but when you make a mission you're limiting the users to just one. With a procedural generator like Liberation you can do the mission in any plane you want, given that the plane has the given capability.


I've maintained and further developed the project for the next 2 years, during which a number of other developers came with fixes and improvements. Tk interface was scrapped in favor of a more developed Qt (courtesy of one of the future maintainers, Khopa), new mission types were added and campain also started supporting helicopters as well. After that the development was superseeded by Khopa, who's created a fork under a github organization, which is still being developed and supported today, with more than 60,000 downloads across both original and current repositories, and around 300,000 views on the DCS forums.

Popular flight simulation website mudspike.com did an article on the Liberation a while ago: in depth review of DCS Liberation.