PTR Changelog 2016-09-09


  • Culture

    Don't forget if your code errors out your code can't activate safemode



  • @dissi not neceserily. if the bug is not a syntax error, but for example calling a non object and its AFTER reinforce code checking, it will get executed. For example I can shove 

    Game.getObjectById('abc').memory;

    At the end of my main() and my empire will work fine, despite erorrs being thrown. So putting that as first thing in main will safeguard against non-syntax errors.



  • Ugh, I really feel this change will be a big disadvantage for 'intermediate' players. We, the group at GCL 4 thru 8 that don't have reliable access to Ghodium yet (Which would be the bigger part of the active, subscribing, customer base I assume).

    - Our sectors will see a bigger influx of new and respawning players that will be even more tedious and slow to clean out than they currently are. I don't see why a respawning player would spawn right next to a top 20 player, so it would be 'us' that gets the respawners, meaning less space to expand and even more waiting than we experience now.

    - I can see lots of double boxing accounts popping up, just to grief someone. Base code to get a room up to RCL 4 is easy, which would entail 4 safe mode stints if you aren't able to time the window. Also, the 'free' 10 CPU limit will be plenty to achieve that.

    - In the end 'we' will end up taking even longer to secure reliable Ghodium supplies, while the current top players will happily `generateSafeMode` away and Ghodium (and perhaps ingredients) prices on the Market will rise above the ridiculous, making the game pay-to-win to stay afloat with tokens.

    The game is already so incredibly slow, and I feel this change will only add to that feeling in multiple ways. I can see how that would be good for subscriptions with everything taking even longer, but perhaps there will be an even bigger group of players that can't be bothered anymore and move on to pick up their lives again.

    I guess we'll have to find out how it turns out in the end, but at this moment I'm not too thrilled with the prospect of this change.



  • But you can buy the ghodium, or work with your neighbours and get it just fine, without their help, especially since you don't need much of it for either small back-up supply of boosts or reinforcing room (and you can get credits from selling your own stuff to players/npcs). It really isn't impossible or effect os some conspiracy theory that you don't have it up and running. But that is not to diminish the problem of large empire players, and lack of incentify for them to kill one another, just that it should be handled in separate topic as it's a much larger issue that need a large and separate solution. And blackballing something that is actually good for smaller players because it will also help the big ones doesn't seem like a good precedent to set.

    And this is helping new players, especially boost-less players. Now if a boost-filled player will decide to take you out, he can do so quickly and swiftly, and unless you have monster walls it will be so swiftly that even sitting in front of PC won't save you as you won't code defences fast enough. With this you will have hours to get to pc and code in basic creep defence system which throws a massive wrench even in attack of boosted creeps, giving you a fair chance to repel it and continue fighting, rather than waking up from 7 rooms to a respawn button.


  • Dev Team

    Considering all the feedback here, I think we’ll go with this important change to safe mode rules:

    Only one room can be in safe mode at the same time. CallingactivateSafeMode while it’s active in another room will returnERR_BUSY.

    This still allows all players to protect themselves from fatal bugs, but doesn’t affect the balance for high level players so much however.

    The PTR has the nice feature where you can summon invaders at will which is a great start. I think it would help if a feature like this was available in the regular screeps world.

    This makes sense actually. We’ll include this feature in the same patch.



  • Artem just make sure that those spawned invaders will not drop minerals/energy on death, that could easily turn into new improved mining ;).


  • Culture

    > Artem just make sure that those spawned invaders will not drop minerals/energy on death, that could easily turn into new improved mining ;

    You're ruining my evil plan! 

     

    In all seriousness; If you spawned em manually you should be able to kill them as well, by hand. If you accidentally broke your code during these invaders it would be really bad to have em roaming for 1500 ticks or longer.


  • Culture

    I just realized something with the invaders

    If you see non-NPC-attackers coming for your rooms, you could, theoretically, spawn boosted invaders at your walls to help you defense.

    I think it's a bad idea to add invaders to production as well, as it could be exploited heavily.



  • I was thinking of the same thing. You may be able to abuse this functionality to spawn large quantities of invaders when under attack.

     

    I would suggest postponing the integration of invaders into the production system. Too many things which could go wrong.


  • Dev Team

    This can be simply avoided by setting an inner flag that these invaders are user-summoned. They will not drop anything, they can be suicided by their summoner user, and if any other creeps appear in the room, they suicide immediately.



  • Cool.

    Sounds like a plan.



  • I don't know if I like this change.It seems like it will make the game less fun. 

    Right now I get a lot of warfare between novice players. Sometimes I win, Sometimes I loose. 

    I can see this being a good thing, when I expand into a new room, I can use safemode, to get the equivalent of noob walls for my new room.

    But as an attacker this sucks. Now every defender gets an I win button. 3 or 4 of them really quickly as a matter of fact. 

    So I ATTACK then wait for 8-9 hours. ATTACK again, and maybe it works this time.  Again I can see this being kinda nice for new players to get established to a point. But mostly it makes me feel penalized for attacking.  Now instead of having to devote 1-2 hours to wiping out someone I have to commit 8 hours of time. Then what. I can attack them when I'm not playing?  If I start an attack when I get home from work at 6pm then they smash their I win button, I have to wait till around 4am to attack again? When do I get to sleep. Ok so I go to work, come home, and nope 6PM again, I have to make them smash their I win button again. 

    That's just to much of a time investment. 

    Maybe smaller times with more activation, and smaller cool-downs. 

    Like 2000 ticks, 6000 tick cool downs, and you get 5 per level, or one per 10,000 ghoqium (larger empires shouldn't need to rely on this very much).

    Then new players get nice noob protection. And established players get a "oh shit" button, but attackers don't have to wait till they should be in bed to continue an attack. 

     



  • That isn't a win button, it's a pause button in essence. And your complain seems to be basd on principle that while you, the attacker, must be online in order to attack, defender shouldn't be granted that luxury and instead be wipedout in 2 hours? Why won't you code your attacks to go automatically as timer expires? Of course that has has certain disadvantage of risking your entire colony and what you've worked for in hands of code, as attacking someone makes you very vulnerable to counter offensive, or offensive from someone else, and you want to be online to defend your colony when it's under attack, right?

    Then why deny the other side the same right? This is a game of code, and so far the much higher code pressure (or even entire code pressure in pre-boost realms) is on the defender, as succesfull attack can be led with literally 90 lines of code across 2 roles + manual placement of flags and minor command line tweaks. And that is just not right compared to effort required on side of defender to compensate for it.



  • Well as I said, I do like parts of it. But I don't think it fixes anything.

     

    if(StructureController.safeModeAvailable && room.controller.findInRange(FIND_CREEPS, 25) > room.controller.findInRange(FIND_MY_CREEPS, 25)) room.controller.activateSafeMode()

     

    There, 1 line of code, defeats the most awesome and complicated super duper attack squad. Provider the person writing that awesome code has a job or school or something other then screeps going on. ..... More to follow.



  • So as I was saying, 

    My problem isn't with the fact that the I win button exists. It's with the fact that any player now has a unbeatable defense, with super low hanging fruit. A shorter duration would fix that, or at least make it better.

    You want to talk about code, then here is what I have. 

     

    8 or so tactics, with different creep bodies for different goals. 4 of which work well to hit common pitfalls in tower defenses. the other 4 are more specialized attempts that I don't have working right yet.  7 or so classes of attack creeps like "healer" or "tank" that each use each tactic a little differently. So 56 code paths (to start with) for probing, attacking, and wiping a room. 

     

    On the defense side, I have 20 lines of tower code, and 1 "responder" class that does kiting, or brute force attack.  In all, 3 code paths. Now I can improve that to the point of being able to defend a player like Dissi for week, with just one line of code.

     

    And to make matters worse, the attacker now has to spend the resources to break my crappy defense 4-5 times.  So 1 line of code, makes the attacker, online or off spend 4-6 times the resources to attack me.

    What's worse, is that a more established player, can just feed his controller Gohdium while I can't do anything to stop it. I mean there are entire GCL levels where you won't have/make enough to actually produce/buy ghodium. So how am I supposed to defeat more established players?    



  • Thanks for listening to the community and coming up with a good compromise! I think Screeps has the best devs 🙂

    I tested defense code along with another player today and we both found bugs. It is bound to happen for code that isn't easy to test, so it will be great to have more tools to do that.

    Here is the history view of my defense test: https://screeps.com/a/#!/history/E33S2?t=13608778 



  • @coteyr

    1. I think you seriously underestimate Dissi's offensive capabilities. A quick look at your empire tells me you wouldn't last more than an hour against someone like Bovius.
    2. This protection can only be activated for 1 of your rooms at a time, meaning you can always chose another room of the same player to take out once he does this.
    3. This protection has a cooldown. That means although you need to wait after it is activated, you still get a reasonable amount of time to attack.

    Looking at your current situation, this feature is most likely to help you survive when the novice area drops. Do not overestimate your capabilities. I did that a few times. I underestimated effective combat range, I thought 5-10 is the only thing I should worry about, but effective range is >20 rooms. I thought boosted healers were the key to end game combat, but did not realize the impact of boosted damage dealers, boosted tough parts etc. I overestimated the importance of nukers. So on and so forth.

    I've only been around for 2.5 months and have been proven wrong in my approach every few weeks.



  • And one more thing.

    Most often then not, effectiveness in this game is not measured by code complexity but by simplicity. Having 100 different code paths to handle offensive combat is not something to necessarily be proud off.

    How's your pathfinding algorithm? Does it handle moving 100 creeps across 20 rooms without killing your bucket? I imagine that's something you did not have to consider yet.

    Are you taking into account portals for offensive/defensive considerations? I imagine that's not something you had to worry about yet.

    Are your units correctly identifying and coordinating with allied AIs?

    How's does your system scale? Will you fit under 10 CPU per room when you have 10 rooms?

    How about minerals?

    How about boosting?

     



  • @Atavus Please don't misunderstand. I'm not saying that I should be able to stand up to a more senior player. In fact that's rather my point.  What I am trying to get at, is two fold. 

     

    1. This seems like a "good" feature, for me, the noob player. It means I get more free "noob walls". It means that as the noob player I get more time to get things setup and ready to go.

    2. This seems like a "bad" feature. There is no way my emerging code that I can not figure out yet should be able to stand up at all to a more senior, experienced player.  https://screeps.com/a/#!/history/W47S53?t=13426880 (sorry at the edge of the time line) is what I would expect. (In short _PK made short work of me) My problem stems from the fact that regardless of how good or bad my code is, I now have a one liner that makes me invincible, no matter how good or bad the attackers code is. Granted there are limitations.

    3, This seems like a "bad" feature because it doesn't accomplish one of its goals. It doesn't pause the fight till both the attacker and the defender are online. It simply pauses the fight till the attacker is offline and the defender is online. 

    4. This seems like a "bad" feature because it makes "empire wars" lengthy and tedious.  The one room at a time change does help mitigate this a bit, but lets say empire X wants room 1 and empire Y wants room 1, now instead of many frequent battles over room 1, there is at least an 8 hour cool down between room ownership changes. Instead of just waiting for the controller to reset, now you have to wait out a 8 hour timer + a controller reset.

    5. This seems like a "bad" feature because it "allows" me to "man" my defenses.  A large part of the game to me is creating a defense that can actually last through the night. Yes I will fail, sometimes comically, but in that failure is learning. 

    6. This seem like a "bad" feature because it increases the cost of attack by at least 2x. Maybe more, where there is no resulting cost of defense (for new rooms)

     

    To my code numbers, that is more just a specific argument. The idea being that "most people have more code pressure on the defending side". My defense code sucks. My attack code, while not perfect is where I have spent a great deal of time. I should feel a natural need to improve my defense code, but even now I do not. Even less so when I can thwart an attack for 8 hours with a single line. A decent single line, means they break my defenses, then I activate. With 0 cool-down in a noob zone, I can hang out in noob zones forever.  I will be invincible. I take a room, RCL to 4, I get 24 hours of free I win, unclaim the room, go take a new room, get another 24 hours of free I win.  Other's in the noob zones will have the same ability, though, so there is even more stagnation in an area that should see many tiny little battles. 

    Now all that doesn't mean that the feature is "bad". It's single good point may outweigh the 5 bad points that I see. There may be other good points that I just don't see yet. It just reminds me of EVE online's POS warfare, which, for me totally ruined the game. The game went from fun, smaller to larger battles, with fleet on fleet action. To POS timer warfare with very little fleet on fleet action. I see the same thing happening here.  Two equal players trying to "fight it out" instead sit there and have to manage Safemode timers. 

     



  • An eloquent answer. Thank you for putting that together.

    To be honest, as mentioned earlier, I am neutral on this change and do not believe it will have a significant impact.

    I also have experienced the situation as you. I have spent weeks working on my offensive code, but only have some basic tower targeting and creep code for defense. Probably spent less than a day working on my defense code. There's lots of room for improvement there, but there has been no real incentive.

    Even before this change, my reasoning was that walls and defenses are good enough to hold back an attacker for a few hours. Even if I lose 1 or 2 rooms until I get online, I prefer relying on an effective offense and mobile force that I can use to counter threats or simply counter attack.

    The benefit from an effective offense has been greater then that of an effective defense. In the words of the famous proverb: the best defense is a good offense. However, I recognize that this may be a personal approach to the subject and am willing to accept alternative perspectives.

    I still find it difficult to judge what the real impact this change will have.