Jump to content

MOOSE July 2020 state of play


Pikey

Recommended Posts

There's LOTS of new stuff coming to MOOSE and these will be considered as the start of pivotal changes in direction. We want to introduce these earlier rather than later so a smoother transition can take place. We also want to cover a quick summary of where MOOSE is, what the progress is this year and the future aims.

 

January to June 2020 update

 

Jimmy Greaves once said, "It's a game of two halves" and this applies to how busy Moose's Discord has been in the first part of 2020. The first half pre DCS 2.5.6 and the second half being .... well, the recovery after 2.5.6.

 

We are now over 1000 Discord members. Anecdotally I'd say it was quiet right now. Moose discord is also quiet, there are no real busy channels that stand out.

 

For achievements in the last 6 months, the 'outstanding contributions to mankind' award, goes to FunkyFranky (again), but not in the way he thinks.! The big green button "Merge" was pushed and DEV went to MASTER branch on 19th May after a whopping 2 years of a stale master branch. https://forums.eagle.ru/showthread.php?t=273731

 

All four wheels remained attached to the vehicle and it kept moving forwards. Great Success!

 

We created a new document - "The Moose User Guide" which was the sum effort of Habu, Wingthor, Delta99 and I. This was something we started last year and has been slow to get out. A new repository has been made for it here: https://github.com/FlightControl-Master/MOOSE_GUIDES. The document aims to cover all the popular usual questions we get, and tackle learning to script as well as not learning anything but using moose in a very basic sense. This was something sorely missed by many confused people. The guide covers beginner, intermediate and advanced and is still regarded as WIP, but most of it is done. It's 70 pages long. Apparently scripting is complex. But the beginner chapter is only three or four pages.

 

So lets look at 'Now'

 

MASTER BRANCH - 5.42 MB (5,687,520 bytes)

DEV BRANCH - 5.90 MB (6,196,653 bytes)

 

Holy smokes batman! You said you merged Dev into live on 19th May????

 

So where has half a MB of text come from in only 2 months?

 

Time to come clean Franky! It's time to talk about the next generation and whats going on.

 

Problem: FlightControl left a huge legacy. Most of the people using MOOSE, especially in server based scripting, need MOOSE to keep working. But he is no longer actively working on anything. We have to assume this will remain the same. The code he left, is very complex. The CORE should remain safe but some of the functional stuff like Dispatchers are really difficult to work out.

 

Solution: Leave his work intact and create fresh alternatives to his classes that are easier to support. It may not surprise anyone that writing complex stuff from scratch is often easier than understanding someone elses complex stuff.

 

MOOSE 3.0

There are a number of classes already in DEV branch, which people don't yet understand, but will change how they approach moose. Even down to spawning things. It is intended that some of the existing AI is replaced with easier to manage code.

A little bit more detail then right into the FAQ's and legal statements before I pack my bags and book flights to Argentina.

Detect

The new INTEL class will stand up, along side the existing DETECTION class. I've looked at one example and it functions very similar to DETECTION so far. Detection, as a class, is a bit interesting. If you dont understand the inner workings, how do you ever feel confident of the results it spits out? There were some "peculiar" things added by Sven, so Frank prefered his own approach and it makes sense. DETECTION will continue to work, become deprecated and INTEL will slip into common usage. (we hope)

 

Spawning via FLIGHTGROUP

This is different and will need some re-thinking to get used to. SPAWN isn't being replaced, however a method to fulfill a spawn of a group at the same time as give a GROUP a DCS Task/Mission is now being rolled into one Method. Previously, if you want to control a tank, you spawn it, hook to it arriving in the game, then send it some complex tasks that may or may not have worked and left you confused. The Air component of the smallest groups is called FLIGHTGROUP and can activate LateActivated groups and get them to go places, without even a route specified.

 

 

Orders are the new Tasks

 

The 'Task' part is probably the most important part of these new changes. This class is called AUFTRAG, the German for 'orders', or 'assignment'. The name has caused a bit of a stir because its not catchy or cool, but being different it will stand out.

 

Here is what AUFTRAG does:

DCS Tasks, like CAP, CAS, Escort, Tanker, AWACS, Bombing, were done via creating TaskCombo arrays, and issuing a SetTask(TaskCombo, 1). Even in Moose this could take quite a few lines. As an example to create, spawn, send a bombing Task to a group, is now very straight forward:

  local Target=GROUP:FindByName("Target Group")
 local bomber=FLIGHTGROUP:New("B-52 Group")
 local mission=AUFTRAG:NewBOMBING(Target, 25000)
 bomber:AddMission(mission)

On execution, the late activation group "B-52 Group" enters the game, flies to the target, drops his bombs and comes back. He didnt need any waypoints, which means the location of the target didnt matter. When we added the mission we added it directly to "bomber", which is the FLIGHTGROUP. More detail can be added, but this is the simplest format. An AUFTRAG can also be given to the heirarchy above the FLIGHTGROUP which can be the SQUADRON, AIRWING, WINGCOMMANDER or the CHIEFOFSTAFF. Woah... funny names in caps and what does that have to do with scripting and why do I need one of any of those...!!

 

(will come to that)

 

Dispatching

An important part of automation are Moose dispatchers. AI that reacts. This will change in MOOSE 3.0. Whilst it is still being built, the creating of AI to go off and do something automatically is very different from say the AI_A2A_Dispatcher. It is a combination of FSM events and creating Auftrag's and giving them to the right part of the hierarchy. Detect a group, create an auftrag. Recieve an event, create an Auftrag. Need it tightly defined, give the Auftrag to a FLIGHTGROUP. Need something dealt with but let the AI decide how - then drop the Auftrag on the SQUADRON, or higher.

Any number of AUFTRAG's can be created and assigned to groups and they will be managed, ordered, checked for resources and dispatched. They can be dispatched during the mission and dispatched higher up the command chain. Which we will come to.

 

So there is a hierarchy that controls the flow of orders from the top. This fulfills some requirements and automation but is not entirely needed unless you want this automation. The type of things we mean are - building multiple squadrons of AI that can be used to fulfill an Auftrag. If you provide the order high enough, the asset that fulfills the order will be picked by the AI. Multiple squadrons means counting plane assets. Squadrons have warehouses. So we introduce warehouses back to DCS scripting but make it entirely transparent. One can also have multiple squadrons and multiple airwings. An AUFTRAG can be dropped into the top, or the bottom. Of course there are payloads and weapons, so with squadrons you can develop loadouts that can be prioritised and eventually run out. And all this is mirrored eventually for Army and Navy, linked at the top by a class in charge that handles detection.

 

See where this is going yet?

 

MOOSE 3.0 aims to replace air to ground and air to air dispatchers by creating an infrastructure and AI that can plot entire persistent campaigns. We have quite some work to do on the AI intelligence gathering front. The recon classes that feed into INTEL are not done yet. Army and Navy still have some problems we need to overcome, however the first 16 demo missions run without hitches and if you look for them on Discord you can try this out as an early adopter.

 

FAQ:

When will it be finished?

Hahaha. It's mostly done though.

 

Can I use it now?

Yes!

 

What can I do with it?

You can now use DCS tasks like a boss. Auftrag handles all the weird DCS black box magic. You can setup entire squadrons and Air wings, send Auftrags to air wings, see them executed all automatically, watch assets arrive from squadrons etc. INTEL PoC is working like DETECTION. We have a GCI mission, a full 2 stage campaign all ready to be demoed.

 

Where can i find out more info?

Discord #moose-development channel. People have already begun playing with it. Next week I will show the GCI replacement using Auftrag. Use Moose.lua from the development branch for the new classes.

 

How do I get help?

If it's not in the documentation already provided, you might just be on your own in the bleeding edge of scripting, because this is new and community support doesnt exist until the community is up to speed using it. So it would be good to get some adventurous souls to start out now.

 

What tasks are currently working?

AntiShip, AWACS, BAI, Bomb Target, Bomb runway, Carpet Bombing, CAS, CAP, Escort, FAC(A), Intercept, Rescue Helo, SEAD, Bomb on Coordinate, Tanker, Troop transport. There is a single mission with all these demoed you can pick from a list to see. (rather than 16 missions). Soon we will add GCI, CAP, free flow campaigns demoisntrating the power of easy to read basic scripts for DCS.

 

Why release it half done now?

Firsty, this is not a release. We are literally being transparent and explaining why there are a bunch of new classes in the DEV branch. It saves questions piecemeal. And the other thing is that Software tends to be organic in nature and grow and refine itself. This is the same as previous MOOSE developments.

 

I'll update the MOOSE 3.0 developments on these new classes in the Moose development channel and provide basic updates here. I'd like to see folks checking th epinned messages on Discord and trying out the Demo. This is new stuff, folks will be using it and you would do well to keep up to speed rather than fall behind!


Edited by Pikey
typo1

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Simply amazing what you guys have done over the last number of months. Though I’m usually bugging you in the Airboss channel, our group uses so many different sections of MOOSE and I’m excited to stumble my way through these new tasks.

 

Thank you gentlemen!!

Link to comment
Share on other sites

so i can change with "Auftrag" the active AI Group Task from CAP to Bombing, while the mission is running?

Yes! There is an example of the multiple Auftrag's in the demo missions (it's the B-52 bombing) They have two. An AUFTRAG is currently set to the next waypoint right now. You can add waypoints after that, you can set the time the FLIGHTGROUP executes the task and this is then managing the activation of the late activated group. There's lots of other fine tuning you can add.

 

  local Target1=STATIC:FindByName("Red TV Tower")
 local Target2=GROUP:FindByName("Red Target X")
 local bomber=FLIGHTGROUP:New("B-52 Air Group")
 local mission1=AUFTRAG:NewBOMBING(Target1, 25000)
 mission1:SetWeaponExpend(AI.Task.WeaponExpend.HALF)
 mission1:SetPriority(20)
 local mission2=AUFTRAG:NewBOMBING(Target2, 30000)
 -- Interestingly, setting expend to ALL does NOT work. Looks like as half of the bombs is already gone in mission1, the task cannot be executed any more.
 mission2:SetWeaponExpend(AI.Task.WeaponExpend.HALF)
 mission2:SetPriority(10)
 bomber:AddMission(mission1)
 bomber:AddMission(mission2)

function b52:OnAfterPassingWaypoint(From, Event, To, n, N)

--do something at a waypoint

end

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

One step closer to dynamic campaign. :)

The tools are already there and have been, the hurdles are mainly for your average user to do this themself.

 

One of the first things I said to FunkyFranky was: hey there is an error if this group doesnt exist and you sent an order to kill it.

 

Because that will be what the code sees after a restart when it doesnt know. Already thinking ahead on that point, and also designing INTEL and reconnaisance so that they can build some target lists. I dont know how deep we can go, but you can give two sides a scripted list of targets and missions like a typical ATO and release them to execute it, with retries, and that already works. The warehouse class already has capability to write to disk. I've already written unit saving tools. The parts are there, its just not so easy for the average person to execute on.

 

I think a nice design would be for the user to place all their pieces, on both sides, create the orbat, create a list of targets and then stand back and let the computer send out flights to execute. Shouldnt be too hard to do now. But lots of work on how the tempo of flights could be. A typical computer would want to spawn everything at once.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Wow. This sounds amazing.

Shagrat

 

- Flying Sims since 1984 -:pilotfly:

Win 10 | i5 10600K@4.1GHz | 64GB | GeForce RTX 3090 - Asus VG34VQL1B  | TrackIR5 | Simshaker & Jetseat | VPForce Rhino Base & VIRPIL T50 CM2 Stick on 200mm curved extension | VIRPIL T50 CM2 Throttle | VPC Rotor TCS Plus/Apache64 Grip | MFG Crosswind Rudder Pedals | WW Top Gun MIP | a hand made AHCP | 2x Elgato StreamDeck (Buttons galore)

Link to comment
Share on other sites

AWesome work Guys, Moose comes of age.. I look forward to coding missions with it.

Targs,

 

 

 

GTX 1080ti, Asus Hero XI, Intel 9900KF @4.2MHz, 32g DDR4@3200Mhz, 4x 1Tb SSD 1x 400g m.2mvme(boot), 28" Samsung 4k, Saitek X-56 Throttle/Warthog Stick and Saitek Pro Flight Pedals.

 

 

Moduls

 

 

All of the NATO jets, and all the choppers..

DEDi MP [62AW] The Blackbirds Brisbane

 

 

Link to comment
Share on other sites

Moose Discord has now added channels for the new classes

ops-flightgroup

ops-auftrag

ops-navygroup

ops-airwing

 

There are 17 demo missions stickied in these to help you see what these new things do.

 

Extensive logging and messaging is enabled, still, as they are WIP but the functionality is good for public usage.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...