PvP Game discussion

  • 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?