Jump to content

Dynamic Campaign Engine


MBot

Recommended Posts

Question about the routes -

Is ground masking/Line Of Sight being calculated into the path?

This will allow the ATO to create low altitude penetration routes which will add another dimension to the realism.

 

No, terrain masking is not taken into account. This primarily has a technical reason. Since the missions are created outside of DCS, DCE has no access to the topography of the map. Therefore it is not possible to make any Line of Sight calculations. While this is a pitty, it is also somehow a relief for me, since making smart threat avoidance using terrain masking would be brutal to code :)

 

Therfore DCE assumes the world is flat. Low level flight still has a merrit through, as since 1.5 DCS simulates curviture of the earth and DCE plans with reuduced threat radi at low altitude.

 

 

P.S.:

Giving this a second though, it might be possible to write a script that runs during the mission that lets aircraft fly between two given waypoints "like the water flows" instead of flying in a straight line. I did some experiments some years ago with tanks doing this. The principle could also be adapted to aircraft. Something that might be worth looking into in the future, but not now.

Link to comment
Share on other sites

This looks great! Thanks for the efforts and I can't wait to try it!

AMD Ryzen 9 7950X3D | ASUS Crosshair Hero X670E | 64GB G Skill Trident Z DDR5 6000 | Nvidia RTX 4090 FE| Samsung EVO Plus 6 TB M.2 PCIe SSDs | TM Hornet Stick/WinWing Hornet Throttle and MIP | VPC T-50 Stick Base | TM TPR Rudder Pedals W/Damper | Varjo Aero/Pimax Crystal

VFA-25 Fist of the Fleet

Carrier Strike Group One(CSG-1) Discord
 

Link to comment
Share on other sites

No, terrain masking is not taken into account. This primarily has a technical reason. Since the missions are created outside of DCS, DCE has no access to the topography of the map. Therefore it is not possible to make any Line of Sight calculations. While this is a pitty, it is also somehow a relief for me, since making smart threat avoidance using terrain masking would be brutal to code :)

 

Therfore DCE assumes the world is flat. Low level flight still has a merrit through, as since 1.5 DCS simulates curviture of the earth and DCE plans with reuduced threat radi at low altitude.

 

 

P.S.:

Giving this a second though, it might be possible to write a script that runs during the mission that lets aircraft fly between two given waypoints "like the water flows" instead of flying in a straight line. I did some experiments some years ago with tanks doing this. The principle could also be adapted to aircraft. Something that might be worth looking into in the future, but not now.

 

This is a great idea. In real life, the specific flight route is not added to the ATO. At most, only the general route requirements are covered from a planning perspective for tanker tracks, RTF profiles, deconfliction altitudes, etc. Route specifics are planned by the aviators doing the strike, and the strike lead in particular.

 

The "flowing river" algorithm for AI aircraft would be a great implementation of this philosophy.

Link to comment
Share on other sites

A F-15C fighter escort joining up with a F-15E flight from a different base to form a combined package:

 

attachment.php?attachmentid=128189&stc=1&d=1448322891

 

 

Here a question where I could use some input. Should fighter escorts follow the strike package over the target? Or should escorts go from the strike IP directly to the strike egress point?

Screen_151124_005336.thumb.jpg.d14c4ac43e1ddc7baa9cfefe6cf2053b.jpg


Edited by MBot
Link to comment
Share on other sites

Is there any way to make changes in the situation of the SAM/AAA or ground targets (those logistics convoys and so) during the campaign

 

Yes this is planned, though I am not quite sure yet how to write it. I envision some sort of adjustable event system, where once certain campaign conditions are met, the OOB, targetlist etc. can be modified. So let's say for example 50% of all targets are destroyed, then the priority of these targets is lowered and a set of new targets is introduced. The key will be not to hardcode anything, but to make a flexible system where campaign designers can easily define a large variety of triggers and actions.

Link to comment
Share on other sites

Yes this is planned, though I am not quite sure yet how to write it. I envision some sort of adjustable event system, where once certain campaign conditions are met, the OOB, targetlist etc. can be modified. So let's say for example 50% of all targets are destroyed, then the priority of these targets is lowered and a set of new targets is introduced. The key will be not to hardcode anything, but to make a flexible system where campaign designers can easily define a large variety of triggers and actions.

 

 

Thanks!

 

Also, will those threats move from one place to another??

Link to comment
Share on other sites

Here a question where I could use some input. Should fighter escorts follow the strike package over the target? Or should escorts go from the strike IP directly to the strike egress point?

I would say that all things equal the escort fighters should perform TARCAP along the threat axis while the strikers are inbound to/outbound from the target area. With a quick ingress/egress that may very well be skipping the target waypoint and going from IP to egress and guarding that axis.

 

Of course, they would be getting updates from AWACS and flying dynamically to best protect the package. I would think that assigning them the same waypoints with "escort" tasking should be enough for the AI to figure it out.

 

What the escorts are not likely to be doing is flying directly over the target maintaining outrigger formation with the strikers.


Edited by Home Fries
Link to comment
Share on other sites

Here a question where I could use some input. Should fighter escorts follow the strike package over the target? Or should escorts go from the strike IP directly to the strike egress point?

 

My two cents is that it would make sense to detach from strike element around IP and establish CAP between IP and egress. Then after strike is done, rejoin the element. I'm not sure what would be the exit condition in this case though. Maybe strike element reaching "egress" waypoint?

AMD R7 5800X3D | Aorus B550 Pro | 32GB DDR4-3600 | RTX 4080 | VKB MGC Pro Gunfighter Mk III + Thustmaster TWCS + VKB T-Rudder Mk4 | HP Reverb G2

FC3 | A-10C II | Ка-50 | P-51 | UH-1 | Ми-8 | F-86F | МиГ-21 | FW-190 | МиГ-15 | Л-39 | Bf 109 | M-2000C | F-5 | Spitfire | AJS-37 | AV-8B | F/A-18C | Як-52 | F-14 | F-16 | Ми-24 | AH-64

NTTR | Normandy | Gulf | Syria | Supercarrier |

Link to comment
Share on other sites

No, terrain masking is not taken into account. This primarily has a technical reason. Since the missions are created outside of DCS, DCE has no access to the topography of the map. Therefore it is not possible to make any Line of Sight calculations. While this is a pitty, it is also somehow a relief for me, since making smart threat avoidance using terrain masking would be brutal to code :)

 

Therfore DCE assumes the world is flat. Low level flight still has a merrit through, as since 1.5 DCS simulates curviture of the earth and DCE plans with reuduced threat radi at low altitude.

 

 

P.S.:

Giving this a second though, it might be possible to write a script that runs during the mission that lets aircraft fly between two given waypoints "like the water flows" instead of flying in a straight line. I did some experiments some years ago with tanks doing this. The principle could also be adapted to aircraft. Something that might be worth looking into in the future, but not now.

 

The script solution sounds good, it would create a lot more dynamics in a running campaign.

 

About optimization, are you working to optimize this as much as possible?

Running an outside engine would probably have some hits on performance, especially on heavy net code such as DCS uses.

It would be probably smart to work on running it on a different core than DCS runs.

I'm asking because I'm planning to try and use it with massive multiplayer events, last time we got to 60 players stable with 1.2 and Blue Flag campaign that had custom scripts, main lag issues was when big tables were being iterated.

Link to comment
Share on other sites

About optimization, are you working to optimize this as much as possible?

Running an outside engine would probably have some hits on performance, especially on heavy net code such as DCS uses.

It would be probably smart to work on running it on a different core than DCS runs.

I'm asking because I'm planning to try and use it with massive multiplayer events, last time we got to 60 players stable with 1.2 and Blue Flag campaign that had custom scripts, main lag issues was when big tables were being iterated.

 

The preformance hit should be minimal, since there are almost no scripts running during the mission. Right now perhaps 20 lines of code, tracking scenery object damage and tracking the mission end event. A thing or two might still be added, but it will be minimal.

 

99.9% of DCE is running between the missions. Stats tracking is done by evaluating the log file after the mission was ended. Only scenery object damage needs to be tracked during the mission in real time, because they are not tracked on the log file.

 

Since DCE is working between missions, I can use a brute froce approach to solve pathfinding problems. So even if the CPU is crunching numbers for 5 seconds to generate the next mission, I don't care much :)

Link to comment
Share on other sites

Thanks!

 

Also, will those threats move from one place to another??

 

Eventually yes, but probably not for the initial release. Hardcoding this for a particular situation is not difficult (for example randomize location for SAM site A). But it needs to be in a form that allows the campaign designer to easily configure any number of ground units.

 

Eventually a module that automatically moves around SAM systems in a sensible way might be cool, but this is for the future.

Link to comment
Share on other sites

The preformance hit should be minimal, since there are almost no scripts running during the mission. Right now perhaps 20 lines of code, tracking scenery object damage and tracking the mission end event. A thing or two might still be added, but it will be minimal.

 

99.9% of DCE is running between the missions. Stats tracking is done by evaluating the log file after the mission was ended. Only scenery object damage needs to be tracked during the mission in real time, because they are not tracked on the log file.

 

Since DCE is working between missions, I can use a brute froce approach to solve pathfinding problems. So even if the CPU is crunching numbers for 5 seconds to generate the next mission, I don't care much :)

 

:thumbup:

Link to comment
Share on other sites

Adding some thoughts from other sims.

 

In Falcon you would have controls for many parameters for the on going dynamic campaign.

 

For example, the priorities -

 

Target Type:

cam.jpg

 

Mission Type:

cam2.jpg

 

PAKS:

cam3.jpg

 

 

Check the Target Type, this is a setting you can do to change the priorities of targets.

Now, I'm not sure how the ATO plans the missions or prioritizes them, but the flights that are being generated should be tipped in some way by these kind of parameters.

In Falcon one of the problems in the dynamic campaign IMO was the lack of ability to control the ground posture at will, it would be generated automatically by the engine according to flight success, units moral, supplies and more. So, whoever figured out the system of it, would eventually win a campaign, either PVP or Coop. In your DCE there will be no ground battles or advances (best IMO with the current DCS net code) but how will targets be prioritized or divided? Will there be a list of SAM/Logistics/EWR/Naval/Infrastructure etc.. that will be selected and prioritized by the current conditions of each side?

 

 

About mission type, same thing, after prioritizing the targets according to parameters and necessity of your side, the mission types should be generated also by a set of parameters and necessities.

For example, if one side is suffering great losses on the ground, maybe on next generated mission, more CAP operations would take place at those areas etc...

 

And the last PAKs screen shows priority distribution in the known AO, you can decide priority and probably volume of flights.

 

 

 

This is just the tip of the things that needs to be taken under consideration when creating an automated dynamic campaign engine, otherwise the flights and continuity of the campaign could be unreasonable (talking large scale).

Hopefully it is something you can implement or push forward for future releases.

Link to comment
Share on other sites

MBot, for DAWS Save Mission I'm looking to a way to set a scenery object as dead for months. How did you solved this?

ChromiumDis.png

Author of DSMC, mod to enable scenario persistency and save updated miz file

Stable version & site: https://dsmcfordcs.wordpress.com/

Openbeta: https://github.com/Chromium18/DSMC

 

The thing is, helicopters are different from planes. An airplane by it's nature wants to fly, and if not interfered with too strongly by unusual events or by a deliberately incompetent pilot, it will fly. A helicopter does not want to fly. It is maintained in the air by a variety of forces in opposition to each other, and if there is any disturbance in this delicate balance the helicopter stops flying; immediately and disastrously.

Link to comment
Share on other sites

The same mine. I Hope for a better solution in the future

ChromiumDis.png

Author of DSMC, mod to enable scenario persistency and save updated miz file

Stable version & site: https://dsmcfordcs.wordpress.com/

Openbeta: https://github.com/Chromium18/DSMC

 

The thing is, helicopters are different from planes. An airplane by it's nature wants to fly, and if not interfered with too strongly by unusual events or by a deliberately incompetent pilot, it will fly. A helicopter does not want to fly. It is maintained in the air by a variety of forces in opposition to each other, and if there is any disturbance in this delicate balance the helicopter stops flying; immediately and disastrously.

Link to comment
Share on other sites

Today I completed the logic whether fighter escorts for packages are added to the ATO. So the question to solve is, when does a strike package has a need for fighter escort? Here is how it works:

 

First we check whether the enemy has any available defensive fighters capable of CAP or intercept missions and whether they can reach any leg of the planned package route (depends on enemy fighter homebase and range).

 

If the enemy fighter unit can do CAP missions, we have to assume these are present and the package requires fighter escort. But if the enemy fighter is not look down/shoot down capable (for example MiG-21), then escorts are only requested if the package route passes the danger area at high altitude. Low altitude route legs passing possible areas of CAP without LD/SD do not require escort.

 

If the enemy fighters can do intercept missions, they are only a threat if the package is detected by early warning radar:

-If the enemy has AWACS aircraft available and capable to cover the package route, then enemy interceptors capable to reach the package route will trigger a request for fighter escort.

-If the enemy has EWR stations capable to cover the package route, then enemy interceptors capable to reach the package route will trigger a request for escort.

 

Now if the enemy has CAP/interceptors available, packages will try to route round detection areas of EWR stations (AWACS will be ignored, since this is almost impossible to avoid):

-If the package is on a high-high mission, it will try to find a route around an EWR station (as long as the route does not become excessively long).

-If the package is on a high-low mission and an EWR station is in the way during the high leg, the package will first descend to low altitude.

-If the low route still passes through the reduced EWR detection area at low altitude, the package will route around.

 

If the enemy has no CAP/interceptors, then EWR stations are simply ignored.

 

 

Now all this is only to define the requirement for escorts. Whether any are available is another questions. If an escort need cannot be satisfied, the threat level for a mission is increased and a safer mission might be added to the ATO instead. Writing an ATO generator can make your head spin :)


Edited by MBot
Link to comment
Share on other sites

MBot, great work! Will the ATO generate tasks for attack helicopters and support helicopters? Also with the gazelle on the horizon, will it be able to generate recce tasks?

 

Jacks

System Specs: i7 8700k @ 5.0GHz (not delidded), ASRock Extreme4 Z370 MOBO, EVGA GTX 1080 SC 8GB, 32GB Corsair Vengeance LPX 3200MHz DDR4 RAM, Samsung Evo 240GB SSD, Samsung Evo 500GB SSD, 1TB HDD, Noctura NH-D15S Heat Sink, Acer VE278H 27" 1080p Monitor, Ocukus Rift CV1.

 

Controllers: TrackIR 5, Thrustmaster HOTAS X, Saitek Throttle Quadrant (with DIY removable collective mod), Saitek Pro Flight Rudder Pedals.

 

Just trying to keep my number of takeoffs and landings equal!

Link to comment
Share on other sites

  • Recently Browsing   0 members

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