"How can I design a better mission?" A developer known as Snowflake is building a suite of open-source tools to address long-standing complaints about DCS World's Mission Editor, including the lack of undo/redo functionality and limited AI control. The first project, orbit, is a transcompiler that generates Lua from Zig code. Snowflake plans to release additional tools such as markline for AI command-line control and grunt for ground AI management. This is the number one question every mission maker asks in the DCS community. There is a common consensus that the Mission Editor ME is both "lacking" and overwhelming at the same time. Just shy of a couple years ago, I began to try learning it seriously, figuring out how the GUI can be modified and interacted with; and eventually now how certain logic is implemented in respect to the Simulator Scripting Engine , the real question at hand. SSE If I could summarise the most frequent complaints I hear, it'd likely look something like this: - "The UI is confusing and/or lacks certain features" e.g. Ctrl+Z/undo, map camera, hot updates - "The AI is not programmable or customisable enough" it is. - "There is no sense of dynamic behavioural AI combat" refer to above counterpoint This gist is essentially dedicated to my findings about the SSE. How does the "Lua API" actually work? What are its limitations and how far can I go modifying it? Snowflake https://github.com/snwfke 's journey begins with exploring the ME. "Whaa?" Yeah, that's right. We will become a DCS modding team capable of open and closed-sourced tooling for missions, UI and other gameplay-related fields. Snowflake will also maintain discretionary rights for any closed-sourced tooling IP. There are very few teams known for handling open-sourced mission tooling, examples including MOOSE https://github.com/FlightControl-Master/MOOSE and MIST https://github.com/mrSkortch/MissionScriptingTools . The first project I've released under this modding team is orbit https://github.com/snwfke/orbit , a proof-of-concept transcompiler that can generate Lua from Zig code. Upon private confirmation with a 3rd party developer that some teams do in fact apply this concept I tested, I realised that I've been presented the rare opportunity to invent Snowflake as a team that can leverage the DCS modding community into the direction that is needed. So, what am I talking about? What are we trying to do? Well, the goal is to address the key issues of what most people are upset with: No undo – cannot press a GUI element, nor use a keyboard input such as Ctrl+Z. No redo – likewise with undo, except you cannot redo. Ground AI are dumb/fight too fast/picky/... – a mix of missing AI behaviour interfaces and user error on desired behaviour. Lack of AI control – pretty self-explanatory, except it broadly covers all AI, some taskings, and some tasks. Cannot modify or use mission data – comes down to .miz build steps and specific parameters. So logically we address the biggest issues: undo – & redo functionality to the DCS ME, as GUI elements and keyboard inputs. Ctrl+Z/Y markline – providing command-line control to players over AI units. In addition, Snowflake is going to provide some general tooling for DCS that can be useful for mission makers and other modders requiring interaction with the mission: orbit – A "micro"-transpiler for generating Lua from another programming language. grunt – An ME API for managing ground AI movement & behaviour. cdcs – A C API for interacting with the SSE. And, of course, we'll also provide very useful tooling for aircraft modders, select 3rd parties and ourselves: satview – An in-game 3D visualiser for observing the current position of GNSS orbitals during runtime. satlink – An ME API for navigation, datalink and self-communication of GNSS satellites. GPS and Link-16 possibiliies supremacy – A persistent, logistics-driven ME framework inspired by the Underground. framework All of these projects mentioned are possible and panned to come. Comparing architecture, user-facing methods, complexity and level of abstraction from Snowflake to bigger, more popular open-sourced projects shows a massive difference in development focus and goals altogether: | |---| markline https://github.com/snwfke/markline Let's start off by breaking one of the biggest misconceptions about the ME: "you can't modify it." Well, what if I told you that's simply not true? Not only can we modify the GUI of the ME, it is completely bypassed by Integrity Check This means we could actually mod it to our heart's content, and it would never pose a problem for MP gameplay. | F10 Map Marker CLI | DirectX GUI UI CLI | |---|---| underground cli.mp4 | underground ui.mp4 | | The best thing Grooveline and I have built is a fully working string-based CLI that executes with F10 map markers. What was our basic and humble beginnings is the predecessor to markline. | We realised that it was so effective as a system, what if we simplified the way you could interface with the AI directly, while you're still flying? That's when the UI was decidedly given birth. | I do not typically give projects a lot of praise, but when I do, it's usually because it's pretty damn good. In the case of The Underground, it does not fail to disappoint at all. While we don't have a website up, yet what we've done would make anyone who enjoys any sort of AI-to-player interaction will suddenly get the urge to fly in DCS. We originally started off building it as a basic ME toolkit for enhancing immersion by programming AI behaviour and managing unit spawns, but now it's become a fully-fledged and closed-sourced ME framework that sets the precedent for rotary gameplay in DCS. Out of the many servers I've played, it comes on par with Contention https://guide.strikepackagestudios.com/ and features a simpler, more custom design. I believe satellites are slept on when it comes to DCS modding. Besides Caffeine Simulations' GNS530 https://caffeinesimulations.com/mods and Garmin G5 suite, there is really no other modding team that has tried venturing into creating a Global Navigation Satellite System GNSS implementation. There is a lot of potential to be had here too, because this avenue lets you expand capabilities for: - Link-16 and other forms of tactical datalink. - Letting any ground, naval or air unit to share their location in real-time. pending GNSS connection strength - Sharing information about enemy units or route points to friendly units. - Proper NAVSTAR https://gist.github.com/starred.atom GPS simulation.- Using DCS' celestial sphere for accurate constellations, calculating position like real GPS. - Creating a dynamic GHz frequency band that can be interfered with by GPS jamming. - Allowing GNSS satellites to communicate with each other, triangulate, and show loss/degradation of precision. Having now pointed out some of the things DCS could and probably would benefit from, now it's time to look into the potential solutions. Effort.