Killing killboxes.

Started by Granitecosmos, November 30, 2017, 07:08:20 PM

Previous topic - Next topic

Granitecosmos

Before we start we have to define what a killbox is. So let's have a look at what is absolutely necessary to make a killbox; the very elements a killbox can't function without. These are:

  • Walls to prevent the enemy from maneuvering around it.
  • Fortifications with either turrets, colonists or a combination of both to provide the best defense-to-firepower ratio.
  • A way to funnel enemies into one or a few small spaces where they get shredded because even missed shots hit something.
Walls are obvious; they present a barrier. This is fine, this is pretty much their purpose.
Fortifications are the way the game was meant to be played. Smart players use cover. Nothing unusual.
Now, the problem is funneling enemies. Most killboxes even put items like stone chunks into these entrances so the enemies can't even stop to have a chance to fire back. Players can do this because they know the raiders will certainly have to pass that area since there is no other way into the colony.

But this is just bad. This eliminates almost all challenge from combat. Pair it up with a mountain base and you have a colony that is untouchable for anything except infestations. Sieges? Raids dropping on top of base? Tornados? Meteors? Too bad, overhead mountains solve those. Sappers? Rare sight and good luck mining through half the mountain if you want to skip the killbox anyway. This is why devs have tried to do at least something with them in the past. But so far everything has failed or was just a minor success; only forcing a slight change instead of complete elimination.

Every killbox relies on funneling enemies into one or a few smaller areas. Take that away and the killbox simply becomes a line of fortifications; which is completely acceptable to have.

How to stop enemies from getting funneled into a deathzone? First we have to understand that right now the game has no real way to determine the location of such a killzone to be able to avoid it. Therefore we need such a system.

How to measure a killzone? Why, that's easy; by kills, of course! Well, by "downs", to be more precise. The game already can track a pawn being downed or killed. All we need is to give this yet another value and assign it to the map. This is where my idea comes in. Let's add a new value to every cell on the game map. Let's call this value "heat" for now and should be zero by default, as well as zero for minimum value too. For performance reasons the game should keep track of the cells having non-zero heat to prevent the game from trying to update all the tiles all the time. Now, here's the trick: when an enemy dies or gets downed, the game adds a certain amount of heat to that cell and optionally to other cells around that cell within a certain radius (could even tweak it to give less heat the further away the tile is from the center of the radius). Now, when the other enemies try to path towards the colony this heat value will be added to that certain tile's pathfinding cost. Add in an extra bit of code that effectively changes pathing cost to infinite after a certain amount of heat is reached on the tile and we're golden.

Now, obviously just doing this would result in all the map tiles becoming impassable after a long time. So let's add a refresh mechanism that fires every day (much like the XP cap reset) that removes a certain flat number (not percentage!) of heat from all tiles that have heat. This is where performance might be a problem and why the game should have a list of tiles that have non-zero heat so the game can just skip the other cells.

What this does is making the raiders a bit more intelligent. When they see the 5th raider die in front of them at the very same area they will actually act smart and realize it might not be that good of an idea to go that way after all. They might decide to bash on the walls to get inside. Optionally include some code to allow any raider to mine walls if they can't find any other way inside the colony (like sappers do). This "heat map" layer can be developed further; maybe disable it for animals since they aren't that intelligent or even make it faction-specific so the angry tribals don't know about the twelve pirates who got massacred around a corner (although making it faction-specific would have far greater impact on game performance).

Now, obviously this wouldn't just affect killboxes. This would also affect natural chokepoints and fortification lines as well. But let's be honest, the enemies are mostly either humans or mechanoids. Both are intelligent and would learn from their mistakes, one way or another. If you've killed the previous raid by utilizing a chokepoint they'll try going around it. If you're gunning them down from your heavily fortified defense positions they'll find other ways inside. The enemies are supposed to be intelligent, how about we make them act like that for once?

Just to state the obvious, this wouldn't completely eliminate killboxes. They could still score a few kills if enough time has passed since the last raid. But this could present a change since raiders would just turn their backs on a killbox after suffering some casualties and find or make a new entry. This could even punish those mountain bases by effectively turning every raid into a sapper raid if they use a funneling killbox as their only defense. Overall this could make raids much more dynamic, allowing them to change the angle of attack during the raid based on rough performance.

This idea might or might not have been brought up before. I honestly don't know. Oh well. So, what's everyone's thoughts?

XeoNovaDan

Four words: I'm all for this.

The biggest issue that this would present is, as you mentioned, possible performance implications and maybe the complexity to implement, but it'll definitely be a viable fix to an age-old exploit. It'll encourage players to invest in multiple defence points or otherwise engage in standard field combat where the playing field is a bit more level, which will also add a nice bit of challenge.

On that note, maybe difficulty could also multiply these map values, which simulates raiders on higher difficulties being smarter. Raiders using smart tactics could also be affected more by these heat values than your ordinary raid, again putting that bit of emphasis on.

I hope this does get in!

Spdskatr

Great idea actually.

Perhaps this way decrease the raid size as well so non-killbox players can play properly without being outnumbered 3 to 1.
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

Yoshida Keiji

+1

Tynan don't launch A18 to public until this is implemented, otherwise RW will look as a too cheesy game to potential new players.

Quote from: Spdskatr on November 30, 2017, 07:34:09 PM
Great idea actually.

Perhaps this way decrease the raid size as well so non-killbox players can play properly without being outnumbered 3 to 1.

No, why? I have never ever not even once built a killbox and still smash all raids already.

lancar

I really like this idea.
The only problem with it is when i envision all the massed-body raids that can simply overpower any defense that ISN'T a killbox.
To adress that, i suggest that the heat values of a all tiles on a map be modified by a "confidence" factor of the raid. A large army of people will naturally be more confident when attacking than a small one, after all, so the chances of them thinking "to hell with it, we'll just overpower them with numbers! Forward!" is a lot higher than a small  precision raid using special tactics, and thus should be more vulnerable to a killbox.

Also, some additional variety of defensive buildings would make sense to have so that it gets more feasable to defend none-chokepoint areas.
It doesn't have to be anything major, but think of things like large spotlights that lower the accuracy of pawns facing it, or barbed wire that're cheap to build a lot of and will scratch and slow enemies trying to cross without offering any cover like rocks and sandbags do. Neither are deadly, but help deny area and give advantages to the defender.

I know this stuff is (probably) in mods, but if the anti-killbox heatmap becomes a thing to make combat have more depth, imho more depth is needed in the defense department as well so more players can actually survive the higher difficulties without them.

SpaceDorf

I like the Idea very much. It gives actual brains to the attackers.

But I think every faction should have their own "heat map" and "plan" their raids accordingly.
Also the map should get fuzzy over time, when you change your base layout or no raiders return home to update the map.
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

Bolgfred

I don't know if i want raiders to destroy my walls everytime they feel threatened.
This might end in a very annoying fighting, which puts you more into hunting those skunky dudes, who are digging through your base.

I actually like the idea of learning. Same like traps, are remembered by raiders, dangerous spots should be remembered.
Raiders behaviour could split in a third behaviour. Now we have attacking and fleeding. I'd split that into scout, fight, flee:
When they arrive on the map, theyre all in a scouting mode, meaning they head for player structure, looking for things to kill or steal, do not shot on sight(they gather first and attack then). When somebody dies, they react and change tactics and direction.
When they get attacked a lot, or they did find a valuable treasure, they switch to battle mode. Now they attack offensivley, destroy walls and furniture, set fire and steal things.


Beyond all that, I'd really love to see another behaviour I mentioned already in another thread:
Whenever raider feel like they cannot attack a base effectively, one raider leaves the map. After he leaves 1-3 mortar shells are launched from off map, attacking outer walls.
When the attacking situation has changed, they attack, else another one leaves, up until 50% have left. If there's still no effect, they surrender or attack despite their chances.
"The earth has only been lent to us,
but no one has said anything about returning."
-J.R. Van Devil

Jibbles

#7
I'm all for making AI smarter.  Though I do question the outcome if this was implemented.  Raids may split up which will require even less firepower to take them down.  Throwing in heat spots like that may produce funky routes as well.  Not downing the idea though cause I think it would be more interesting than what we have now.

For me, I think part of it is lack of diversity in A raid.  A blob of raiders is running towards your base.  A siege is a blob attacking away from your base.  Same issues lies with mechs.  I think it would be more interesting if they had a way to lure you away from your base (more than just laying down a mortar) while also having some attack your base simultaneously.  It puts you on the spot on what you need to tackle down first while also making it pretty expensive or challenging to set killboxes or defenses on entire map.  Biomes such as swamp may have a bigger impact on your decisions as well.

Adding more raider types such as group of snipers, group of pyros etc would be neat IMO

Third_Of_Five

This does make sense.

I know it will probably be a bit challenging to implement and there will probably be a few people saying that this is nerfing the game, but it doesn't make sense for a gang of raiders to essentially willingly march to their deaths.

+1 from me

PatrykSzczescie

I've been thinking about the same idea. Let's make AI smarter, if they were told their buddies died while attacking a base in a certain place, their common sense would say to find another way.

Heat value might be reduced over the next raids rather than time. Also, during implementing keep in mind the heat value won't increase if already downed colonist dies. Apart from these, the idea is great.

Wanderer_joins

Or simply lower the path cost of walls for raiders. Keep different raids but have them all follow a sapper-like path. It's already roughly what you get when you play an open colony.

patoka

i am no it person but what you're saying makes quite a bit of sense. i'd much rather have all this be part of RimWorld's code than if my pets were incestuous or not...

but honestly i dont quite think the funnelling part is the most detrimental part of killboxes. personally, i have experimented with some just to try it out but i always came to the conclusion that anything even remotely similar to a killbox is straight up cheating. sure, technically it isnt, but the game isnt done yet so you could call it bug/glitch abuse.

anyway. what i think is the most detrimental part of killboxes is that they are usually fully mechanized. worst case scenario you need to replace some broken down guns and fix some doors and walls, but you never risk a head brainshot on one of your pawns, which in my opinion is the heart of the game. your colonists.

you might be right about your points, addingg intelligence and all. and i might be the regressive person i really dont want to be, but quite honestly i believe the autoturrets are not only overpowered but even if they were weaker they just ruin the game by their mere existance. i guess a step between autoturrets and sending your pawns into battle are pets bred for war, because it is so easy to reproduce an army of boars, wargs or dogs, but even muffalo if you want to profit from the super productive haygrass as their food.

i have looked at a number of killboxes and by far most are useless if you cant build autoturrets anymore. if you still have to send your pawns to actually kill of the enemy, i believe it is fair play, even if they are funneled and your units are dug in. only very few, the most extreme ones dont completel rely on actual shots getting fired. there, it is a combination of a labyrinth, many boulders in the way, hiding your base far off the map edge and the raiders starving/going crazy because of the long, corpse infested walk to the battlefield.

much less of a problem in my opinion are deadfall trap, but they are kinda useless in comparison to a proper fortification for the same cost. it is funny to put them in an area of the map where most traders like to go to and see them die there over and over without you starting a war. but that is a different bug abuse.

lastly i wanted to say that in my experience this game is still too heavily reliant on conventional projectile weapons. it might be realistic that way, but that is also what makes autoturrers so strong. either implement enemies/clothing that hides your/the enemy's heat signature from the guns or give the end game units better armor against bullets. arguably charge rifles are worse than other guns as of now, so you could make that kind of ammo more efficient against the strongest enemies, so that people have a reason to use pawns even if they had a killbox to kill the raiders. or maybe implement power fists since power armor already exists. power fists should be exellent at dealing a lot of damage to any enemy's head for example.


all in all, you might be right in that your idea would solve the problem better in more cases, but mine would be much easier to implement, because we've been modding very similar things for years now and the effects are well known. yours on the other hand might be hard to code, require a whole new alpha/beta and slow the game down even more once you have 10 or more pawns and play on high difficulties with numerous enemies each raid
surely you dont need to rebutcher corpses that you already half butchered if you leave the table to smoke a joint real quick?

kubolek01

Killbox=fear of enemies.
Sandbags=true fight with a small advantage.
Eat lead, walking pile of silver! (greedy Player)
I...I can't do it. Leave it alive, please!(inner soul)
It lives 200 years to end up as a jacket?!(realists mind)
If I would go to vacation in off-Earth, even fictional place, I'd choose Nibel.

Eddlm

#13
Newbie with no experience with killboxes coming through.

Quote from: Granitecosmos on November 30, 2017, 07:08:20 PM
How to measure a killzone? Why, that's easy; by kills, of course! Well, by "downs", to be more precise. The game already can track a pawn being downed or killed. All we need is to give this yet another value and assign it to the map. This is where my idea comes in. Let's add a new value to every cell on the game map. Let's call this value "heat" for now and should be zero by default, as well as zero for minimum value too. For performance reasons the game should keep track of the cells having non-zero heat to prevent the game from trying to update all the tiles all the time. (...)

You would be adding an entirely new value to every single cell of the game, that you would just use a few times per raid or may not even get to use ever (no killbox designed). That's a very unbalanced set-use ratio.

I on the contrary would just set a new variable per raid, a 2D vector containing the place where the last raider died or got downed. When a new raider dies compare distances and timeframe. If both (time of death and location) are too close to each other, start getting suspicious.

After three or so raiders die this way, make the rest rethink their tactics. Either hang around waiting for you to come out of your bunker,  call in for a Siege, or just give up and next time use drop pods.

To make sure the game gets it right you could check that the raiders actually die from a player enemy and not a random Manhunter, or an event from Sometimes Raids Go Wrong.

I'd like the concept of Raiders capable of learning. Next time they could focus on armor and/or one hit-kill weapons to try and break your killbox quickly. Maybe cycle through a few different loadouts or AI sets.

Granitecosmos

Quote from: Eddlm on December 21, 2017, 08:59:43 PM
You would be adding an entirely new value to every single cell of the game, that you would just use a few times per raid or may not even get to use ever (no killbox designed). That's a very unbalanced set-use ratio.

Quote from: Granitecosmos on November 30, 2017, 07:08:20 PM
Let's add a new value to every cell on the game map. Let's call this value "heat" for now and should be zero by default, as well as zero for minimum value too. For performance reasons the game should keep track of the cells having non-zero heat to prevent the game from trying to update all the tiles all the time.

...

This is where performance might be a problem and why the game should have a list of tiles that have non-zero heat so the game can just skip the other cells.

Here's how it would work:

  • Map generates. Every cell is given a heat value of 0. Game logs all non-0 heat cells (which is zero at this point).
  • A raid happens. A raider gets killed/downed on the map. Game assigns heat value to that tile and any nearby tiles for a set radius. This code is already in the game; explosions are handled in a similar way. Then the game adds the coordinates of the updated tiles to a cache.
  • The daily heat update arrives. Game looks for the tiles in the cache only and decreases their heat value. If a tile's heat value reaches 0 the game removes it from the cache. The game can already do this as well.

The beauty of the system is that it only updates tiles that need to be updated.