Revised documentation for AI_BALANCER
-- Added new SPAWN test missions. -- Added new AI_BALANCER test missions. -- Revised the MOOSE launch page.
@@ -71,24 +71,31 @@
|
||||
<p>SP:N MP:Y AI:Y HU:N TYP:A -- This module contains the AI_BALANCER class.</p>
|
||||
|
||||
|
||||
|
||||
<p>AI Balancing will replace in multi player missions non-occupied human slots with AI groups, in order to provide an
|
||||
engaging simulation environment, even when there are hardly any players in the mission.</p>
|
||||
<p>AI Balancing will replace in multi player missions
|
||||
non-occupied human slots with AI groups, in order to provide an engaging simulation environment,
|
||||
even when there are hardly any players in the mission.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_Balancer\Dia1.JPG" alt="Banner Image"/></p>
|
||||
|
||||
<p>Examples can be found in the test missions.</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1>1) <a href="AI.AI_Balancer.html##(AI_BALANCER)">AI.AI<em>Balancer#AI</em>BALANCER</a> class, extends <a href="Core.Fsm.html##(FSM_SET)">Core.Fsm#FSM_SET</a></h1>
|
||||
|
||||
<p>The <a href="AI.AI_Balancer.html##(AI_BALANCER)">AI.AI<em>Balancer#AI</em>BALANCER</a> class monitors and manages as many AI GROUPS as there are
|
||||
CLIENTS in a SET<em>CLIENT collection not occupied by human players.
|
||||
In other words, use AI</em>BALANCER to simulate human behaviour by spawning in replacement AI.</p>
|
||||
<p>The <a href="AI.AI_Balancer.html##(AI_BALANCER)">AI.AI<em>Balancer#AI</em>BALANCER</a> class monitors and manages as many replacement AI groups as there are
|
||||
CLIENTS in a SET<em>CLIENT collection, which are not occupied by human players.
|
||||
In other words, use AI</em>BALANCER to simulate human behaviour by spawning in replacement AI in multi player missions.</p>
|
||||
|
||||
<p>The AI_BALANCER class manages internally a collection of AI management objects, which govern the behaviour
|
||||
of the spawned AI <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> manages the functionality to control the Finite State Machine (FSM)
|
||||
and calls for each event the state transition methods providing the internal <a href="Core.Fsm.html##(FSM_SET).Set">Core.Fsm#FSM_SET.Set</a> object containing the
|
||||
AI and additional event parameters provided during the event.</p>
|
||||
<p>The parent class <a href="Core.Fsm.html##(FSM_SET)">Core.Fsm#FSM_SET</a> manages the functionality to control the Finite State Machine (FSM).
|
||||
The mission designer can tailor the behaviour of the AI_BALANCER, by defining event and state transition methods.
|
||||
An explanation about state and event transition methods can be found in the <a href="FSM.html">FSM</a> module documentation.</p>
|
||||
|
||||
<p>The mission designer can tailor the AI_BALANCER behaviour, by implementing a state or event handling method for the following:</p>
|
||||
|
||||
<ul>
|
||||
<li>**<a href="##(AI_BALANCER).OnAfterSpawned">AI_BALANCER.OnAfterSpawned</a>**( AISet, From, Event, To, AIGroup ): Define to add extra logic when an AI is spawned.</li>
|
||||
</ul>
|
||||
|
||||
<h2>1.1) AI_BALANCER construction</h2>
|
||||
|
||||
@@ -96,11 +103,7 @@ AI and additional event parameters provided during the event.</p>
|
||||
|
||||
<h2>1.2) AI_BALANCER is a FSM</h2>
|
||||
|
||||
<p>The AI_BALANCER is a state machine: it manages the different events and states of the <a href="Core.Fsm.html##(FSM_SET).Set">Core.Fsm#FSM_SET.Set</a> it is governing.
|
||||
The AI_BALANCER has a default flow to manage the set.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_Balancer\Dia2.JPG" alt="Process"/></p>
|
||||
|
||||
<p><img src="..\Presentations\AI_Balancer\Dia13.JPG" alt="Process"/></p>
|
||||
|
||||
<h3>1.2.1) AI_BALANCER States</h3>
|
||||
|
||||
@@ -137,8 +140,8 @@ When a human player joins a slot, you can configure to let the AI return to:</p>
|
||||
<li><a href="##(AI_BALANCER).ReturnToNearestAirbases">AI_BALANCER.ReturnToNearestAirbases</a>: Returns the AI to the <strong>nearest friendly</strong> <a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a>.</li>
|
||||
</ul>
|
||||
|
||||
<p>Note that when AI returns to an airbase, it will trigger the <strong>Return</strong> event and will return,
|
||||
otherwise when the AI is destroyed, the <strong>Destroy</strong> event will be triggered.</p>
|
||||
<p>Note that when AI returns to an airbase, the AI<em>BALANCER will trigger the <strong>Return</strong> event and the AI will return,
|
||||
otherwise the AI</em>BALANCER will trigger a <strong>Destroy</strong> event, and the AI will be destroyed.</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
@@ -2411,6 +2411,7 @@ The UNIT carrying the package.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(AI_CARGO_UNIT).CargoCarrier" >
|
||||
<strong>AI_CARGO_UNIT.CargoCarrier</strong>
|
||||
</a>
|
||||
|
||||
@@ -1486,7 +1486,7 @@ A string defining the start state.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#string</em>
|
||||
<em></em>
|
||||
<a id="#(FSM)._StartState" >
|
||||
<strong>FSM._StartState</strong>
|
||||
</a>
|
||||
@@ -1780,6 +1780,7 @@ A string defining the start state.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(FSM).current" >
|
||||
<strong>FSM.current</strong>
|
||||
</a>
|
||||
|
||||
@@ -1692,9 +1692,6 @@ The group that was spawned. You can use this group for further actions.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p> Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
|
||||
BIN
docs/Presentations/AI_BALANCER/Dia10.JPG
Normal file
|
After Width: | Height: | Size: 199 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia11.JPG
Normal file
|
After Width: | Height: | Size: 214 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia12.JPG
Normal file
|
After Width: | Height: | Size: 207 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia13.JPG
Normal file
|
After Width: | Height: | Size: 190 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia14.JPG
Normal file
|
After Width: | Height: | Size: 207 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia15.JPG
Normal file
|
After Width: | Height: | Size: 207 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia16.JPG
Normal file
|
After Width: | Height: | Size: 207 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia17.JPG
Normal file
|
After Width: | Height: | Size: 212 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia18.JPG
Normal file
|
After Width: | Height: | Size: 209 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia3.JPG
Normal file
|
After Width: | Height: | Size: 197 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia4.JPG
Normal file
|
After Width: | Height: | Size: 155 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia5.JPG
Normal file
|
After Width: | Height: | Size: 157 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia6.JPG
Normal file
|
After Width: | Height: | Size: 164 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia7.JPG
Normal file
|
After Width: | Height: | Size: 155 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia8.JPG
Normal file
|
After Width: | Height: | Size: 183 KiB |
BIN
docs/Presentations/AI_BALANCER/Dia9.JPG
Normal file
|
After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 201 KiB |
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 186 KiB |
BIN
docs/Presentations/MOOSE/Dia1.JPG
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
docs/Presentations/MOOSE/Dia2.JPG
Normal file
|
After Width: | Height: | Size: 248 KiB |
BIN
docs/Presentations/SPAWN.pptx
Normal file
BIN
docs/Presentations/SPAWN/Dia1.JPG
Normal file
|
After Width: | Height: | Size: 259 KiB |
BIN
docs/Presentations/SPAWN/Dia2.JPG
Normal file
|
After Width: | Height: | Size: 181 KiB |
BIN
docs/Presentations/SPAWN/Dia3.JPG
Normal file
|
After Width: | Height: | Size: 206 KiB |
BIN
docs/Presentations/SPAWN/Dia4.JPG
Normal file
|
After Width: | Height: | Size: 258 KiB |
BIN
docs/Presentations/SPAWN/Dia5.JPG
Normal file
|
After Width: | Height: | Size: 257 KiB |
BIN
docs/Presentations/SPAWN/Dia6.JPG
Normal file
|
After Width: | Height: | Size: 258 KiB |
BIN
docs/Presentations/SPAWN/Dia7.JPG
Normal file
|
After Width: | Height: | Size: 261 KiB |
BIN
docs/Presentations/SPAWN/Dia8.JPG
Normal file
|
After Width: | Height: | Size: 258 KiB |
BIN
docs/Presentations/SPAWN/Dia9.JPG
Normal file
|
After Width: | Height: | Size: 258 KiB |
@@ -5,22 +5,39 @@ MOOSE is a **M**ission **O**bject **O**riented **S**cripting **E**nvironment, an
|
||||
It allows to quickly setup complex missions using pre-scripted scenarios using the available classes within the MOOSE Framework.
|
||||
MOOSE is designed to work with DCS world 1.5. and 2.0.
|
||||
|
||||
You can find the source of MOOSE here on GITHUB. It is free for download:
|
||||
https://github.com/FlightControl-Master/MOOSE/
|
||||
|
||||
MOOSE has a broadcast channel on youtube. Various videos explain how to use the MOOSE classes in your missions.
|
||||
These videos are grouped into playlists, which explain specific MOOSE capabilities,
|
||||
and gradually build up the "understanding" and "what is possible" to do with the MOOSE framework.
|
||||
I really, really encourage all to watch the explanation videos.
|
||||
|
||||
Note: MOOSE is complementary to [MIST](https://github.com/mrSkortch/MissionScriptingTools/releases), so if you use MIST in parallel with MOOSE objects, this should work.
|
||||

|
||||
|
||||
# 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.
|
||||
|
||||
## GitHub Repository
|
||||
|
||||
You can find the source of MOOSE here on GITHUB. It is free for download:
|
||||
https://github.com/FlightControl-Master/MOOSE/
|
||||
|
||||
## YouTube Broadcast Channel
|
||||
|
||||
MOOSE has a broadcast channel on youtube. Various videos explain how to use the MOOSE classes in your missions.
|
||||
These videos are grouped into playlists, which explain specific MOOSE capabilities,
|
||||
and gradually build up the "understanding" and "what is possible" to do with the MOOSE framework.
|
||||
I really, really encourage all to watch the explanation videos.
|
||||
Find the YouTube broadcast channel here:
|
||||
|
||||
## Test Missions
|
||||
|
||||
The framework comes with a couple of test missions, that you can try out and copy/paste code
|
||||
templates to build your own missions, while still learning the MOOSE framework.
|
||||
These exact test missions are demonstrated at the demo videos in the YouTube channel.
|
||||
Find these test missions here at GITHUB:
|
||||
https://github.com/FlightControl-Master/MOOSE/tree/master/Moose%20Test%20Missions
|
||||
|
||||
Note: MOOSE is complementary to [MIST](https://github.com/mrSkortch/MissionScriptingTools/releases), so if you use MIST in parallel with MOOSE objects, this should work.
|
||||
|
||||
# MOOSE Directory Structure
|
||||
|
||||
As you can see at the GitHub site, the MOOSE framework is devided into a couple of directories:
|
||||
|
||||
* Moose Development: Contains the collection of lua files that define the MOOSE classes. You can use this directory to build the dynamic luadoc documentation intellisense in your eclipse development environment.
|
||||
* Moose Mission Setup: Contains the Moose.lua file to be included in your scripts when using MOOSE classes (see below the point Mission Design with Moose).
|
||||
* Moose Test Missions: Contains a directory structure with Moose Test Missions and examples. In each directory, you will find a miz file and a lua file containing the main mission script.
|
||||
@@ -43,11 +60,12 @@ IMPORTANT NOTE: When a new version of MOOSE is released, you'll have to UPDATE t
|
||||
This can be a tedious task, and for this purpose, a tool has been developed that will update the Moose.lua files automatically within your missions.
|
||||
Refer to the tool at [Moose Mission Setup\Moose Mission Update](https://github.com/FlightControl-Master/MOOSE/tree/master/Moose%20Mission%20Setup/Moose%20Mission%20Update) directory for further information included in the [READ.ME]() file.
|
||||
|
||||
|
||||
# MOOSE Classes
|
||||
|
||||
The following classes are currently embedded within MOOSE and can be included within your mission scripts:
|
||||
|
||||

|
||||
|
||||
## MOOSE Core Classes
|
||||
|
||||
These classes define the base building blocks of the MOOSE framework. These classes are heavily used within the MOOSE framework.
|
||||
|
||||