User:JollyGreenJesus/sandbox

Jan 30, 2020

Here's a neat concept: The difference between cover and concealment.

Flavour and Theme

# 1

Another concept: (For visual feedback & theme) "Marines, Naval and Coast Guard personnel must never render a salute unless wearing a cover."  Have individual soldiers "salute" the leader of the unit, when the unit approaches. Put some time delay on it, so they aren't continually saluting. Also, never salute in combat.

# 2

"Low ranking" soldiers give way for "higher ranked" soldier's movement. How do you even code that?


 * Look at NavMeshAgent.Path - that is a collection of nodes in the GameObject's path.
 * Even though the world is in 3D, all soldiers are effectively limited to moving along the X and Z axes.
 * Since the "higher ranking" soldiers are fewer in number, it makes sense to do run this method on their GameObject.

... okay try this. (rough outline of an "avoidance" method) (even though it's really the lower-ranked that are trying to avoid... need a better term)

{HIGH_RANKING_SOLDIER}

{Data field for a soldier: Intimidation_Factor}  //Determines just how much leeway a given high ranked soldier is given, but their subordinates.


 * For a given soldier, with a "high rank"...
 * Look at that GameObject's NavMeshAgent
 * IF Path.Status == {Partial, Invalid}
 * break out of the method. //this can only be done with a complete, calculated path.
 * Grab the following data: A path is a series of line segments.  We need a series of line segments, with a total length == the Intimidation_Factor.
 * Vector math, fun. We need to see what GameObjects exist within range {intimidation_factor} of {those line segments}.
 * You obviously can't check for every point in those line segments, as there's an infinite number. What we need is a roughshod heuristic.  For every X units of the path, do that check.
 * What's the check? Visually, it looks like you're placing a circle, with a radius of {intimidation_factor}, on each point of the line that you decide to check.
 * For each GameObject that falls within that circle:
 * Send a message/event to that gameobject, telling them who and what is approaching. Obviously, remember to encapsulate the behaviours appropriately.  The high-rank only deals with its own behaviour.  The other soldier has their own state machine.

{OTHER SOLDIER} //The one that receives a message.

On receiving that message:


 * Well... you move out of the way. What information do you need to do that?
 * The message would need to include, at a minimum: The origin of the intimidation, and the trajectory.  (If you don't have the trajectory, the intimidated soldier could move into the path of the high-rank.)
 * Given that, you can figure out (roughly) where to go. It doesn't need to be an exact calculation... and it'd be better if it ISN'T.  A heuristic that comes up with an approximation makes things look more realistic, and is less computationally expensive.

A List of Articles: Reading Material for Game Design

List of military writers

List of military tactics

War (See:  Series sidebar)

Overarching Concepts:


 * 1) War
 * 2) Operational level of war

Operational Concepts:


 * 1) AirLand Battle
 * 2) Attrition warfare
 * 3) Blitzkrieg
 * 4) Counter-offensive
 * 5) Deep operation
 * 6) Fabian strategy:  Pretty much everything about this is amazing.  If time is on your side, then you have the opportunity to avoid pitched battles, and slowly deprive your enemy of resources.  Closely related to attrition warfare (although in this case, you are sacrificing your time, rather than your superior numbers).
 * 7) Maneuver warfare

Maneuvers (or related to):


 * 1) Counterattack - In any attack, one has to leave a defensive position, exposing themselves as they attack towards a specific goal.  A counter-attack uses surprise to take advantage of this exposure of the attacking enemy.
 * 2) Interior lines:  Imagine a surrounded force.  Let us imagine that they are roughly the same size.  The surrounded force can more quickly concentrate their units into effective firepower, than can the attacking force.
 * 3) Fortification / Fortified Positions:  Forces at rest must take shelter in fortified location.  It isn't human to stand out in the open in the midst of conflict (to do so would be devastating to morale and willingness to believe in command).  The exception, being a pitched battle.

Troop Types:


 * 1) Skirmisher
 * 2) Battle of Cannae (See:  Skirmisher contingent.)

Historical Examples:


 * 1) Battle of the Bulge:  (Or:  The danger of salients.)
 * 2) Battle of Cannae: Mythic victory.  Needs more detail.

Unsorted:

Active Defense