[DLL] (7-NS) Disallow citadel tunneling (Lebensraum exploit)

Status
Not open for further replies.

Rompersenor

Chieftain
Joined
Aug 28, 2022
Messages
13
Proposal: Disallow building citadels (and its unique variants that grab land, such as Ordo) in tiles that have previously been acquired by any citadel (by any player).

Note: Currently citadels cannot be build next to other citadel. Thus, this proposal preserves the expected behavior of "basic" citadels, but disallows "citadel tunneling", which can be utilized with citadels claiming 2 tiles radius (Lebensraum - autocracy tenet).

Rationale: Being able to use Lebensraum to tunnel through enemy territory to enemy capital, advancing two tiles per general spent, which moreover can be done during peace treaty, is clearly an exploit in human hands (AI is not really able to do it). There is no counter to it during peace time, maybe aside from preemptive citadeling your whole territory, which is almost impossible for human and AI cannot really do it.

You would hate if someone did that to you in a MP game, wouldn't you?


Sidenote: There are lots of interesting ideas how to tweek Lebensraum in the forum: https://forums.civfanatics.com/threads/lebensraum-alternate-ideas-brainstorm.689140/
This proposal is not as complex, just an exploit fix.
 
I'm guessing this needs extra data to be added to the plots. which doesn't sound unfeasible but might be an issue?
 
I'm guessing this needs extra data to be added to the plots. which doesn't sound unfeasible but might be an issue?
Option one is to add a memory value (which would need to be updated if the citadel is replaced). Option two is to check each tile that would be claimed to see if it's adjacent to a citadel. Could be a performance issue when the AI is looking for locations to plant one and has to test a lot of tiles, but should still be feasible if optimized.
 
Option two is to check each tile that would be claimed to see if it's adjacent to a citadel
This check would need to be specialized specifically to Lebensraum, since it would otherwise hinder normal citadel placement as well.
 
This requires a pretty considerable addition to memory for a single late game policy ability.
 
Option one is to add a memory value (which would need to be updated if the citadel is replaced). Option two is to check each tile that would be claimed to see if it's adjacent to a citadel. Could be a performance issue when the AI is looking for locations to plant one and has to test a lot of tiles, but should still be feasible if optimized.
I was thinking that a memory value would be quite straightforward without too much added logic and computing complexity, but I do not have too much insight into the code.


This requires a pretty considerable addition to memory for a single late game policy ability.
Does it really? I am not a C++ expert, but it should be just a boolean for each plot, right? How much is that? Something like 4B per tile if not optimized, 1B if optimized-aligned and 1 bit if there is some other variable that we can safely use for hiding a bit using mask? It will not be rewritten often and read only sometimes, right?
 
It would be a boolean for each plot, yes.
 
It will be read in simulation many times. The actual flipping and storing of that information is less taxing that the use of that new parameter.
 
Could we not limit the OP problem just by capping the distance from city that you are allowed to make Citadel? You'll still be able to do a little tunneling mind you but we eliminate the most egregious cases, say if we make Citadel only buildable within 5 tiles of existing city. I suppose it'll allow player to start planting cities in the corridor in some cases of widely spaced cities, but I imagine most often it will be too packed for this
 
Could we not limit the OP problem just by capping the distance from city that you are allowed to make Citadel? You'll still be able to do a little tunneling mind you but we eliminate the most egregious cases, say if we make Citadel only buildable within 5 tiles of existing city. I suppose it'll allow player to start planting cities in the corridor in some cases of widely spaced cities, but I imagine most often it will be too packed for this
That's an even more expensive check, since now every plot in consideration needs to look in a 5 tile radius for a city (for all citadels, not just those affected by this tenet).
 
Good point. It does seem like a lot of code though for a niche problem. I think I've done this like once ever.

To partially mitigate in a simpler way maybe just global cooldown on citadel ie can't build new Citadel for x turns after player built any Citadel -- if you put one down during peace treaty, the treaty will at least be up before the next one can be setup.
 
To partially mitigate in a simpler way maybe just global cooldown on citadel ie can't build new Citadel for x turns after player built any Citadel -- if you put one down during peace treaty, the treaty will at least be up before the next one can be setup.
This will be the only improvement of its kind that has this exception, all because of this one policy ability.
 
This will be the only improvement of its kind that has this exception, all because of this one policy ability.
True. Maybe turn it on JUST for this policy then. It's still a desirable policy even if it adds a nerf as cooldown imo

Ultimately I don't think most players will notice that often, and when they do, it probably won't be that disruptive... So you just wait a bit to make another citadel, no biggie
 
I think this proposal missed the point of the entire lebensraum discussion. People already LIKE an OP exploitive lebensraum, it has already survived several attempts to nerf it in the past.

The goal of the discussion was to find a new way that lebensraum would be exploitive and OP....just less OP than what we have now. But this proposal doesn't do that imo, its just a straight up nerf like every other failed attempt in the past.
 
I think this proposal missed the point of the entire lebensraum discussion. People already LIKE an OP exploitive lebensraum, it has already survived several attempts to nerf it in the past.

The goal of the discussion was to find a new way that lebensraum would be exploitive and OP....just less OP than what we have now. But this proposal doesn't do that imo, its just a straight up nerf like every other failed attempt in the past.
If there is such a big exploit that can potentially ruin any multiplayer game, it must be fixed immediately.

In the long run, Lebensraum could be reworked, but there does not seem to be an agreement how.
 
If there is such a big exploit that can potentially ruin any multiplayer game, it must be fixed immediately.

In the long run, Lebensraum could be reworked, but there does not seem to be an agreement how.
This is a bunch of work for a short-term solution. If you need such a fast fix to a multiplayer exploit, better to get the ability removed entirely and buff some numbers.
 
This does not entirely preserve the expected behavior. Even if neither civ has Lebensraum, it's possible to reclaim all of the stolen tiles from one enemy citadel with your own citadels by placing them two tiles away from the enemy citadel. In fact that's usually what I do if an enemy civ steals a resource with a (non-Lebensraum) citadel.
 
Last edited:
Perhaps you could make forts and adjacent tiles unclaimable by Citadel. Player can then always counter peace time tunnelling by anchoring territory with forts. In wartime forts are easily destroyed if player really wants to clear room for Citadel, and has the strength to do it
 
This does not entirely preserve the expected behavior. Even if neither civ has Lebensraum, it's possible to reclaim all of the stolen tiles from one enemy citadel with your own citadels by placing them two tiles away from the enemy citadel. In fact that's usually what I do if an enemy civ steals a resource with a (non-Lebensraum) citadel.
I believe this proposal does not change anything in this case. You could still build citadel to get your tiles back (the tiles acquired can change owners multiple times, just no citadel could be build there, but they are next to a citadel anyway).
 
Status
Not open for further replies.
Top Bottom