PvP Game discussion

  • @dissi

    But this is not the problem, the problem is more the ease they get for "resetting" the timer. I'm fine with defending a room from being taken over for 14 days. I'm not OK with 13 days of invested time being reset in 1 tick.

    I strongly agree with this, it took a lot of effort to make that progress on the downgrade, doesn't seem fair to be able to wipe it out so easily.


  • Dev Team

    Problem is that you still got about ~6 days of downgrading to do on a RCL 8 room.

    Why is this a problem? A lot of Screeps players only check their colonies once a week. Such a player may have spent many days to upgrade this room to RCL 8, why do you want him to lose it in a single moment?

  • @Steeler, You have pretty easily rebuild those rooms you lost, even though you where offline during the attack. That's the main point, there is no real way to take over a room without completely wiping a player. We failed to get all your rooms, since we ran out of boosts. Everything we did to clear those rooms is pointless, since you can easily retake them, but getting them down to 0 is pretty much impossible. Yeah we could have used claim parts to attack the controller, yeah we could have used nukes, but that is pointless for taking over a room. You can still send attack creeps to that room, defend against mine while building a terminal and building towers with it to get a quick defence going in that room. Plus you only have to do that for 1000 ticks and the attackers would have to do pretty much the same, but without a terminal, without towers and for 150000 ticks for just a single level.
    The main reason for that statement was that even if you weren't online for a long time, as long as we don't get every single room you can easily prevent losing any room. Or, in other words, its not possible to take a single room from a player if he doesn't want to lose it, without wiping said player.


    @artem, its insanely balanced to the defenders favor, causing it to be unbalanced. I get the idea that the only goal this game has is reaching the number one spot in the ranking. There is currently no point to attack a single room of another player, unless you're prepared and capable of wiping said player. Even if you manage to completely wipe a room and destroy all of the other players structures, it doesn't downgrade to lvl 7 for a week. (well, ok, less if you use attackcontroller creeps). If the defender has a single hour, he can reclaim it easily, causing possibly 7 days of progress to be instantly removed. I don't mind it taking 2 weeks or so for the "domination" to unclaim/transfer ownership of the room, as long as that progress isn't instantly stopped. If I want to prevent myself losing a room thats been wiped I can just send a massive army to keep the room clear for just 1000 ticks. There is no way the attacker can spawn enough creeps in time to defend against that, thus the attacker will lose all progress he made on downgrading the controller within a single creep's lifetime.


    Again, we don't mind it takes a long time to get a room. Rooms shouldn't be easy to lose, even if you're on a holiday or something. What we do mind is the enormous amount of energy and boosts you need to commit to get a room down to 0, while the defender can undo all of that within a single creep's lifetime. Taking over a single room from a player is impossible, you have to wipe the entire player to get it, since he can then no longer rebuild that room (or he respawns, unclaiming said room instantly). The attacker has a constant and pretty big drain in his energy to block a room, whilst the defender only has small short burst of energy needed to keep the room. No way the attacker can prevent a room for resetting if you send 8 fully boosted creeps. The attacker probably can't even spawn a counter fast enough in those 1000 ticks, let alone spawn, move, attack and reblock the controller.

    The changes propose on this thread sound pretty good. Building up a "block" counter like a reserver would give the attacker time to attack the room again, before the defender can reset the entire progress. Downgrade is good for inactive players, not for attacking. With the blocking you both have to work to either reclaim the room or get it down.

  • Culture

    >>Why is this a problem? A lot of Screeps players only check their colonies once a week. Such a player may have spent many days to upgrade this room to RCL 8, why do you want him to lose it in a single moment?

    It isn't I encourage it. The downgrade process being reset in 1 tick is the thing that seems off. Here is a small example of why I think it should be revisited:


    Player D attacks player X
    Player D is online 24/7 because he has no life (me)
    Player X is online 2/1 because he has a life (the guy I attack)

    Day 1: Player D starts an attack on Player X

    •  Player X doesn't have time and thinks "I'll check this weekend"
    •  Player D is trying to get through the walls but they're quite high level walls ( 200 million )

    Day 2: After 24 hours of sustained attack Player D breaches the wall and demolishes all buildings. The timer starts to downgrade.

    • Player X still knows something is up but has no time
    • Player D start by placing a defensive squad around the controller to prevent reupgrade

    Day 3: 24 hours of downgrading have been ongoing, only 100k ticks left!

    • Player X still not online
    • Player D is happy, no attempt has been made yet to claim back controller

    Day 4: Same as the day before, 50K ticks downgrading left

    Day 5: Player D has "work" day today and can't be online / fix bugs / alter code

    • Player X has time, sees attack squad, performs a single attack and does 1 tick of upgradeController after keeping the room for 1k ticks.

    In this scenario in the end player D spent about 4 full days of attacking, which was negated in maybe 1 hour by Player X.


    This puts a HEFTY burden on the attacking player. A way to to downgrade controllers is not enough. If an atatcker could attack a controller for 4 days, it should take the defender at least 2~4 days to get back to the old levels using the same effort. The immidiate reset to 150k cooldown for RCL8's seems off.

    Possible solutions:

    • attackController mechanism which allows for "damage" to controllers. This can be repaird by doing upgradeController (hits / hitsMax like walls, but for ControlPoints)
    • allow buildup of blockedController time to at least 50% of controller tick downgrade levels (150K ticks can be blocked to 75K ticks). The defender should also perform attackController to remove said blocked property, maybe even twice as fast. 1 tick of attack on defender = 2 ticks off of the blockedController property.
    • allow the attacker to build up a structure over the existing controller which locks down a controller, and has to be attacked by the defending player, can be build up like walls

    There might be more solutions to this problem, but time-wise compensation seems more elegant.

  • Culture

    I tend to agree with qzar / dissi on this. Presumably, if you make a concerted attack against another player's room, your goal is to remove that room from their control. From a balance perspective, I originally thought that the stage where you're attacking a fully built room would be the most costly in terms of resources / time spent, but unless you wipe the player, the downgrade phase is far more costly, both in terms of resources / time and in terms of lost progress if there's a short lapse in your offensive push. That seems backwards.

    To look at it another way: let's say you have a GCL 15 player you want to attack with no allies to help them. All of their rooms are pretty close together, reachable by you, and have comparable defenses. Will it cost you more resource / time / effort to attack one of their rooms and push it down to RCL 0, or to attack all 15 of his rooms and remove his creeps / spawns so he can't rebuild? Assuming the player decides they don't want to lose that one room, this is not an simple question to answer, and that seems really silly, that it might be less expensive to wipe a big player than to take one room from them.

  • Dev Team

    The point of long downgrade timers is that you have to not only implement a burst attack (or more likely exploit some bug in the defender's code), but also prove your superiority of holding this room for some time in order to take the room from him. Otherwise it becomes too easy to steamroll a player with a simple defense glitch that he is not able to fix in the next 2-3 days due to lack of time. It is a much more dangerous aspect for Screeps player base than the relative lack of satisfying PvP (it's a programming game after all, not CS:GO; also, wait for arenas).

    The defender/attacker balance could be fixed by signficantly increasing the upgradeBlocked period from 1K ticks to X ticks, what do you think is the appropriate value?

  • Dev Team

    allow the attacker to build up a structure over the existing controller which locks down a controller, and has to be attacked by the defending player, can be build up like walls

    Looks like a nice skill for power creeps.

  • I can get on board with room attacks not being the central focus of screeps and it not being a PvP game in general. PvP isn't completely absent, it is just possible to prevent losing rooms if you have adequate economy and defense code. It doesn't even have to be particularly complex, the main prerequisites are boosting and tower-refilling. For nuking situations, the economy that would support out-ramparting a nuke is also necessary. This is enough to provide a reasonable challenge to any player without being overly difficult. If a player is able to meet that challenge, longevity in screeps is the reward.

    Players put a lot of hard work into their empires. It seems reasonable to give them the chance to guarantee they won't get wiped out. 

    The Arena does sound like a more fun way to PvP. You don't have to risk everything to show off your coding skills. There will still be a place for room-attacking, but I'm guessing this will be a more satisfying way to get your PvP fix.

  • Given the fact that you can't eliminate other players who have made the necessary preparations, it definitely makes sense to have your rivalries be friendly if at all possible. Talking like you are going to completely wipe out another player is just likely to be awkward when you can't actually do it. I've definitely had my fair share of contests with other players, but I've always done my part to try and make sure it is on good terms. Having a lot of negativity toward a player that you will likely be interacting with in a long time is just going to be fatiguing after a while.

  • @Artem: With only increasing the upgradeBlocked period you still have the "hard" reset. To have it balanced from the attackers perspective it would have to be 24 hours (20k ticks) at least, and then it becomes unbalanced from the defenders point of view. Therefore the hard reset just needs to be revised. Adjusting this value can't solve the issue.

  • Culture

    The general problem lies in the most expensive resource in screeps: time.

    If I spend 6 days downgrading a room to nearly level 7 it seems reasonable that the defending party also has to spend 4~6 days negating the damage you've done.

    I think a flexible upgradeBlocked should be in place, one you can build up with "attacker creeps" and one you can tear down with defending creeps.

    Something like creep.blockControllerUpgrade("some controller target");

    I think the maximum should be the amount of ticks a controller has left before downgrading, meaning you have to be there again when the downgrade of the controller is complete.


    Timeline of events example:

    1. RCL 8 room breached, 150k ticks to downgrade commences
    2. Attacker sends in controller-attacker creeps and starts upping the blockedUpgrade counter
    3. RCL 8 with 51K ticks till downgrade can be "blocked" for 51K ticks
    4. RCL 8 downgrades to RCL 7, the blockedUpgrade counter is reset to 0
    5. Attacker has to send in new upgrade blockers. Defender has to redo the whole RCL 7->8 grind.

    This also adds a nice "countdown until action" as the ticks close to leveling down become more significant, as the blockedUpgrade counter and ticksToDowngrade are close to 0. Battle ensues! (if you really want that room)


    It creates more fixed points in times on which people can act. Both attacking and defending players have a say in this, and the RCL 8 timer allows for 6~7 days of action/programming. The next 7 levels also allow for this mechanic to take place.

  • @artem, Adjusting the value would be a step in the right direction, but doesn't solve the core issue. The point is its easier to wipe a player then to take just one room. Like you said, the long timer is to give the defending player a chance to retaliate and retake the room. That part is something I fully agree with. However, right now it takes something like 2 weeks to get a room down, and if the defender has the room for a tiny fraction of that time the attacker need to restart completely. So the result is that if its a relatively small player you just wipe him/her from the game completely. Then the attacker has the option to "abuse" bugs in the defenders code. If you destroy just one room he can just watch the replays, fix the bugs, then retake his room. So, if you instead destroy the player completely, he has no chance to retake the rooms at all. This option is way way cheaper then taking a single room. Why is taking one room much harder then completely destroying a player? Like you said, attacks can be done in bursts. Every defence has at least 1 or 2 bugs or things the player has overlooked that can be "abused" in the attack. You can wipe a relatively large player within days, sometimes even hours if his defence has a crash or large bug. That is way more effective in time, resources and effort, when compared to taking a single room. If taking a single room is easier, I don't think we'll see player wipes all that often, since the goal of getting a certain room is achieved. We'll probably see some more localized battles for a few rooms, while you can still have large player battles if there is a conflict between the 2 (or more). 

    That said, screeps is profiled as a strategy game. Attacking other players is (to me at least) a core mechanic in strategy games. If you can't solve an issue diplomatically, you can threaten with, or use force. Currently that force is either wiping a player, or having no effect in the end. What I would like to see is that its easier to take single rooms, but way harder to completely wipe a player.

  • I don't have any suggestion right now, but I would like to emphasize what heggico has said. 

    > What I would like to see is that its easier to take single rooms, but way harder to completely wipe a player.


  • I think a three fold change is in place. 

    1. the Root Controller - this will make a big difference as it makes the RCL level "less" important in a single room.

    2. When you block an upgrade, it should reset the RCL progress to 0 for the level. So if a creep comes in with a claim part and attacks the controller That controller is set to 0 progress on the current RCL level.  This is important because it gives a "reward" to the attacking creep. Even if you don't loose the room, you have made it weaker. Yes, at RCL 8 you didn't really change anything, but at every other RCL level you have slowed down the defenders progress in that room.

    3. controller.upgradeBlocked should be cumulative. Every time you attack you should add 1 to upgrade blocked. This means that for all the time and energy spent to block a controller, the defender now needs to hold the room that long to get it back. The timer should start at 0.


    I think the root controller change helps because it makes the RCL of a single room less important. The reset of progress on the current RCL level is nice for slowing down people that are not RCL 8 and are expanding aggressively. By having to do the RCL level over again (specially ad 5-6-7 levels) the attacker is really slowing down the defender. This is important, as it is the "minor" win. No matter what, for a small investment, you can at least slow down an opponent. So failure to defend your room = takes longer to get to the next RCL level, but it's not a direct setback. 

    What I am getting at with number 2, is that it gives a defender a reason to defend instead of accepting a wipe and rebuild. The reason is minor, but important enough. Specially if the defender is trying to expand.

    Then with number 3 the attacker has the ability to make the defender hold a room for as long as he has held it. If I spend 4 days holding a room, you should have to spend 4 days holding a room to get back up to 100%. With the controller blocked the defender can still build, and still defend, but just can't safe mode or upgrade. This means that a defender would need to take a room back, control it, and hold that room for a length of time before he started building RCL again. The attacker would need to keep up "some" kind of prolonged attack, to make sure the counter didn't reach 0, but neither side gets an instant boost. 

    If the defender takes back control of the room seconds after the attacker goes though, no big deal, they rebuild and pickup where they left off. If the defender takes a week to regain control of the room, then they can still rebuild, but they can't upgrade their controller or safe mode till they have proven they can hold that room for a while. 


  • Culture

    Here's my thought-

    After 1500 ticks of "not upgrading" the controller have the downgrade timer actually remove a number of control points (say, 100) from the controller every tick. In other words make it so you have to "sustain" the controller, and if you don't you lose actual room levels.

    So, for example, if a room is at RCL 6 and gets attacked by another player to the point where the owner can't upgrade the controller, the controller timeout should begin. Once it reaches zero (from 1500), each tick would result in the controller going down. Since there are 1,215,000 control points to get to RCL6 a fully upgraded RCL6 room would take a bit over 10 hours until enough control points disappeared for the room level to drop. An RCL8 room would take almost four days to drop to RCL7.

    The real benefit to this is that the attack *means* something. The defender doesn't get to spend a single energy to reclaim what was lost- they have to actually rebuild their controller back up. This means if an attacker is beaten back they can attack again from a stronger position (which is how most games work). It also scales to the room size- an RCL8 room will be much harder to take than an RCL6 one.

    You can still keep "attackController" and just have it knock those points down faster.



  • Hello everyone,

    I've refrained from posting so far in order to gather my thoughts on this controversial subject.

    After careful consideration, I would suggest the following:
    1. Remove safe mode from high level play (eg if a user has > 5 rooms no safe mode)
    2. Implement a costly way to disable rooms

    The suggested domination mode is too complex and will be difficult to balance.I would suggest the second proposal of changing the upgradeBlocked and adding a defendController

    Attack controller should:
    1. Completely disable use of the room while the upgradeBlocked is in place
    2. Allow upgradeBlocked to go up to 20k ticks

    DefendController has the same requirements as attack controller (15 parts) and decreases the upgradeBlocked by 1. Alternatively this can be balanced by lowering the requirement for defend to 10 or 5 parts, making it easier to cleanup an upgradeBlock then to enforce it.

    Please make combat between big players more dynamic.

  • So, since this discussion has died down a bit:

    Today I wiped KalmanRobert. Why? I pretty much wanted only one of his rooms. I had wiped said room including surrounding ones. But I didn't wipe him completely at first. He expanded into another block and I let him live since I had no interest in that block. That would have meant I had to wait nearly 2 weeks for the room to decay before I could take over that room, but I knew that and was waiting for that. In the mean time he rebuild those rooms. So this time I wiped him completely. Why? Because sending 2 additional creeps to destroy just one extra room is a hell of a lot cheaper, easier and faster then sending creeps to continuously attack the controller. 

    Is it really intended that when I'm able to wipe a room, and thus bypass someone's defenses, to have to send very expensive creeps for a week or so in order to claim a single room? If I'm able to wipe a player but don't do so to give a player a chance, then I'm certainly capable of wiping the other rooms as well. If I choose not to, I have to wait 1 or 2 weeks before I can take those rooms. Which would be fine, however if I send 2 more creeps and wipe that last room as well, I might only have to wait until he decides to respawn. Since he'd be demolished completely I don't have to worry about him rebuilding either.

    So, those rules that prevent a player from quickly losing a single room caused him to lose all his rooms. That doesn't seem right does it? It certainly didn't for me, so I didn't wipe him at first.

    I get these methods are in place to prevent people from losing a room quickly. That's good. But the current methods makes it easier to completely lose every single room instead of just that one. Is that really intended?

  • A bit late to the party, just some thoughts from the defensive side.

    As most of you might know I have some months getting a lot of rooms destroyed (but not many rooms unclaimed) history. Also from the perspective of a player not yet fully in the mineral age, but fully automated.

    Given equal attacker and defender, as soon as the defender looses a room, they have a disadvantage, one less room for resource supply and the need of building up the room again.
    Getting the room back to be a reliability is hard. The attacker showed already that they are capable of destroying the room. Now the structures needs to be build up (which can be prevented in multiple ways), which is expensive. Also the walls are broken down. So you have to send at least the same amount of fighting creeps as the attacker, plus something rebuilding the room.
    IMHO as soon as the last spawn in the room is destroyed it is a clear advantage for the attacker - Just for maintaining the status of the room.

    So, I guess, the main point of this thread is: How long should it take to have a room get unclaimed by itself, how much can you speed it up and how easy should this be prevented.

    To be honest from my perspective I can't judge if the current system is unfair. What I have seen so far:

    - pretty successful and creative approaches, usually blocking the entrance to the room or the path to the controller, combined with attacking the controller. Maybe some attack on the rooms which are sending creeps, to keep them busy, not to kill the room. (Usually smaller players with less resources)
    - the attack or resource approach: Destroy other rooms from the player until the actual room downgraded, without a proper attempt to actually prevent or speed up the process (from my experience, mostly used by the bigger players or alliances and less successful)

    I didn't do proper attempts to prevent controllers from downgrading, just sending a creep with some energy worked out for the second case. For the first case I usually only saw the replay and I'm excited for the next to try the approach and if I can find a way to come around their attempt to defend the downgrading controller.

    Maybe I'm missing the proper fights around room downgrades. Did you really properly tried to get the rooms and not only be disappointed that the counter was back at the beginning after a night of sleep without having defense in place.

    So the impression I got a bit is: Fighting is a quick (some hours maybe some days) thing and (at least before the world war) most people are surprised that just killing the spawn is not a win.

    IMHO as soon as the room is destroyed the attacker needs to show their 'defensive' skills, which is not necessary a resource fight. You just have to snipe the creeps with the WORK parts and a properly timed attack on the controller does wonders.

    To force a mind change for the situation, I think attacker should be somehow motivated to defend that room, without wiping the other player. Just as an idea: A couple of days ago on slack there was a discussion about, make structures belong to the controller owner, so if you are able to claim the controller, you own the structures - maybe if the defender respawns all structures should be destroyed - not sure if it is motivation enough.

    If I had to vote for a suggestion made in this thread, maybe QzarSTB last edit: 'Block' Controller, preventing upgrade and attack on the controller, can be build up, can be broken down. This introduces more complexity to handle both sides. Could be my wrong impression, but I think the current complexity is not handled by the players instead usually solved via brute force (wipe the player). I doubt that introducing more complexity will help so much. Same story here from heggico, I could build up the 'Block' Controller and it will take x amount of time, or I wipe the other player and will get the room much quicker.

    Most of the other suggestions fall for the same problem, you could do X, but you could also wipe the other player, K, will wipe them.

  • I would like to revive this thread, so I will what I understand from all comments so far:

    * It is easier to wipe player than to take single room (and thus big players are de-facto immortal)

    * It should be easier to take single room than to wipe player

    * 2 week holding by attackers is not fair against insta-reset by defenders

    * It shouldn't be more complicated

    * One 'correct way' of waging war shouldn't be enforced

    * Rooms shouldn't be steamrolled (even against 'few hours a week' player)

    * Is screeps fully PvP-based strategic game with conquests (part of community) or semi PvP-based sandbox game with PvP arena fights (Artem)?


    Also from another thread about SWW1 we have learned that there are various playstyles, where "Culture is a lighthearted civilized collection of city states (Greek), TK is a barbarian horde (Germanic) and SUN is a militaristic empire (Roman)". And of course each of these playstyles would prefer different attacker-defender balance. I personally advocate for...

    * more dynamic wars and against immortality, where single rooms change hands casually but players respawn rarely. For me this is the first beauty of screeps - survival in diverse universe.

    * perseverance of player diversity. For me this is the second beauty of screeps - survival in diverse universe.

    * simplicity. I think it is critical to ease automation and make everyone better at survival in screeps universe.

    * wider strategic and tactical options. I think it is critical to make screeps universe more diverse.


    I think that root controller won't solve this. I really liked the idea by @Dissi that creates more fixed points in times on which people can act (fun), and by @tedivm that attacks mean something (simple, easier to take single room). Here is my combined proposal that tries to take the best of both:

    const DECAY_OFFSET = 1500;  // Some ticks to wait since last upgrade to start decay controller
    const DECAY_AMOUNT = 50;  // Some amount at which controller loses points per tick
    const DECAY_THRESHOLD = 0.25;  // Some percent at which decay doesn't decay at decayAmount rate but drops to 0 and lowers RCL.
    const CONTROLLER_LEVELS.8 = 32805000; // some amount RCL 8 controller continues to accumulate points

    Example #1: Attacker wants to conquer fully filled RCL 8 room and destroys everything in it. Defender retaliates DECAY_OFFSET/2 ticks later, kills attackers, puts 1 energy into controller and DECAY_OFFSET is reset, no controller points are lost. Attacker successfully attacks again before defender builds defenses. The rest of defender raids with intention to reset DECAY_OFFSET are unsuccessful so he prepares for a big battle several days later just before DECAY_THRESHOLD will be reached. Defender successfully kills attackers, and starts building both defenses and upgrading controller to buy time. Attacker is aware of opportunity to burn DECAY_THRESHOLD amount of controller points, so he calls in friends, kills defenders, waits until DECAY_THRESHOLD is reached and room drops to fully filled RCL 7. --- From that point on, everything repeats but with shorter periods. Both sides are motivated to fight for the room and are rewarded for that. Simpler, more balanced and motivating, and taking a room becomes easier than wiping a player.

    Example #2: Underdog is up to bite a big player. He watches one room that just turned RCL 7. Underdog prepares a high burst army and waits until that RCL 7 gets just below DECAY_THRESHOLD controller points. Then he launches the attack, luckily gets through and after DECAY_OFFSET instantly burns all constroller points and drops room to RCL 6. Big player soon after gets army together and easily regains room. --- Well timed attack can cause big costs so that even underdogs can at least hinder big players. More fun.

    Extra ideas:

    * Make controller to drop energy at DECAY_DROP rate as it loses controller points, and drop a proportional pile when threshold is triggered. Could also be intentionally used by defender as "emergency funds" in case he runs out of energy under siege.

    * Make creep.attackController part to fasten the process.

    * In case of respawn don't release ownership of rooms but transfer ownership to dummy player, so respawns don't free up rooms instantly. Probably with -1 RCL penalty to prevent respawn spam.


    What do you think about this?