Initial Home page

Sven Van de Velde
2016-05-01 08:26:11 +02:00
commit 783b4443c6

51
Home.md Normal file

@@ -0,0 +1,51 @@
# Context
A development has been ongoing for a while now, which allows to create missions quickly using an Object Oriented Framework developed in lua.
MOOSE is currently still in alpha version, but will evolve over time. Right now, it has been updated to work with DCS world 1.5.
MOOSE is a **M**ission **O**bject **O**riented **S**cripting **E**nvironment, and is meant for mission designers and mission hosters. It allows to quickly setup complex missions using pre-scripted scenarios using the available classes within the framework.
You can find the source of MOOSE here on GITHUB. It is free for download:
https://github.com/FlightControl-Master/MOOSE/
# Goals
The goal of MOOSE is to allow mission designers to enhance their scripting with mission orchestration objects, which can be instantiated from defined classes within the framework. This will allow to write mission scripts with minimal code embedded. Of course, the richness of the framework will determine the richness of the misson scenarios. We can expect that MOOSE will evolve over time, as more missions will be designed within the framework.
# MOOSE LUA Classes
The following classes are currently embedded within MOOSE and can be included within your mission scripts:
* [BASE](Documentation/Base.html): The main class from which all MOOSE classes are derived from. The BASE class contains essential functions to support inheritance and MOOSE object execution tracing (logging within the DCS.log file in the saved games folder of the user).
* [DATABASE](Documentation/Database.html): Create sets of units (and groups) upon defined filter criteria. These sets can be used to iterate the DATABASE calling a defined function for each unit (or group).
* [SPAWN](Documentation/Spawn.html): Spawn new groups (and units) during mission execution.
* [ESCORT](Documentation/Escort.html): Makes groups consisting of helicopters, airplanes, ground troops or ships within a mission joining your flight. You can control these groups through the ratio menu during your flight. Available commands are around: Navigation, Position Hold, Reporting (Target Detection), Attacking, Assisted Attacks, ROE, Evasion, Mission Execution and more ...
# MOOSE Tutorials and Examples
You can download [test missions](https://github.com/FlightControl-Master/MOOSE/tree/master/Test%20Missions) to have examples and learn the syntax and usage of the MOOSE classes.
There are [Video Tutorials](https://www.youtube.com/channel/UCjrA9j5LQoWsG4SpS8i79Qg) on my YOUTUBE channel on which you can learn some coding aspects with mission execution demos, as well as some of the tooling and internal mechanisms within MOOSE.
# MOOSE Inclusion and Usage
MOOSE can be embedded within a Mission in two modes:
1. Dynamic loading (this is preferred when you are developing a mission):
* You need to install MOOSE in your DCS World installation folder: <drive>:\Program Files\Eagle Dynamics\DCS World\Scripts**\Moose**
* This directory needs to contain the lua files embedded in the Moose directory within the [MOOSE package](https://github.com/FlightControl-Mas...e/master/Moose)
* In order to load MOOSE dynamically in your mission, you need to execute a trigger containing a DO SCRIPT FILE of the [Moose_Load_Dynamic.lua](https://github.com/FlightControl-Master/MOOSE/blob/master/Loaders/Moose_Load_Dynamic.lua) file. This file is also included in the MOOSE package in the "Loaders" directory.
2. Embedded loading (once your mission is finsihed to be published):
* No MOOSE installation is required by those people flying or using your mission, as MOOSE is loaded as a whole embedded within the mission.
* In order to embed MOOSE within your mission, you need to execute a trigger containing a DO SCRIPT FILE of the [Moose_Load_Embedded.lua](https://github.com/FlightControl-Master/MOOSE/blob/master/Loaders/Moose_Load_Embedded.lua) file. This file is also included in the MOOSE package in the "Loaders" directory.
To orchestrate all this, there is a [MOOSE mission template](https://github.com/FlightControl-Master/MOOSE/blob/master/Loaders/MOOSE-Template.miz) created, that you can use to create your first mission.
In the triggers section, there is a flag (9999) that will decide how MOOSE will be loaded. When flag 9999 is set, MOOSE will be dynamically loaded. When flag 9999 is off, MOOSE will be loaded embedded. Note that when loaded embedded, **your mission must include the last Moose_Embedded.lua file**. So, ensure that the last file is included in the DO SCRIPT section when MOOSE got an update!