Logistics (inspired by Realism Invictus) [ACCEPTED]

raystuttgart

Civ4Col Modder
Joined
Jan 24, 2011
Messages
9,637
Location
Stuttgart, Germany
Actually this idea is kind of inspired by the Civ4BTS mod "Realism Invictus".
(But I think that my concept is a bit different. And I will also implement it from scratch.)

Spoiler :

Some of you may already have read about "Barracks System".
That concept basically removes endless stacking of Military Units in a City or Fort.

However on other (open Terrain) Plots, endless stacking of Military Units without consequences is still possible.
This here is basically the concept to change this without being just tedious or breaking AI.


The idea is the following:

1. Each Player gets a base "Logistics Capacity":
Spoiler :

E.g. he can have as default up to 4 Units on a (Flatland) Plot* without any drawbacks.
(Of course having less Units also has no drawbacks.)

The "Logistics Capacity" of the Player can be increased by e.g.:
  • Traits (Leader)
  • Traits (Fouding Father)
  • Once it gets implemented: Civics
  • Once it gets implemented: "Techs"
* On other Plots this changes, see next section.
(Some may actually have much less.)


2. Terrains / Terrain Features / Roads / ... have a "Logistics Modifier":
Spoiler :

The "Logistics Modifier" may be both positive or negative.
(Negative values means you will have less Logistic Capacity available.)

e.g. for Terrain Features:
  • Terrain Feature Swamps: -2
  • Terrain Feature Jungle: -2
  • Terrain Forrest: -1
  • ...
e.g. for Terrains:
  • Terrain Large River: -2
  • Terrain Marsh: -1
  • Terrain Wetland: -1
  • Terrain Ice: -1
  • Terrain Rock Steppes: -1
  • ...
e.g. for Roads:
  • Roads: +1
  • Country Roads: +2
  • Plastered Country Roads: +3
Other possible modifiers of a Plot:
  • River: + 1
  • Coastal: -1 (So Landing Operations from Ocean get a bit more difficult)
  • Enemy Territory: -1
  • Home Territory: +1
  • ...


3. Each Unit will have "Logistic Costs" - summed up to "Stack Logistic Cost":

Spoiler :

Basically Logistic Costs of Units correspond 1:1 to the Barrack Points they need.
(see in Barracks System)

In general it is more or less:
  • Foot Units: 1
  • Mounted Units: 2
  • Small Artillery: 1
  • Siege Artillery: 2
  • Unit with General: 0
  • Supply Convoy: -2 (new Unit)
All of this will be summed up to the "Stack Logistic Costs".


--------------------------------------------------------------
--------------------------------------------------------------

The Actual Gameplay Mechanism:

Player "Logistic Capacity" + Plot "Logistic Modifier" = "Logistic Points of Plot" (available)
(So it is still possible to have more Units on a Plot than "Logistic Points", but it will come at a cost if you do.)

Each "Stack Logistic Cost Point" you have more than "Logistic Points of Plot" causes:
  • -10% Combat Strength
  • -10% Withdrawal Chance
  • -10% Heal Rate
Of course you can always have at least 1 Unit on a Plot. :)
(And negative modifiers will be limited to -50%, so it does not matter if you have 5 or 6 Units too much.)

But even a single Unit may have drawbacks from "bad logistics" on certain Terrains if too many bad factors combine.
(So e.g. in a Swamp on Marsh in Enemy Territory, the "Stack Logistic Points" may be negative.)

--------------------------------------------------------------
--------------------------------------------------------------

About AI:

AI will at first get easier rules. (The negative modifiers may be smaller.)
Generally it should be possible to teach it as least some of it.

--------------------------------------------------------------
--------------------------------------------------------------

FAQ:

What about Cities / Forts? Will there be logistic costs as well?
No, there won't. We already have the "Barracks System" for this, which works better for Cities / Forts.
(Barracks System gives "hard limits" for Combat-Units but does not limit Non-Combat-Units.)

Will this consider only Military Units or also normal Settlers on Plots:
Currently I think it would be more interesting to also consider non-Combat Units (e.g. Colonists, Treasures, ...).
(Being on a Plot with lots of your settlers and trying to protect them, would realsitically also lower combat strength.)

Will this concept only be implemented for Land or also for the Ocean:
Currently I think that "Stacks" are not such a big thing on the Ocean, so most likely just for Land.
(Technically it would however be no big issue to implement this for the Ocean as well.)

Will Units being carried by a transport (inside) also be counted:
No, they will not. There are not that many land Units that can carry others.
(At the moment I think it is only the StageCoach and Military Carrier.)
Also it may make those transports a bit more interesting.

Will this be XML configurable:
Yes of course. It will be very configurable. As always it will also be deactivatable by GlobalDefines.XML.
(Terrains, Terrain Features, Roads, ... each will get their settings in their XML.)

Will this impact performance:
It should not be too bad, since it will only be computed on Mouse Over or actual Combat.
(However it depends on AI logic for path caculation because if AI calculates this too often it may matter.)

How will this be visualized:
Base Logistics Capacity of the Player will be visible at the top of the Screen. (e.g. below Gold.)
The Player Logistic Capacity, Plot Modifier and the resulting Stack Logistic Points will be visible on Mouse Over the Stack / Unit.

How big is the effort to implement this:
Actually it is moderate. Take the effort required for "Barracks System" and multiply it by 3.
(DLL implementation is actually not difficult, but there is a lot more XML config involved.)

--------------------------------------------------------------
--------------------------------------------------------------

Summary:

1. Stacking will still be possible, so this is no 1UPT concept which would break AI.
2. Stacking however simply comes at a cost and consideration of Terrain will be much more important.
3. Traits like "Great General" or others may get a bit more interesting.
4. Some Founding Fathers in Military that are currently a bit dull may also become more interesting.

--------------------------------------------------------------
--------------------------------------------------------------

Comment:
Most of all I want to get rid of these stupid scenarios, where you simply dump your "Stack of Doom" by Ship at the Capitol of your enemy,
and then have your Stack march from enemy City to enemy City without ever really being challenged.
(Now you will have a bit of a Problem if you keep your complete stack just on one single Plot.)

--------------------------------------------------------------
--------------------------------------------------------------

Well, that is pretty much it. :dunno:
A lot will depend on balancing.

The core idea is simply to give moving your army through Terrain a bit more "tactical depth".
Thus maybe also requiring a bit more strategic decisions how you prepare an attack.

Feedback is welcome. :)
 
Last edited:
I think this logistics system is great. These stacks of doom have always annoyed me. It's just totally unrealistic when 20 artillery, 50 line infantry, mortars, cavalry, etc. fight together on one field....

P.S.: I played the Civ4 mod "Realism Invictus" myself, next to "Fall From Heaven", but I didn't notice these statick system at all ...:crazyeye:
 
Will this impact performance:
It should not be too bad, since it will only be computed on Mouse Over or actual Combat.
(However it depends on AI logic for path caculation because if AI calculates this too often it may matter.)
in theory, multithreading should solve this problem. Or at least reduce it.

Summary:

2. Stacking however simply comes at a cost and consideration of Terrain will be much more important.
with the new movement cost, it may be better for the AI to plot the auto movement route and not frequently use the tiles with the highest protection.
 
I think this logistics system is great.
Thanks. :)

I thought a while about it and tried to create something that satisfies all of these:
  • Punishing Stack of Doom and introducing a bit of tactical thinking
  • Offering possibilities to create new Traits or tie into Civics or Techs
  • Teachable to AI and not causing too heavy exploits for Human Player
  • Not too tedious considering normal movement (in Peace Times)
  • Immersive and also consistent with e.g. "Barracks System"
  • Still not too heavy on performance and also not too much effor to implement
  • Easy to understand for new players and easy to visualize in UI
The current system is the best compromise I could find. :dunno:
 
Will Units being carried by a transport (inside) also be counted:
No, they will not. There are not that many land Units that can carry others.
(At the moment I think it is only the StageCoach and Military Carrier.)
Also it may make those transports a bit more interesting.

... military carrier? You mean the conestoga/carriage? I think they're already quite good as combined cargo/people movers on larger maps.

Rather than adding a new unit and concept, could units outside of cities consume food (and guns/cannons for soldiers/artillery, representing repairs & ammunition), requiring wagon trains with supplies in their tile? And instead of, or in addition to, combat bonuses/maluses, suffer damage if they are not supplied (just as from storms at sea)?

This could also apply for units stationed in cities. Perhaps forts would need some storage, then.

It would also be interesting to have military units require gold upkeep per turn, or risk desertion.
 
@Link Gaetz
Upkeep System (Gold) is another concept that is already on the list. (Limiting total size of army.) --> Strategic Layer
It does not conflict with the Logistic System at all. (Limiting number of Units on a single Plot.) --> Tactical Layer

-------

This here is the entry in the "Long Term Todo List":
Upkeep and Taxation (basically preventing steam rolling / snowball wins)

Here is also the entry where I described my last concept idea.
But once I get to implement it it may change anyways.

e.g. I would not do this "Human Only" anymore.
I already have ideas how to implement it for AI as well.

But "Upkeep" is currently something like issue 21 on my "new game mechanics todo list".
It has relatively low priority for me compared to other stuff I consider more impactful and fun.

"Logistics" would be less effort and more impactful and thus higher up in the list. Still top 10.
(At least considering my personal taste and my own game style.)
 
Last edited:
consume food (and guns/cannons for soldiers/artillery, representing repairs & ammunition)
requiring wagon trains with supplies in their tile?
suffer damage if they are not supplied (just as from storms at sea)?
Sorry, I do not like it.

It was suggested already in the past to have an "actual Yield" based concept as an "Upkeep System".
(For various reasons - most of all efforts and risk - I would implement a different "Gold" based concept.)

---------

Problems with actual Yields:

1) Almost impossible to teach AI
2) I consider it too tedious.
3) Pretty bad for performance.

---------

I agree that actual Goods is more immersive and realistic.
But for gameplay and AI I consider it a very bad design.

---------

But as I said:
Upkeep and Logistic try to improve totally different gameplay aspects.
One is about total army size (strategic layer), the other one about size of stacks on plots (tactical layer).
 
Last edited:
I think this logistics system is great. These stacks of doom have always annoyed me. It's just totally unrealistic when 20 artillery, 50 line infantry, mortars, cavalry, etc. fight together on one field....

P.S.: I played the Civ4 mod "Realism Invictus" myself, next to "Fall From Heaven", but I didn't notice these statick system at all ...:crazyeye:

Stacks of Doom are a result of the current game rules ... and they are easy to use for AI.
One turn in Col usually represents a couple of months or a year, in Civ in some eras even 20 or 50 years, while a tile may represent hundreds of square kilometers, so a clash of 2 stacks of doom can be seen as a series of battles taking place in a small area over some months or years.

Change rules from strategical scale to tactical scale and stacking all units in a tile may no longer be the optimal strategy, e.g.
- limit the overall number of attacks from one tile to other tiles per turn (which effectively changes time scale from months to minutes)
- allow (gunpowder) units to bombard = deal damage without receiving counter damage
- give artillerie some extra damage when hitting "crowded" tiles
- increase range for gunpowder units so that they can shoot 2 tiles far if they have free line of sight.
- reduce the healing. 20% or more damage healed per turn is extremely unrealistic if you consider that most wounds actually resulted in amputation or death by traumatic fever in that times.
(These changes differ a little bit from Ray's suggestions.)

There is a reason why gunpowder units were organized in lines ... to have more soldiers with free line-of-sight to fire on the opponent. If units are all stacked, they cannot fire because other friendly units are in the way. However it will probably be hard to teach AI to effectively use these rules against a human player, so AI may become even weaker by such changes.

An alternative option would be to have armies with limited size and a separate tactical battle field (chess board) where armies fight against each other until one side is defeated or flees as in Master of Magic, Age of Wonders, Conquest of the New World, ...
 
Stacks of Doom are a result of the current game rules ... and they are easy to use for AI.
One turn in Col usually represents a couple of months or a year, in Civ in some eras even 20 or 50 years, while a tile may represent hundreds of square kilometers, so a clash of 2 stacks of doom can be seen as a series of battles taking place in a small area over some months or years.
I see it more like a season in Colonization and the area size depends very much on the size of the map. A square on a tiny map is far less space than a square on a gigantic map.

Change rules from strategical scale to tactical scale and stacking all units in a tile may no longer be the optimal strategy, e.g.
- limit the overall number of attacks from one tile to other tiles per turn (which effectively changes time scale from months to minutes)
- allow (gunpowder) units to bombard = deal damage without receiving counter damage
No unit ever was safe from counter fire or counter attack. If an artillery unit shoots, then the enemies artillery can and should be able to shoot back at you like in the Cannonade of Valmy.

- give artillerie some extra damage when hitting "crowded" tiles
- increase range for gunpowder units so that they can shoot 2 tiles far if they have free line of sight.
You have yourself mentioned the large size of a square (depending on map size hundreds of kilometres) - much more than the range of the usual artillery pieces that a land unit had with them in the colonial time. Having them shoot into an adjacent square is already streching it and I rather imagine that they are advancing into the same square to give battle. Shooting with colonial era cannons from New York across the Appalachians (two squares on a gigantic map) is science fiction.
 
No unit ever was safe from counter fire or counter attack. If an artillery unit shoots, then the enemies artillery can and should be able to shoot back at you like in the Cannonade of Valmy.

A unit or group of units which is simultaneously attacked by multiple enemy units may counter fire against them, but only if it has a free line of shooting, at one after the other and limited by its rate of fire.
The problem here is time scale ... if a turn equals a season, units may attack or bombard a large number of times without being unrealistic.

There are more realistic tactical simulations (with time scale of hours or days) where both sides simultaneously specify where to move and which targets to attack ... and then all the commands for both sides are resolved all together by the game/simulator.

You have yourself mentioned the large size of a square (depending on map size hundreds of kilometres) - much more than the range of the usual artillery pieces that a land unit had with them in the colonial time. Having them shoot into an adjacent square is already streching it and I rather imagine that they are advancing into the same square to give battle. Shooting with colonial era cannons from New York across the Appalachians (two squares on a gigantic map) is science fiction.

You quote my arguments why stacks of doom are not that bad to counter my suggestions how to change rules (by changing from strategic scale to tactical scale) to get rid of stacks of doom people are annoyed with.
There are games which use a tactical map for battles ... and on such a tactical map (depending on scale) cannons and rifle infantry may fire multiple tiles far.

Here is a plan of the battle of Quebec (wikipedia) as example :
It depends on scale if the armies appear as stacks of doom (if you zoom out) or as single units. If you zoom in wide enough to have single units, you are in a scale where range of gun fire can be multiple tiles.

 
Last edited:
An alternative option would be to have armies with limited size and a separate tactical battle field (chess board) where armies fight against each other until one side is defeated or flees
these tricks were implemented in Humankind. however, in Colonization, I think the maximum that can be done is to limit the number of units per cell. however, someone has to do it. but there are no free modders, and the rest are already busy with current projects. but it's a good idea, yes.
 
Will this impact performance:
Just cache the value from the plot. It only changes if terrain, feature or route changes so fairly simple to set up. If we add logistic points to CivEffects, then we will get a cached value while also making it really simple to make it highly xml modding friendly.
What's left is counting units on plot. That shouldn't be a huge issue either and might be cached too. If it needs custom counting code, it can be made to bail out once max penalty has been reached as further counting makes no difference.

So yeah I agree performance shouldn't be an issue, at least not if done right.
 
Top Bottom