Difference between revisions of "Military Logistics"

From ALiVE Wiki
Jump to: navigation, search
(Dev Notes)
 
(28 intermediate revisions by 3 users not shown)
Line 8: Line 8:
 
|-
 
|-
 
|{{Module_OPCOM}}
 
|{{Module_OPCOM}}
|{{Synced}}
+
|{{Yes}}
 
|-
 
|-
 
|}
 
|}
  
 +
=How It Works=
 +
The Battlefield Logistics System is responsible for maintaining operational effectiveness of all units in the Theatre of Operations, delivering resupplies and Battle Casualty Replacements to the front line.  BCRs require a suitable objective held by friendly forces where they will muster before moving to join front line units.  The AI Commander requests BCRs when Combat Effectiveness of ''existing units'' falls below acceptable levels.  The Logistics Commander (LOGCOM) assesses the tactical situation and determines the best location to bring in BCRs and then dispatches a convoy with the required troops and vehicles.  Replacements may come in by Air or Land depending on the location and availability of landing sites and the type of replacements requested.  Large airfields have a higher capacity to deliver logistics than small patrol bases.
  
{{note}}Module is part of 0.7 Release
 
  
=How It Works=
+
''Usage'': Place a Military Logistics module and Synch (F5) it to an OPCOM module to enable it to request reinforcements and suppliesOnly sync one Log module to each OPCOM.
The Battlefield Logistics System is responsible for maintaining operational effectiveness of all units in the Theatre of Operations, delivering resupplies and Battle Casualty Replacements to the front line. BCRs require a suitable objective held by friendly forces where they will muster before moving to join front line units.  OPCOM requests BCRs when Combat Effectiveness falls below acceptable levels.  The Logistics Commander (LOGCOM) assesses the tactical situation and determines the best location to bring in BCRs and then dispatches a convoy with the required troops and vehiclesReplacements may come in by Air or Land depending on the location and availability of landing sites and the type of replacements requested.  Large airfields have a higher capacity to deliver logistics than small patrol bases.
+
  
''Usage'':  Place a Military Logistics module and Synch (F5) it to an OPCOM module to enable it to request reinforcements and supplies.
 
  
 +
'''Reinforcement Type'''
  
'''Insertion Type
+
''Dynamic'' - LOGCOM chooses the best insertion point from available friendly objectives held in "reserve" (check C2ISTAR Operations to see the current state).  High Priority objectives such as airfields and military bases with heli pads are preferred.  If there are no suitable locations, LOGCOM will look for low priority military establishments or marine civilian locations (sea ports).
  
''Dynamic'' - LOGCOM chooses the best insertion point from available friendly held objectives.  High Priority objectives such as airfields and military bases with heli pads are preferred.  If there are no suitable locations, LOGCOM will look for low priority military establishments or marine civilian locations (sea ports)These have a significantly lower logistics capacity than major military bases and resupply will take longer.
+
''Fixed'' - Static selection of logistics insertion point.  LOGCOM will find the closest High Priority Military Objective to the location of the Logistics module on the map.  This must be held by Friendly Forces.  If the location is lost, Logistics will cease to function until the objective is recapturedThe objective must be under side control and in "reserve".
  
''Fixed'' - Static selection of logistics insertion point.  LOGCOM will find the closest High Priority Military Objective to the location of the Logistics module on the map.  This must be held by Friendly Forces.  If the location is lost, Logistics will cease to function until the objective is recaptured.  Tip:  use [[Custom Military Objectives]] set to very high priority (e.g. 999) to set a custom fixed insertion point.
+
 
 +
*Tip:  use [[Military Placement (Custom Objectives)]] set to very high priority (e.g. 999) to set a custom fixed insertion point.
  
  
Line 36: Line 37:
 
''Allowed Types'' - Toggle options to allow or deny logistics requests for each group types
 
''Allowed Types'' - Toggle options to allow or deny logistics requests for each group types
  
 +
''Air Transport Assets'' - restricts the available air transport assets to the Side or Faction.  If ''Faction'' is selected and the AI Commander's faction does not have any air units, then Logistics can only be delivered by ground convoy (useful if you want to disable the default fall back behaviour to vanilla transport helis in scenarios where helis must not be used.)
 +
 +
 +
'''Frequency'''
 +
 +
The frequency of reinforcement requests can be set in the Military AI Commander module (Constant, Blocked or Seldom).  Roughly this equates to OPCOM requesting reinforcements when it reaches 90% (a constant trickle), 75% (large blocks of reinforcements) or 50% (occasional but very large groups or replacements) of it's starting state.
  
 
=Editor Notes=
 
=Editor Notes=
  
APIs and Test Scripts
+
You can adjust the ALIVE_globalForcePool during runtime with a script.  See the [[http://alivemod.com/wiki/index.php/Script_Snippets#Adjust_Logistics_Force_Pool|Script Snippets Section]] for an example.
  
 +
APIs and Test Scripts
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
 
To test a standard logcom request:  execVM "\x\alive\addons\mil_logistics\tests\test_ML.sqf"
 
To test a standard logcom request:  execVM "\x\alive\addons\mil_logistics\tests\test_ML.sqf"
Line 49: Line 57:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
=Dev Notes=
  
 +
Until BIS gives us a transport plane, players will see BCR's being parachuted in if they are near the insertion point.  This is to simulate a strategic airlift and is better than units popping out of nowhere.  It may seem a little odd if large vehicles are parachuted but just close your eyes and move along.
  
=Dev Notes=
+
Technically speaking, Military Logistics provide ''replacements'' and not ''reinforcements''.  The AI Commander will only request replacements for units that have been destroyed since mission start.  If the AI Commander starts with zero units, it will never request replacements because as far as it's concerned it will never lose any.  If you set up a mission this way, the Player can still call in ''reinforcements'' using the [[Logistics Support|Player Combat Logistics]] module.
  
First iteration of Mil_Logistics (aka LOGCOM).  Some anomalies like parachuting tanks may be witnessed!
 
  
Military Convoys module has been removedThese are now dynamically generated by LOGCOM.
+
'''Random Notes:'''
 +
 
 +
The reinforcements groups are always random and the amount is based on the number of groups that were spawned during mission start. That would (or should) also include the manually places groups/units.
 +
 
 +
During init ALiVE builds an array with group counts for all group categories (see table below).
 +
 
 +
<syntaxhighlight lang="php">
 +
Types      | Start amount
 +
=========================
 +
Infantry  |          16
 +
Motorized |            4
 +
Mechanized |            4
 +
Armour    |            2
 +
SpecOps    |            6
 +
Plane      |            1
 +
Heli      |            2
 +
</syntaxhighlight>
 +
 
 +
 
 +
Sometime during the OPCOM analyze phase it will determine the % of groups there are currently and compare that to the threshold configured in the AI Commander module.
 +
 
 +
<syntaxhighlight lang="php">
 +
Reinforcement type | Threshold
 +
==============================
 +
Constant          |      90%
 +
Packets            |      75%
 +
Seldom            |      50%
 +
</syntaxhighlight>
 +
 
 +
 
 +
OPCOM will then request reinforcements for all the group types that need it (with a cap of 10 groups per group type EDIT: per OPCOM cycle).
 +
 
 +
 
 +
Here are some details for how the "normal" unit placing works and the weighting for it.
 +
 
 +
 
 +
With a force size of 800 the following group counts will be spawned during init. The Random weighting will just pick one of the other weightings randomly.
 +
 
 +
<syntaxhighlight lang="php">
 +
Weighting  | Infantry | Motorized | Mechanized | Armored | Air | SpecOps
 +
========================================================================
 +
infantry  |      64 |      0-13 |      0-13 |    0-8 | 0-2 |      16
 +
motorized  |      40 |        33 |      0-13 |    0-8 | 0-2 |      16
 +
mechanized |      40 |      0-13 |        33 |    0-8 | 0-2 |      16
 +
armored    |      40 |      0-13 |      0-13 |      20 | 0-2 |      16
 +
air        |      40 |      0-13 |      0-13 |    0-8 |  13 |      16
 +
specops    |      40 |      0-13 |      0-13 |    0-8 |  13 |      40
 +
</syntaxhighlight>
 +
 
 +
 
 +
With a force size of 400 the group counts would be as following.
 +
 
 +
<syntaxhighlight lang="php">
 +
Weighting  | Infantry | Motorized | Mechanized | Armored | Air | SpecOps
 +
========================================================================
 +
infantry  |      32 |      0-6 |        0-6 |    0-4 | 0-1 |      8
 +
motorized  |      20 |        16 |        0-6 |    0-4 | 0-1 |      8
 +
mechanized |      20 |      0-6 |        16 |    0-4 | 0-1 |      8
 +
armored    |      20 |      0-6 |        0-6 |      10 | 0-1 |      8
 +
air        |      20 |      0-6 |        0-6 |    0-4 |  6 |      8
 +
specops    |      20 |      0-6 |        0-6 |    0-4 |  6 |      20
 +
</syntaxhighlight>
 +
 
 +
[[Category:ALiVE Modules]] [[Category:Logistics Modules]]

Latest revision as of 13:17, 15 January 2018

Part of:
Icon mil opcom.png ALiVE Military
Requirements: Synced
Icon mil opcom.png Military AI Commander
Onebit yes.png

How It Works

The Battlefield Logistics System is responsible for maintaining operational effectiveness of all units in the Theatre of Operations, delivering resupplies and Battle Casualty Replacements to the front line. BCRs require a suitable objective held by friendly forces where they will muster before moving to join front line units. The AI Commander requests BCRs when Combat Effectiveness of existing units falls below acceptable levels. The Logistics Commander (LOGCOM) assesses the tactical situation and determines the best location to bring in BCRs and then dispatches a convoy with the required troops and vehicles. Replacements may come in by Air or Land depending on the location and availability of landing sites and the type of replacements requested. Large airfields have a higher capacity to deliver logistics than small patrol bases.


Usage: Place a Military Logistics module and Synch (F5) it to an OPCOM module to enable it to request reinforcements and supplies. Only sync one Log module to each OPCOM.


Reinforcement Type

Dynamic - LOGCOM chooses the best insertion point from available friendly objectives held in "reserve" (check C2ISTAR Operations to see the current state). High Priority objectives such as airfields and military bases with heli pads are preferred. If there are no suitable locations, LOGCOM will look for low priority military establishments or marine civilian locations (sea ports).

Fixed - Static selection of logistics insertion point. LOGCOM will find the closest High Priority Military Objective to the location of the Logistics module on the map. This must be held by Friendly Forces. If the location is lost, Logistics will cease to function until the objective is recaptured. The objective must be under side control and in "reserve".



Force Pool

Dynamic - availability of replacement forces is dependent on the number, type and size of objectives held by friendly forces. Capturing more objectives will increase the size of the pool. For example, this may be used in a Counter Insurgency scenario where insurgent forces are living off the land.

Fixed - a fixed count of available reinforcement groups. When they run out, no more replacements will come although this can be set to infinite for never ending battles.

Allowed Types - Toggle options to allow or deny logistics requests for each group types

Air Transport Assets - restricts the available air transport assets to the Side or Faction. If Faction is selected and the AI Commander's faction does not have any air units, then Logistics can only be delivered by ground convoy (useful if you want to disable the default fall back behaviour to vanilla transport helis in scenarios where helis must not be used.)


Frequency

The frequency of reinforcement requests can be set in the Military AI Commander module (Constant, Blocked or Seldom). Roughly this equates to OPCOM requesting reinforcements when it reaches 90% (a constant trickle), 75% (large blocks of reinforcements) or 50% (occasional but very large groups or replacements) of it's starting state.

Editor Notes

You can adjust the ALIVE_globalForcePool during runtime with a script. See the [Snippets Section] for an example.

APIs and Test Scripts

To test a standard logcom request:  execVM "\x\alive\addons\mil_logistics\tests\test_ML.sqf"
 
To test a airdrop logcom request:  execVM "\x\alive\addons\mil_logistics\tests\test_ML_AIRDROP.sqf"
 
To test a heli insert logcom request:  execVM "\x\alive\addons\mil_logistics\tests\test_ML_HELI_INSERT.sqf"

Dev Notes

Until BIS gives us a transport plane, players will see BCR's being parachuted in if they are near the insertion point. This is to simulate a strategic airlift and is better than units popping out of nowhere. It may seem a little odd if large vehicles are parachuted but just close your eyes and move along.

Technically speaking, Military Logistics provide replacements and not reinforcements. The AI Commander will only request replacements for units that have been destroyed since mission start. If the AI Commander starts with zero units, it will never request replacements because as far as it's concerned it will never lose any. If you set up a mission this way, the Player can still call in reinforcements using the Player Combat Logistics module.


Random Notes:

The reinforcements groups are always random and the amount is based on the number of groups that were spawned during mission start. That would (or should) also include the manually places groups/units.

During init ALiVE builds an array with group counts for all group categories (see table below).

Types      | Start amount
=========================
Infantry   |           16
Motorized  |            4
Mechanized |            4
Armour     |            2
SpecOps    |            6
Plane      |            1
Heli       |            2


Sometime during the OPCOM analyze phase it will determine the % of groups there are currently and compare that to the threshold configured in the AI Commander module.

Reinforcement type | Threshold
==============================
Constant           |       90%
Packets            |       75%
Seldom             |       50%


OPCOM will then request reinforcements for all the group types that need it (with a cap of 10 groups per group type EDIT: per OPCOM cycle).


Here are some details for how the "normal" unit placing works and the weighting for it.


With a force size of 800 the following group counts will be spawned during init. The Random weighting will just pick one of the other weightings randomly.

Weighting  | Infantry | Motorized | Mechanized | Armored | Air | SpecOps
========================================================================
infantry   |       64 |      0-13 |       0-13 |     0-8 | 0-2 |      16
motorized  |       40 |        33 |       0-13 |     0-8 | 0-2 |      16
mechanized |       40 |      0-13 |         33 |     0-8 | 0-2 |      16
armored    |       40 |      0-13 |       0-13 |      20 | 0-2 |      16
air        |       40 |      0-13 |       0-13 |     0-8 |  13 |      16
specops    |       40 |      0-13 |       0-13 |     0-8 |  13 |      40


With a force size of 400 the group counts would be as following.

Weighting  | Infantry | Motorized | Mechanized | Armored | Air | SpecOps
========================================================================
infantry   |       32 |       0-6 |        0-6 |     0-4 | 0-1 |       8
motorized  |       20 |        16 |        0-6 |     0-4 | 0-1 |       8
mechanized |       20 |       0-6 |         16 |     0-4 | 0-1 |       8
armored    |       20 |       0-6 |        0-6 |      10 | 0-1 |       8
air        |       20 |       0-6 |        0-6 |     0-4 |   6 |       8
specops    |       20 |       0-6 |        0-6 |     0-4 |   6 |      20