PTR Changelog 2019-02-01: Power Creeps


  • Dev Team

    @davaned Imagine you have 10 rooms and 10 power creeps. Their cooldowns are designed in a way that one PC can maintain one room or a little bit more. Now you have to make a choice: would you use only 3 powers in every room, operating only 3 types of structures, or use all available powers, operating all structures, thus producing higher economy efficiency but with less ops efficiency.

    It's very unlikely you will be able to operate all desired structures in every room with 5 level powers.

    Clarification: Are there any ops powers that can stack effects? Or is everything a single instance that gets refreshed.

    Power effects don't stack. If effect of the same or higher level is already applied to the object, PowerCreep.usePower returns an error. If the effect level is lower, it replaces it with the new one.


  • SUN

    @davaned Power efficiency is a tricky thing; I can't make use of all powers all the time even with an infinite amount of ops.

    Specifically:

    • Operate_Tower requires a target (or need for inefficient repair)
    • Operate_Spawn requires filling infrastructure (and a demand for more creeps).
    • Fortify is only of use in a siege
    • Disrupt_(X) ditto
    • Shield is more generically useful but I cannot see it being used whenever it is off cooldown.
    • Others, depending on economic situation and code maturity

    I feel that 'sometimes' powers like these are great powers to level to keep a creep 'ops neutral'. Even a creep that only generates ops most of the time can gain value from being level 25 thanks to powers like the above.

    Selling ops would be a good way for newer players to get credits too, as apposed to simply selling that power. So I don't expect ops to be terribly expensive. (If an op is worth more than the minerals it can generate i'll damn well sell them)

    Finally while I can appreciate that YMMV (not everyone likes spreadsheets) I like the added challenge of balancing ops use & generation with the powers I want to use.


  • Dev Team

    Update: started work on the UI.

    • Added "Power enabled" display mode to the world map.

    • Powers, effects, and their cooldowns are now displayed with the corresponding icons in the object panel:

      0_1549541867024_screenshot_powers.png 0_1549541877603_screenshot_effects.png

    Our frontend team is currently working on the Power Creeps creating and editing UI.

    👍


  • @artch The UI looks good! Only two things:

    1. Maybe show PC type in the object panel?
    2. The renewing animation seems to be only for normal creeps, not for PCs.


  • @artch The UI does look great. Love the clear powers on the screen with the CD's displayed.

    I do see the point in some cases for the efficiency. My thought process is that in most cases, it doesn't matter in what room the thing occurs. For example, I'd rather get 100% more energy in 1 room than 20% more energy in 3 rooms. Similarly, 1 observer able to see the whole world doesn't require multiple rooms. Lab processing is similar. But things like spawning etc, yeah it does make sense.

    Power effects don't stack. If effect of the same or higher level is already applied to the object, PowerCreep.usePower returns an error. If the effect level is lower, it replaces it with the new one.

    Clarification for the power stacking: It errors if you cast it again? So you HAVE to wait for it to expire to use it? This seems counterintuitive for things like DISABLE_TERMINAL, which has a 10sec duration and 8sec cd. Seems like its meant to give a buffer so that you can reapply the effect without needing that exact tick. Similarly in a number of other cases, why shouldn't I be able to refresh the OPERATE_SOURCE power whenever, rather than needing to wait for it to expire?

    Either add an override param to definitely use the power or allow it to overwrite powers of the same level as was cast, eg only errors if replacing a higher level with a lower one. IMO it's too restrictive to require waiting out the entire duration, especially on the offensive powers.



  • Right, things like disrupt terminal already sound hard to keep 100% uptime on. If you miss a tick, suddenly 300k energy can flow into a room. Currently you have to be there every 10 ticks exactly (and the race condition resolution isn't documented, same with safe mode and attackController...), which is a lot harder to maintain now power creeps have a TTL because you'll need at least two power creeps taking shifts. If the defender can push the power creep out for 10 ticks every few thousand ticks all the work it's done is wasted.

    Giving a two tick window for refresh would help a lot. Better would be to have it stacking so that if you were to cast it twice in a row the second cast would bring the disruption up to 12 ticks, and with each subsequent cast if you did it exactly on 8 ticks you could gain another 2 tick buffer. That way the defender doesn't just have to get momentary control to suddenly deliver everything he needs into the terminal.



  • Maybe each application of disrupt terminal incrementally reduces the maximum amount of resources that a terminal can receive in a single transaction, and this takes time to wear off. After enough consecutive disrupt terminals, the maximum it could receive in a transaction might be just 1000 of a resource. But each tick where the terminal isn't disrupted it increases, eventually returning to the 300k capacity limit.


  • Dev Team

    @davaned said in PTR Changelog 2019-02-01: Power Creeps:

    allow it to overwrite powers of the same level as was cast, eg only errors if replacing a higher level with a lower one

    Yes, this is how it should work, sorry, my mistake.

    Regarding DISRUPT_TERMINAL, we're going to implement it so that it blocks withdrawing from the terminal rather than incoming transactions.



  • @artch Perfect, that makes more sense. Glad it works that way!

    In terms of the terminal implementation, I'm less excited about that. You're disincentivizing using the terminal as storage, which as the other main storage location for a room isn't a great experience from a user side. Many players do an energy/minerals split from a code complexity standpoint.

    However, I do see why its more effective on offense that way, because it isn't negated by missing a single tick and getting a vast dump. Difficult choice. Might be better to just do both and render terminal inactive entirely. Power creeps are definitely pretty challenging to get right! Thanks for all your efforts and for engaging with the community.

    Edit: thought crossed my mind that dismantling terminal would let you access the resources, though at an obvious cost. Just to consider.



  • Limiting withdraw makes sense - makes it a lot less of a "burst" thing - sounds good to me.



  • Would it make sense to allow PCreeps to renew themselves via power they're carrying (consuming it)? This would allows a single operator to stay in or near the room for an entire siege.



  • @deft-code Hm, it's a possibility. It could be an expensive use of power. Like 100 power * PC Level. Doesn't cost you energy to process, but its permanent power lost.

    • Another option is to put a "renew power creep" ability on one of the power creeps types. That could cost some power, and it would help play into the interesting multifaceted power creep compositions.

    Oh interesting thought: Now that PC require renewal via Power Spawns, possible siege mechanic would be to have OPERATE_POWER_SPAWN able to shut down power spawn from spawning/renewing PCs. Then there is a timer on how long they can bunker up with PC's since they will have to run for another room/power bank.

    Also, there are so many powers right now. I'm still in favor of having some of the weaker eco/offensive powers get bundled into one similar to work parts being able to build and dismantle.

    EDIT: Also, another power creep power that could be awesome would be the ability to DISRUPT_REPAIR (possibly as an AOE) to prevent any structure from being repaired. This would be a great counter to the wall/rampart strat of ignore the attackers and just dump more energy into it.



  • @davaned said in PTR Changelog 2019-02-01: Power Creeps:

    Also, another power creep power that could be awesome would be the ability to DISRUPT_REPAIR (possibly as an AOE) to prevent any structure from being repaired. This would be a great counter to the wall/rampart strat of ignore the attackers and just dump more energy into it.

    I'm not experienced with this at all but I think it's difficult to keep repairing ramparts/walls with a disrupted terminal.



  • @duckymirror Agreed, it's certainly a lot more difficult. Although having ~2.5x current energy income via power creep boosting sources would certainly help ease that. It'll be super interesting to see how the meta shifts. 🍿



  • When defending in a siege renew vs respawn won't be a big difference. In either case if the PowerCreep or PowerSpawn is destroyed the defense is compromised. When a PC dies of old age it doesn't receive a cooldown.



  • I wanted to play with PowerCreeps on the PTR but the StructurePowerSpawn.createPowerCreep method is missing.


  • SUN

    @davaned Walls out seems to be a becoming more viable approach in order to protect the sources; the most dangerous unit (power creeps) can just duck into a room for a single tick anyway.

    Ultimately at the highest level of attack/defence I expect more complicated strategies such as moving towers and multi-room spawning of defenders (for flanking) to be practically necessary.

    But I hardly take part in combat so what do I know.


  • Dev Team

    @deft-code There is no such method in the API. Use PowerCreep.create and then PowerCreep.prototype.spawn.



  • Why are power creeps spawned on top of the power spawn? This is inconsistent with the way normal spawns work. Is there a plan to make normal spawns work like this in the future? If so, then I'm probably in favour. If not, then shouldn't power spawns work the same way?

    Can the power creep move back on top of a power spawn after moving off it?


  • Dev Team

    @systemparadox Because of technical limitations how power creeps are implemented. They exist in the cross-shard database, and main process is used for their spawning rather than processor, which doesn't have access to room terrain and all objects.

    Can the power creep move back on top of a power spawn after moving off it?

    No, it can't.