Power creeps is perhaps the most significant revamp of the Screeps gameplay since its launch. When in December 2015 we introduced the new game resource called “power” and announced the future system of its usage, we knew how drastically power creeps and powers would affect the game balance. This is why we didn’t rush to implement them, but we wanted to thoroughly understand and evaluate the whole picture. (Numerous other routine issues and the major business goal of the project – launch on Steam – didn’t speed up things as well.)
Now we are ready to present to you the game design document on how the power creeps system will look like. We are yet to polish and implement it in the game, so the estimate PTR launch schedule is March or April. For now, we want to discuss it with you and hear your comments. How do you think this important update will affect the game?
Feel free to post your comments and suggestions below or in this forum created especially for power creeps discussion.
Features
Power creeps may be defined as “hero units” from other strategy games. Here are some key facts about them:
- They don’t age and don’t have
ticksToLive
properties. - They can be killed, but after their death, you can respawn them from scratch at any of your PowerSpawn (but with cooldown time).
- Each power creep is unique and has its own name and a set of powers. You decide which power creeps you have, and which skills they have, through a special GUI in Overview. The API controls are not provided since obtaining new powers would be quite rare (it’s enough to log into the game once a week or even a month to upgrade one’s creeps, see more explanation in this comment below.)
- You can level up any power creep or create a new 1-level power creep by spending a certain amount of power resources from your account (see the table in the Level section below). The list of powers of an individual creep grows with each level.
- You can despawn any power creep in the GUI and redistribute its powers. But this operation takes a considerable cooldown time, from a few hours to a few days.
- Your power creeps exist in your account even when they are dead (i.e. don’t exist in the game world). You generate a power creep, name it, and then you can spawn this creep in any PowerSpawn using its name like this:
Game.powerSpawns['PowerSpawn1'].createPowerCreep('MyCommander1');
- Power creeps don’t have body parts and fatigue, they always move at the maximum speed of 1 square/tick (even on swamps), can’t execute regular creep activities. They have standard
carry
andhits
properties. With each level, the amount of hits grows by 1000, the carry capacity by 100. - All available methods are as follows:
move/moveTo/moveByPath
pickup
withdraw
transfer
drop
suicide
say
usePower
Game.powerCreeps['Commander1'].usePower(PWR_ENCOURAGE, Game.creeps['Harvester1']);
Levels
You level up your creeps manually via the GUI. Select a creep that you want to level up and agree to spend the specified amount of power resource. To calculate the needed amount of resource, the sum of all levels of your power creeps is used. The higher this sum, the more expensive it is to level up any of them, as well as to create a new 1-level power creep (equivalent to levelling up an existing creep).
Here is a preliminary table of resource usage across levels (may be changed later):
Lvl | P | Σ | Lvl | P | Σ | Lvl | P | Σ |
0 | 1,000 | 0 | 80 | 156,588 | 5,821,183 | 160 | 345,024 | 25,664,340 |
1 | 2,219 | 1,000 | 81 | 158,813 | 5,977,770 | 161 | 347,490 | 26,009,364 |
2 | 3,537 | 3,219 | 82 | 161,042 | 6,136,583 | 162 | 349,958 | 26,356,854 |
3 | 4,925 | 6,757 | 83 | 163,276 | 6,297,625 | 163 | 352,428 | 26,706,812 |
4 | 6,365 | 11,681 | 84 | 165,513 | 6,460,901 | 164 | 354,900 | 27,059,240 |
5 | 7,850 | 18,046 | 85 | 167,754 | 6,626,414 | 165 | 357,375 | 27,414,140 |
6 | 9,373 | 25,896 | 86 | 169,999 | 6,794,168 | 166 | 359,852 | 27,771,516 |
7 | 10,928 | 35,269 | 87 | 172,248 | 6,964,167 | 167 | 362,331 | 28,131,368 |
8 | 12,514 | 46,197 | 88 | 174,501 | 7,136,416 | 168 | 364,812 | 28,493,699 |
9 | 14,125 | 58,711 | 89 | 176,758 | 7,310,917 | 169 | 367,296 | 28,858,511 |
10 | 15,762 | 72,836 | 90 | 179,018 | 7,487,675 | 170 | 369,782 | 29,225,807 |
11 | 17,420 | 88,598 | 91 | 181,283 | 7,666,693 | 171 | 372,270 | 29,595,589 |
12 | 19,100 | 106,018 | 92 | 183,550 | 7,847,976 | 172 | 374,760 | 29,967,859 |
13 | 20,799 | 125,118 | 93 | 185,822 | 8,031,526 | 173 | 377,252 | 30,342,619 |
14 | 22,517 | 145,918 | 94 | 188,097 | 8,217,348 | 174 | 379,746 | 30,719,871 |
15 | 24,251 | 168,434 | 95 | 190,376 | 8,405,445 | 175 | 382,243 | 31,099,617 |
16 | 26,003 | 192,686 | 96 | 192,658 | 8,595,821 | 176 | 384,742 | 31,481,860 |
17 | 27,769 | 218,688 | 97 | 194,944 | 8,788,479 | 177 | 387,242 | 31,866,602 |
18 | 29,551 | 246,458 | 98 | 197,233 | 8,983,423 | 178 | 389,745 | 32,253,844 |
19 | 31,346 | 276,008 | 99 | 199,526 | 9,180,657 | 179 | 392,250 | 32,643,590 |
20 | 33,155 | 307,354 | 100 | 201,822 | 9,380,183 | 180 | 394,757 | 33,035,840 |
21 | 34,977 | 340,510 | 101 | 204,122 | 9,582,006 | 181 | 397,267 | 33,430,598 |
22 | 36,812 | 375,487 | 102 | 206,425 | 9,786,128 | 182 | 399,778 | 33,827,864 |
23 | 38,658 | 412,299 | 103 | 208,732 | 9,992,553 | 183 | 402,291 | 34,227,642 |
24 | 40,516 | 450,957 | 104 | 211,041 | 10,201,285 | 184 | 404,807 | 34,629,933 |
25 | 42,386 | 491,473 | 105 | 213,354 | 10,412,326 | 185 | 407,324 | 35,034,740 |
26 | 44,266 | 533,859 | 106 | 215,671 | 10,625,681 | 186 | 409,843 | 35,442,064 |
27 | 46,156 | 578,125 | 107 | 217,990 | 10,841,351 | 187 | 412,365 | 35,851,907 |
28 | 48,057 | 624,281 | 108 | 220,313 | 11,059,342 | 188 | 414,888 | 36,264,272 |
29 | 49,968 | 672,338 | 109 | 222,639 | 11,279,655 | 189 | 417,414 | 36,679,160 |
30 | 51,888 | 722,306 | 110 | 224,968 | 11,502,294 | 190 | 419,941 | 37,096,574 |
31 | 53,817 | 774,194 | 111 | 227,301 | 11,727,262 | 191 | 422,471 | 37,516,515 |
32 | 55,756 | 828,011 | 112 | 229,636 | 11,954,563 | 192 | 425,002 | 37,938,985 |
33 | 57,703 | 883,767 | 113 | 231,975 | 12,184,199 | 193 | 427,535 | 38,363,987 |
34 | 59,659 | 941,471 | 114 | 234,316 | 12,416,174 | 194 | 430,071 | 38,791,522 |
35 | 61,624 | 1,001,130 | 115 | 236,661 | 12,650,490 | 195 | 432,608 | 39,221,593 |
36 | 63,596 | 1,062,754 | 116 | 239,009 | 12,887,151 | 196 | 435,147 | 39,654,201 |
37 | 65,577 | 1,126,350 | 117 | 241,359 | 13,126,160 | 197 | 437,688 | 40,089,348 |
38 | 67,565 | 1,191,927 | 118 | 243,713 | 13,367,519 | 198 | 440,231 | 40,527,037 |
39 | 69,562 | 1,259,492 | 119 | 246,070 | 13,611,233 | 199 | 442,776 | 40,967,268 |
40 | 71,565 | 1,329,054 | 120 | 248,430 | 13,857,302 | 200 | 445,323 | 41,410,044 |
41 | 73,576 | 1,400,619 | 121 | 250,792 | 14,105,732 | 201 | 447,872 | 41,855,368 |
42 | 75,594 | 1,474,195 | 122 | 253,158 | 14,356,524 | 202 | 450,423 | 42,303,240 |
43 | 77,619 | 1,549,789 | 123 | 255,526 | 14,609,682 | 203 | 452,975 | 42,753,663 |
44 | 79,652 | 1,627,409 | 124 | 257,897 | 14,865,207 | 204 | 455,530 | 43,206,638 |
45 | 81,690 | 1,707,060 | 125 | 260,271 | 15,123,105 | 205 | 458,086 | 43,662,168 |
46 | 83,736 | 1,788,751 | 126 | 262,648 | 15,383,376 | 206 | 460,645 | 44,120,255 |
47 | 85,788 | 1,872,487 | 127 | 265,028 | 15,646,024 | 207 | 463,205 | 44,580,899 |
48 | 87,847 | 1,958,275 | 128 | 267,410 | 15,911,052 | 208 | 465,766 | 45,044,104 |
49 | 89,912 | 2,046,122 | 129 | 269,796 | 16,178,462 | 209 | 468,330 | 45,509,870 |
50 | 91,983 | 2,136,033 | 130 | 272,184 | 16,448,258 | 210 | 470,896 | 45,978,200 |
51 | 94,060 | 2,228,016 | 131 | 274,574 | 16,720,441 | 211 | 473,463 | 46,449,096 |
52 | 96,143 | 2,322,076 | 132 | 276,968 | 16,995,016 | 212 | 476,032 | 46,922,559 |
53 | 98,232 | 2,418,219 | 133 | 279,364 | 17,271,983 | 213 | 478,603 | 47,398,592 |
54 | 100,327 | 2,516,451 | 134 | 281,763 | 17,551,348 | 214 | 481,176 | 47,877,195 |
55 | 102,427 | 2,616,777 | 135 | 284,164 | 17,833,110 | 215 | 483,751 | 48,358,372 |
56 | 104,534 | 2,719,205 | 136 | 286,569 | 18,117,275 | 216 | 486,327 | 48,842,122 |
57 | 106,645 | 2,823,738 | 137 | 288,975 | 18,403,844 | 217 | 488,906 | 49,328,450 |
58 | 108,763 | 2,930,384 | 138 | 291,385 | 18,692,819 | 218 | 491,486 | 49,817,355 |
59 | 110,885 | 3,039,147 | 139 | 293,797 | 18,984,204 | 219 | 494,067 | 50,308,841 |
60 | 113,013 | 3,150,032 | 140 | 296,212 | 19,278,001 | 220 | 496,651 | 50,802,908 |
61 | 115,146 | 3,263,045 | 141 | 298,629 | 19,574,212 | 221 | 499,236 | 51,299,559 |
62 | 117,285 | 3,378,191 | 142 | 301,048 | 19,872,841 | 222 | 501,823 | 51,798,795 |
63 | 119,428 | 3,495,476 | 143 | 303,471 | 20,173,890 | 223 | 504,412 | 52,300,618 |
64 | 121,577 | 3,614,904 | 144 | 305,896 | 20,477,360 | 224 | 507,002 | 52,805,030 |
65 | 123,730 | 3,736,481 | 145 | 308,323 | 20,783,256 | 225 | 509,594 | 53,312,032 |
66 | 125,888 | 3,860,211 | 146 | 310,753 | 21,091,579 | 226 | 512,188 | 53,821,627 |
67 | 128,052 | 3,986,100 | 147 | 313,185 | 21,402,332 | 227 | 514,784 | 54,333,815 |
68 | 130,220 | 4,114,151 | 148 | 315,620 | 21,715,517 | 228 | 517,381 | 54,848,599 |
69 | 132,392 | 4,244,371 | 149 | 318,057 | 22,031,136 | 229 | 519,980 | 55,365,980 |
70 | 134,570 | 4,376,763 | 150 | 320,497 | 22,349,193 | 230 | 522,581 | 55,885,961 |
71 | 136,752 | 4,511,333 | 151 | 322,939 | 22,669,690 | 231 | 525,184 | 56,408,542 |
72 | 138,938 | 4,648,085 | 152 | 325,383 | 22,992,629 | 232 | 527,788 | 56,933,726 |
73 | 141,129 | 4,787,023 | 153 | 327,830 | 23,318,012 | 233 | 530,394 | 57,461,513 |
74 | 143,325 | 4,928,152 | 154 | 330,279 | 23,645,842 | 234 | 533,001 | 57,991,907 |
75 | 145,524 | 5,071,476 | 155 | 332,731 | 23,976,121 | 235 | 535,610 | 58,524,908 |
76 | 147,729 | 5,217,001 | 156 | 335,185 | 24,308,852 | 236 | 538,221 | 59,060,518 |
77 | 149,937 | 5,364,729 | 157 | 337,641 | 24,644,037 | 237 | 540,833 | 59,598,739 |
78 | 152,150 | 5,514,666 | 158 | 340,100 | 24,981,679 | 238 | 543,447 | 60,139,572 |
79 | 154,367 | 5,666,816 | 159 | 342,561 | 25,321,779 | 239 | 546,063 | 60,683,020 |
Lvl - Current power level
P - Processed power resource needed for level up (P = pow(1.15; Lvl) * 1000
)
Σ - Total power resource processed to level
With each new level, you have to choose one of the three powers available on this level. The powers options available at any level of a creep development are fixed for each class. Your choice at each level is to choose one of the three suggested options. It can be a new power or levelling up an existing one. Each power has a level between 1 and 5, and the level determines its effectiveness.
Have a look at this example:
Here you can see the process of levelling up a 7-level creep where it is sequentially assigned powers A
, B
, A
, C
, C
, A
, D
. As a result, this power creep will have the following powers:
A
lvl 3B
lvl 1C
lvl 2D
lvl 1
You can’t upgrade a skill higher than level 5. Also, you can’t upgrade all available powers to level 5 due to a level cap for individual classes.
Classes
Each power creep belongs to one of several available classes that you assign on its creation. Once assigned, a class cannot be changed later (unless you destroy a creep and create it from scratch). The class determines the set of powers available to the creep. There will be 3 classes in the game upon launch:
Operator
A creep working mainly in the rear, at your base, though it can be used as a saboteur in offensive operations. The list of powers:
OPERATE_SPAWN | Reduce spawn time by 10/30/50/65/80%. Effect duration 1000 ticks, cooldown 300 ticks. Consumes 100 U/U/UO/UHO2/XUHO2. |
OPERATE_EXTENSION | Extend capacity by 50/100/200/300/400 units. Effect duration 1000 ticks, cooldown 50 ticks. Consumes 5 U/U/UH/UH2O/XUH2O. |
OPERATE_OBSERVER | Extend range by 10/20/30/100/1000 rooms. Effect duration 1000 ticks, cooldown 900 ticks. Consumes 20 L/L/LH/LH2O/XLH2O. |
OPERATE_TOWER | Increase effectiveness by 10/20/30/40/50%. Effect duration 100 ticks, cooldown 10 ticks. Consumes 2 G/G/GH/GH2O/XGH2O. |
OPERATE_LAB | Increase reaction amount by 2/4/6/8/10 units. Effect duration 1000 ticks, cooldown 50 ticks. Consumes 10 K/K/KH/KH2O/XKH2O. |
OPERATE_TERMINAL | Decrease transfer energy cost by 10/20/30/40/50%. Effect duration 1000 ticks, cooldown 500 ticks. Consumes 100 L/L/LO/LHO2/XLHO2. |
OPERATE_STORAGE | Increase capacity by 500K/1000K/1500K/2000K/3000K units. Effect duration 1000 ticks, cooldown is 300 ticks. Consumes 50 Z/Z/ZH/ZH2O/XZH2O. |
EXTEND_SOURCE | Increase source energy amount by 1K/2K/3K/4K/5K units until the next regeneration cycle. Cooldown 100 ticks. |
EXTEND_MINERAL | Increase mineral deposit amount by 20/40/60/80/100 units. Cooldown 100 ticks. |
DISABLE_SPAWN | Increase spawn time by 10/20/30/40/50%. Effect duration 5 ticks, no cooldown. Range 20 squares. |
DISABLE_EXTENSION | Decrease capacity by 10/20/30/40/50%. Effect duration 50 ticks, no cooldown. Range 20 squares. |
DISABLE_TOWER | Reduce effectiveness by 10%/20%/30%/40%/50%. Effect duration 1 tick. Entire room range. |
CORRUPT_SOURCE | Destroy all energy contained in a source until the next regeneration cycle. Cooldown 250/200/150/100/50 ticks. |
SHIELD | Create a temporary rampart structure on the same square with 5K/10K/15K/20K/25K hits. The structure lasts for 50 ticks and then disappears. Cooldown 20 ticks. Consumes 100 energy. |
Maximum level: 24. Levelling table:
1 | OPERATE_EXTENSION | OPERATE_TOWER | DISABLE_EXTENSION |
2 | OPERATE_OBSERVER | OPERATE_LAB | EXTEND_SOURCE |
3 | OPERATE_SPAWN | OPERATE_EXTENSION | DISABLE_EXTENSION |
4 | OPERATE_TERMINAL | EXTEND_MINERAL | DISABLE_SPAWN |
5 | OPERATE_STORAGE | OPERATE_LAB | EXTEND_SOURCE |
6 | OPERATE_EXTENSION | OPERATE_TOWER | DISABLE_TOWER |
7 | SHIELD | CORRUPT_SOURCE | EXTEND_MINERAL |
8 | OPERATE_OBSERVER | OPERATE_SPAWN | OPERATE_STORAGE |
9 | OPERATE_TERMINAL | DISABLE_TOWER | DISABLE_SPAWN |
10 | OPERATE_TOWER | OPERATE_LAB | CORRUPT_SOURCE |
11 | OPERATE_SPAWN | SHIELD | DISABLE_EXTENSION |
12 | OPERATE_TERMINAL | CORRUPT_SOURCE | EXTEND_SOURCE |
13 | OPERATE_OBSERVER | EXTEND_MINERAL | DISABLE_SPAWN |
14 | OPERATE_STORAGE | DISABLE_TOWER | SHIELD |
15 | OPERATE_SPAWN | OPERATE_TOWER | OPERATE_EXTENSION |
16 | OPERATE_OBSERVER | CORRUPT_SOURCE | OPERATE_LAB |
17 | OPERATE_TERMINAL | SHIELD | DISABLE_TOWER |
18 | EXTEND_SOURCE | EXTEND_MINERAL | OPERATE_STORAGE |
19 | OPERATE_SPAWN | OPERATE_EXTENSION | DISABLE_SPAWN |
20 | OPERATE_TOWER | OPERATE_OBSERVER | DISABLE_EXTENSION |
21 | OPERATE_LAB | CORRUPT_SOURCE | SHIELD |
22 | OPERATE_TERMINAL | OPERATE_STORAGE | EXTEND_SOURCE |
23 | DISABLE_SPAWN | DISABLE_EXTENSION | DISABLE_TOWER |
24 | EXTEND_MINERAL | OPERATE_SPAWN | OPERATE_TERMINAL |
Commander
This power creep is not very useful on its own, but it’s a team player. It influences and affects regular creeps, both friendly and hostile. The list of powers:
ENCOURAGE | Remove all fatigue of the target creep. Cooldown 10/8/6/4/2 ticks. Range 20 squares. |
EXHAUST | Add 2/4/6/8/10 fatigue points to the target creep per each non-MOVE body part. Cooldown 10/8/6/4/2 ticks. Range 20 squares. |
DEFEND | Blocks up to 100/200/400/600/800 damage inflicted to the creep on the next tick. Cooldown 5 ticks. Melee range. |
SUMMON | Instantly relocates your own creep in the same room to the square next to the power creep. Cooldown 10/8/6/4/2 ticks. |
SIGHT | Increase range of all ranged abilites of the target creep by 1 for the next 5 ticks. Cooldown 10/8/6/4/2 ticks. Range 20 squares. |
RENEW | Adds time to live to the target creep. Consumes energy. The formula is the same as in StructureSpawn.renewCreep. Cooldown 5/4/3/2/1 ticks. Range 20 squares. |
DISABLE | Disables all actions of the target creep on the next tick. Cooldown 10/8/6/4/2 ticks. Melee range. |
BERSERK | Increase damage inflicted by a creep by 100%, but also incoming damage by 100% for the next 5 ticks. Cooldown 10/8/6/4/2 ticks. Range 20 squares. |
Maximum level: 14. Levelling table:
1 | ENCOURAGE | SIGHT | EXHAUST |
2 | EXHAUST | ENCOURAGE | DEFEND |
3 | ENCOURAGE | SUMMON | SIGHT |
4 | DEFEND | DISABLE | SIGHT |
5 | SUMMON | RENEW | EXHAUST |
6 | DISABLE | BERSERK | DEFEND |
7 | ENCOURAGE | SUMMON | RENEW |
8 | DISABLE | SIGHT | BERSERK |
9 | DEFEND | DISABLE | EXHAUST |
10 | ENCOURAGE | RENEW | SUMMON |
11 | SIGHT | BERSERK | DEFEND |
12 | SUMMON | DISABLE | EXHAUST |
13 | BERSERK | RENEW | ENCOURAGE |
14 | BERSERK | DEFEND | RENEW |
Executor
This creep class prefers working alone. Due to its skills, it’s a very effective performer in your economy or as a war machine when defending or attacking. The list of powers:
HARVEST_ENERGY | Harvest 200/400/600/800/1000 energy units from an energy source. Cooldown 20 ticks. |
HARVEST_MINERAL | Harvest 200/400/600/800/1000 mineral units from a deposit. Cooldown 40 ticks. |
REMOTE_TRANSFER | Remotely transfer resources to any creep or structure in 20 squares range. Cooldown 50/40/30/20/10 ticks. |
MASS_REPAIR | Repair all structures in 10 squares range area for up to 1000/2000/3000/4000/5000 hits in total. Repair effect is distributed between all structures. Consumes up to 10/20/30/40/50 energy. |
SNIPE | Inflict 100/200/300/400/500 damage to the target creep in 10 squares range. Cannot be used with structures. No cooldown. |
PUNCH | Inflict 300/600/900/1200/1500 damage to the target creep in melee range and disable all his actions on the next tick. No cooldown. |
DEMOLISH | Inflict 5K/10K/15K/20K/25K damage to the target structure in melee range. Cannot be used with creeps. Cooldown 10 ticks. |
REINFORCE | Make the creep itself invulnerable for attacks on the next tick. Cooldown 20/18/16/14/12/10 ticks. |
REFLECT | Reflect 50% of damage inflicted to the power creep back to an attacker creep. Effect duration 5 ticks, cooldown 20/18/16/14/12 ticks. |
KILL | Instantly kills any creep in 10 squares range if it's not inside hostile ramparts. Cooldown 900/800/700/600/500 ticks. |
Maximum level: 17. Levelling table:
1 | HARVEST_ENERGY | HARVEST_MINERAL | REMOTE_TRANSFER |
2 | HARVEST_ENERGY | HARVEST_MINERAL | SNIPE |
3 | REMOTE_TRANSFER | PUNCH | DEMOLISH |
4 | MASS_REPAIR | HARVEST_ENERGY | REMOTE_TRANSFER |
5 | SNIPE | REFLECT | REINFORCE |
6 | HARVEST_MINERAL | MASS_REPAIR | KILL |
7 | PUNCH | REINFORCE | DEMOLISH |
8 | HARVEST_ENERGY | MASS_REPAIR | SNIPE |
9 | REFLECT | REINFORCE | KILL |
10 | REMOTE_TRANSFER | REFLECT | DEMOLISH |
11 | MASS_REPAIR | SNIPE | PUNCH |
12 | HARVEST_MINERAL | REFLECT | KILL |
13 | PUNCH | DEMOLISH | REINFORCE |
14 | HARVEST_ENERGY | REINFORCE | KILL |
15 | REMOTE_TRANSFER | MASS_REPAIR | HARVEST_MINERAL |
16 | SNIPE | REFLECT | KILL |
17 | DEMOLISH | PUNCH | SNIPE |
Conclusion
These classes with their powers is a preliminary picture of how we view the game balance at the moment. It’s open to change, so please leave your comments and suggestions below.
In general, we want to reach the point where power creeps become an independent scale of your game development in Screeps, parallel to the Global Control Level scale. As you can quantitatively increase your abilities with each new GCL (you can build more rooms, have more CPU, more creeps), in the same way the sum of your Power Levels will increase your abilities qualitatively by unlocking new powers and boosting their effectiveness, which leads to increased effectiveness of your economy and viability of your colony.
Using one high-level creep will allow you to achieve the same result as with 5 or 10 regular creeps and consume less CPU. You can scale your game influence the same way as through boosting your GCL, but the process will be deep rather than broad.
At the same time, the levelling system does not allow you to create a power creep exclusively for one specific skill and thus a very simple behavior logic. Any high-level creep will have several useful powers, so in any case boosting its effectiveness will require you to solve a difficult, but interesting task of developing its AI. Since any creep even in the same class can have an individual set of powers, its behavior logic can be unique and different not only from that of other players’ power creeps, but also your own other power creeps.
This significantly expands the scope of interesting challenges a player faces in Screeps, and we hope it will add fun and variety to the game process.
That's cool, thank you for the news.
There is the only comment for now: the SHIELD power is mentioned, but not described.
Some thoughts about "related changes": decreasing of spawns amount seems to be an extremely dramatic change (because it's not about balance, but core logic).
The usage of PWR_OPERATE_SPAWN isn't the same thing as using of several spawns cause of its mineral cost (!), so instead of simplified/unified spawning logic players will need to develop a pretty difficult additional logic for 7-8 RCL: Power Creeps spawning (a), updating them manually (b)(!), making them travel between rooms to instantly buff spawns (c), producing U compounds (d)(!!), doing logistics of these compounds for PC usage (e)!
Looks brutal. For now base with 3 spawns can process 1-3 reserved rooms + 1-2 SK rooms, but after update such a task can become undecidable or extremely difficult.
Instead of being are additional(!) optional(!!) special skilled units, power creeps are assumed to become a necessity for even old basic actions? It's weird.
How about instead of the 'pick one of three abilities' there is a more MOBA approach where you cannot simply choose to level up one ability all the way to five, but require a minimum creep level to be able to level up an ability?
It allows us to build a creep for a purpose (while still forcing us to have at least some generalization) and doesn't force force us to have potentially dead levels for a creep.
We shouldn't have to ask ourselves 'are we going to hurt ourselves' when we level up and this way it allows for more broad tactics and lowers the bar for entry if we want to optimize our power creeps.
Very exciting!
My two cents on the issues:
- Even if it would be used by less than 1% of players, an in-game API for creating, destroying and upgrading power creeps should be provided. This game is advertised as an automated programming game, and even if no one uses it, an in-game API should be available for completeness.
Having a major feature such as power creeps not available to the API will be offputting to newcomers looking for a true programming game, even if after joining they would decide not to use it. I'd be in support of an API even if it was just four methods: Game.powers.getExistingCreeps() (object of {name: {class: cls, level: lvl}}), Game.powers.upgadeCreep(name, path) (path is 0, 1, or 2 for the first second or third column), Game.powers.newCreep(name, class, path), Game.powers.destroyCreep(name).
- Separate from that: is there a planned way to allow getting what abilities a creep can use? I see that there's a usePower method, but there is no mention of any script access for which power abilities are valid for any given power creep.
- Lastly, I'm against adding a Room.spawn property. I'm OK with spawns being limited, but I believe this limitation should not also include an API change which then forces it to stay. Having Room.spawn would be confusing for any legacy rooms which have 2 extra inactive spawns, and it would prevent anyone with a private server from increasing the spawn count locally. Sure, it's somewhat convenient, but we already have Game.spawns for easy spawn access, we don't need Room.spawn as well.
Very cool to see this fleshed out! The power creep abilities are exciting and will be a nice challenge to implement. Like Motoroller, I had the most visceral response to the "related changes" section, particularly the number of spawns, which seems like it will be a major breaking change that will be hard to adapt to. Also, as someone who is striving for full automation, I'd really like the ability to perform power creep configuration via the API.
One more thing regarding the spawn reduction: it's going to be really hard to start harvesting power when an RCL8 room can only have one spawn. You currently need several waves of beefy creeps to take on a power bank, so getting power from scratch will probably require building up a few RCL8 rooms first and then sending coordinated squads from all of those rooms at once. Seems like a really tough barrier to entry.
I'm fine with having some stuff that needs actually someone logging in and do stuff in the UI.
I don't have done any math... but the reduce of spawns sound brutal to me. So you need a Lvl 9 Powercreep in every room to have the same spawn rate you currently have?
Using renew is quite expensive cpu wise .. and since it's only usable on idle spawns it even gets worse with only one spawn in the room.
There is only two things i dislike about the power creeps changes.
Reducing the spawn limit from 3 to 1 - Firstly, it'll make renew() even more useless than it currently is because we'll have even less spawn time available (without power creeps) to throw some renew() calls around. Secondly, it'll make it much harder for newer players to compete versus players who are able to use power creeps. Newer players won't be able to boost their spawns to compensate for the reduced limit. Not having a chance in hell to compete farily against other players usually translates to the newer players not sticking around for long, which isn't exactly great for Screeps, considering the potential player pool is already small.
"The API controls are not provided since obtaining new powers would be quite rare (it’s enough to log into the game once a week or even a month to upgrade one’s creeps)."
This is probably the worst part. It breaks the essence of Screeps because we can't automate it. Hopefully I'm not wrong when I say that many players came to Screeps because of the expectation to programme an AI to make decisions and control your creeps/bases/trading for you.
Being able to extend your AI to decide what new power to pick based on a bunch of conditions/situations IMO, would make this massively more fun to "play" with, simply due to the nature of programming itself. We all make mistakes. Fighting power creeps that came out of the forge "not-so-perfect" (due to human error) would be pretty fun IMO, as it is with most of Screeps right now.
Besides those two issues, I like what you have in store devs!
I agree with most of the other comments so far, a significant ++ to the spawn reduction change.
It seems to me the Operator class already has more than enough to concern itself with, so I would simply remove the OPERATE_SPAWN power (Adjusting the max lvl, which is already higher than the two other classes) and remove the spawn changes. It makes it even more impossible as a newer player to compete against older players--this curve is already very hyperbolic, and if anything, should be flattened--not extremized.
I would also like to see a rebalance of renew(), which feels like it should be rewarding the player for writing logic to bring his creeps back to base instead of punishing him with an inordinate amount of CPU costs.
(seriously, **** formatting in zendesk)
Very exciting stuff! I have my input of course, for whatever it's worth:
I'll echo the general sentiment I've seen - the spawn reduction is too harsh, especially on newer players. I could probably swing into it OK on my rooms with my current mineral stores and already farmed power, but it would be crippling if I was just starting out. I really think the spawning increases needed to be evened out, not made even more lopsided. If there was concern about the number of creeps able to be pumped out by one room, perhaps increase the spawn time per part to 5 instead of 3? I'd also suggest the second Spawn should be buildable at RCL 5, and the third at RCL 8. At the very least, operate_spawn shouldn't use minerals.
I would really love to see a "Teleport" ability added into the game for power creeps to give power to people who create distributed/wide empires instead of centralized ones. Something akin to this:
EXECUTOR:
Create_Gateway: Channels a gateway at its current location after 250/200/150/100/50 ticks that allows creep movement between Gateways. Persists for 250 ticks. Cooldown 1500 ticks.
The gateway would require two power creeps working in tandem to be effective, of course.
I joined Screeps just a month ago and didnt bother yet about getting power, ofcourse because im not even able to gather it yet. I like what comes in the future with building these new creeps. The change to energy sources and neutral rooms seems to make sense, it gives both 1 source rooms and 2 source rooms different advantages and makes 1 source rooms also desireable.
But what really scares me is the planned change to spawns: How the hell do have new players any chance to even remotely compete with players who had over a year (!) to prepare for powercreeps? Since it takes an atleast somewhat bigger powercreep to get near the then old spawnrates, it becomes a massive hurdle to progress any further. As a sideeffect youre less dynamic because theres only one type of creep you can spawn at a time.
Please do not lower the possible spawns to 1 per room!!!
Purely from a design perspective: The spawn changes that make power and spawn increases nearly mandatory will make all the other neat power abilities a non-option. Removing the spawn related changes from this system would increase player choice dramatically.
As to why we don’t allow controlling powers set via API, here are some more reasons for it (in the order of decreasing importance):
The possibility to rollback assigned power levels and re-distribute them again is intended only for the purpose of correcting errors of planning rather than some common, routine operation. This is why we’ll impose a very long cooldown time on it (up to several days) depending on how often you did such rollback in the past.
So it’s no use doing these operations via API – they are too important and responsible (among other things, due to constant increase of rollback cooldown time) to rely on code.
As to Spawn changes - we may consider reducing it to 2 on RCL 7/8 instead. Or reduce spawn time from 3 to 2 ticks per body part. Also, consider the RENEW power as well.
Anyway, please let's focus this discussion on power creeps and their powers, and not on the "Related changes" section. It is not the subject on which we need the feedback right now.
KILLBOTS: What's to stop me (Or more likely someone with much higher stored power) from creating a bunch of level 6 KILLBOT_EXECUTORS with level 1 kill sitting near the borders/transition spots and just blowing away everything that moves into the room?
Lets say a portal opens in the middle of my sector, so I move 10 KILLBOTS to surround it and kill any threatening creep (ignoring 1 move bait creeps trying to bait my KILLBOTS). How is anything expected to get through?
In the same vein, if two KILLBOTS kill() each other on the same tick, is it mutual destruction? Or will the one that's processed first win?
> We don’t want to make the configuration of your power creeps part of the automatic process that can change and adapt depending on circumstances
It's more about adding "features" to existing power creeps based on needs. Not about destroying/recreating power creeps.
I tend to disagree that we have to focus on the PC's and their powers instead of the "related changes" section. They're closely coupled. If we get less spawn time it's obvious that we will only use a few powers. We have to compensate for the game changes.
I agree with nearly all comments. I'm playing screeps since 2 months, so i'm not able to get power. But reducing the spawn limit to 1/room would be bad. How to compete with long time players?
My proposal for fixing the spawn problem: do not restrict the number of spawns to 1, instead make it so the spawn-boost power action can only be used if there is a single spawn in the room; it'll return ERR_TOO_MANY_SPAWNS or something if attempted to be used when multiple are in the room. Then it is no longer a breaking change, and if a player decides to make use of that ability, they can remove the additional spawns from their room at their leisure.
Fine, let’s just think these “related changes” are not going to be implemented at all and stop this discussion please. This document is about power creeps, we need some feedback from the community about skills, numbers, levels balance, more potentially useful powers, etc. You’ll have a chance to discuss the Spawn change later on the PTR forum.
To me, the power creeps themselves look awesome, the related changes on the other hand would kill my current codebase. I rely on the extra spawn capability of the second and third spawns, and have just recently got remote mining working and profitable, with these changes, remote mining becomes much less useful and profitable, 1 source rooms would then be worth much more, making current room placement choices bad. Also, using the power creep ability to increase spawn speed costs minerals, what about those of us who A) don't have mineral mining or B) don't have access to the minerals needed? If your answer is the market, IMO its currently too unreliable and broken to effectively fill that demand. I cannot sustain enough credit income to maintain supplementing via market even if I mined the minerals I have access to.
@Artem Apologies if this is going off topic again but while I like the idea of the renewal power, this again stacks the odds against new players. Reducing the spawn limit instantly means that newer players won't have as much spawn capacity available to run some renewal calls because they'll be constantly spawning creeps from them instead, to compensate for the reduced capacity.
The way it is right now, Creep.renew() has no tangible benefits. Instead it punishes players for returning creeps to their spawn to renew (CPU cost of said logic, removes buffs, etc).
The only way to counter some of those negatives on renew() appears to be through the use of the power creep RENEW ability. For almost all new players, this won't be an option because they'll unlikely be able to harvest power for a long time. This means renewal will almost be completely useless outside of a couple of scenarios.
Lastly, reducing the spawn time from 3 ticks to 2, sounds good, but again it stacks odds against renewal, making it even less worthwhile.
Basically, I think renewal needs to cost much less than it would to respawn a creep. That sounds crazy, until you factor in the CPU cost involved in getting a creep back to the spawn and handling renewal logic. Some suggestions would be to allow creeps to keep their buffs when renewed or reduce the energy cost/ticks gained from renewing.
Again, I like everything suggested in the design doc except for the spawn changes, it affects the balance waaaaay too much for newer players. Screeps needs more players if it is to survive long-term. Making them less-able to compete is not the way to go IMO.
I know its not part of the main changes Artem, but despite being a small change, it affects quite a lot in terms of balance. That's why many of us are concerned about it.
EDIT: I'm actually wondering if the respawn limit reduction could be countered by making renewal much more worth the effort. If we could renew at a spawn while its also spawning, that'd be a good starting point!
Please stop. This is a red herring here. You'll have a chance to express your concerns, we promise.
Updated the post.
According to the level table, I can spawn an inifinite number of lvl0 power creeps?
How are lower level players expected to get into power creeps? It seems to take a good bit of logic and creeps to mine power.
Of the abilities, such as OPERATE_SPAWN, it says effect is 10/30/50/65/80%, does this map directly to mineral and level?
Ex: Does 80% require 100 XUHO2? And would that same creep have the option of opting for a lower effect rather than using the max it supports?
If the above is correct, how are we expected to maintain enough minerals to use power creeps with the higher level abilities?
OPERATE_STORAGE This seems like it would be fairly disruptive, now I would have to account for the fact that storage could have 1004000 stored resources but only a max of 1000000 once it expired?
Commander and Executor do look useful as is.
Will we be able to repeatedly use powers on the same target as soon as the cooldown expires? A lot of the operator abilities are mainly what i am wondering about. For example will we be able to continuously increase the capacity of one extension every 50 ticks? This could greatly affect lower rcl levels. At max level of extending minerals this would essentially give us 1 of that mineral per tick, right? Will we be able to continuously increase the effectiveness of a single tower by 50% every 10 ticks? Continuously decrease energy transfer cost of terminal sends? Do these abilities stack as you call them on the same target over and over?
EDIT: to give a clearer example of what i am asking, i mean if you had lvl 1 of operating extensions you would use it to increase an extension from 50 capacity to 100, could you then increase it to 150 in 50 ticks, and 200 in another 50 ticks, and so on? Similar question will all the other operator abilities.
Fixed.
It would oversimplify power creeps AI too much. We don’t want them to be simple super-specialized dummies who just spam one particular power all the time, but rather very smart and complicated units with advanced behavior logic.
Yes, something like
PowerCreep.powers
will be added to the API.We still need to balance this.
The cooldown is separate for each power.
Yes, most likely
RoomObject.effects
.Consume more reagents, produce more product.
Not decided yet.
Melee range.
No, only to creeps.
PWR_KILL
lvl 1 has 900 ticks cooldown, so you can’t kill just everyone. And it becomes available on level 6, so 10 killbots would require spending 60 power levels on them.You cannot create a zero-level power creep in your account.
Using the market is the easiest way, I guess.
Yes.
This is an interesting question. I think yes, a higher level power can use lower level minerals as well, with lower effectiveness.
You have to refresh this effect constantly to make things consistent. Increasing the effect duration and the cooldown even more is probably a good idea.
No, the effect is not stacked, it’s replaced with the new one.
Respecting Artem's wish to discuss the skills/numbers/balance of the actual posted document, here goes!
General ideas/questions:
1. Can a power creep only use 1 power per tick? Or could, say, a commander creep Summon an injured allied creep and defend him the same tick? Or could an operator disableSpawn and disableExtension the same tick?
2. I feel there should be a bigger benefit from "going down the tree" and leveling a power creep to maximum, instead of more smaller power creeps. To that effect, I think putting in a final tier of 1 rank abilities where 1 has to be chosen gives more investment into strategy and will bring about differing styles depending on the player.
Operator
OperateSpawn: If the spawn reduction goes into play, this ability should not cost minerals. I'd love to see more utility out of this than regular "always do this". Perhaps a change such as: "Instantly completes spawning creep, cooldown 500/400/300/200/100". This would create more dynamic and interesting situations such as spawning defender creeps on invasion/facilitating attack squads with similar TTLs.
OperateLab: Is this creating "free" minerals? As in instead of 5+5 producing 5 of a compound, it will produce 10 from the same input minerals?
OperateTerminal: I think the mineral cost is too high for the effect. With the other proposed changes along with PowerCreeps, I feel like energy is going to be a lot cheaper overall, and minerals more important.
OperateStorage: If the effect wears out, are all of the excess items in the storage popped onto the ground or destroyed? If so, this seems risky and I'd personally never use it. I'd suggest changing the effect to be: "Increases effective range of room storage access to be room-wide the next tick. Cooldown 500/400/300/200/100 ticks." It would let any creep in the room to access the room's storage, regardless of distance the following tick.
ExtendSource: This seems like the bread and butter skill. That's a lot more energy! I'm assuming it's melee range.
ExtendMineral: What happens if you use this when the mineral is on cooldown? Does it instantly create new minerals to be farmed? Or add it to the next amount of minerals?
CorruptSource: What is the range on this?
Shield: Can this rampart be made in hostile rooms owned by another player?
Proposed Powers:
OperateNuke: Lowers impact time on launched nuke by 1/2/3/4/5 ticks. No cooldown.
Following the idea of "final abilities", the final level of Operator allows one of these three powers.
Stealth: Grants stealth to target creep. Stealth hides creep from view of enemy players. Stealth is broken upon any creep action aside from movement, or when approaching within 15 range of an enemy tower. 500 tick cooldown.
Brainwash: Converts target creep to be under your control. Cannot be used on creeps protected by a rampart. 1500 tick cooldown.
Mine: Plant mine at current location. Maximum 3 active mines can be active per time, per Power Creep with Mine skill. Mines fade when creep dies. Mines invisible to enemy players. Enemy creep stepping on a mine kills them. 10000 tick cooldown.
Commander
Encourage: To be more useful, I think this should be "Removes all current fatigue, and fatigue that would be generated this tick".
Defend: Is this modulated by boosted TOUGH? As in if a tower hits a creep for 600, but they have tough boosts, does defend absorb 600 or (600*.3) 180? This amount is also too low for higher level damage output if it is raw damage, not modulated by tough boosts.
Summon: This is quite a powerful ability. I forsee a lot of 50 WORK creeps being summoned about to mine-drop into containers.
Renew: By referencing spawn.renewCreep, I'm assuming this also strips boosts from the creep its renewing?
Disable: Is a creep inside a rampart protected from disable/other abilities being used on it?
Berserk: Can this be used on hostile creeps? This is quite important, as being able to increase a hostile creeps incoming damage by 100% is huge, especially when your own creeps are protected by ramparts.
Proposed Powers:
I live the idea of Auras, and I feel like it would fit the commander creep the most. In keeping in line with "Final abilities", something like:
MoveAura: Reduces fatigue generated by all creeps in the room with the commander by half.
DefenseAura: Reduces damage taken by all friendly creeps in the room with the commander by 25%.
WorkAura: Doubles all effects from WORK parts by creeps in the room with the commander (Upgrade, dismantle, harvest, repair, etc).
Executor
I like all of the skills, except the creep has no way to defend itself. Without tough boosts, incoming damage is too high in the current game to really survive. It needs something like:
TransferDamage: Transfer 20/40/60/80/100% of incoming damage to target friendly creep (melee range).
This incoming damage issue is a problem for all three power creeps. As it is now, with 6 towers on the border (even if one is 50% reduced), it's still potentially 3300 incoming damage per tick. With a maximum level of ~17 or 24, that's only like 7 ticks of survivability without healing. Even with max tier healing boosts, without damage mitigation that's a ton of healing parts needed to keep them alive without some sort of ability to mitigate or transfer damage to another target. Perhaps the commander would be a better creep with an ability like "UseShield: Redirect 20/40/60/80/100% of damage taken by creeps within 3 range of commander to target friendly creep". The defend ability is almost meaningless in the face of the current damage output in the game.
KILLBOT Issue: Even if it takes 60 power levels and a 900 tick cooldown, with the time it takes to travel to some rooms and the 300m wall height you can reach, having 10 roaming killbots can make your rooms all but unkillable. They obviously don't even need to be devoted killbots, just the option of these roaming death machines defending your borders with huge walls is enough to stop almost all invasions once you're big enough.
And then proposed "final tier" abilities:
UnlockController: Controller is not limited by 15 energy restriction the next 1500 ticks. 1500 tick cooldown.
AttackController: Decreases tickToDowngrade timer of enemy controller by 10 per tick. No cooldown.
BoostPower: Decreases energy required to process power in PowerSpawn by 50% for 500 ticks. 1500 tick cooldown.
In addition, a lot of the power creep stuff seems to favor centralized empires to facilitate power creeps being shared among a few rooms to boost structures. I think the "gateway" ability I mentioned above is an important addition to allow "wide" empires, if so desired by a player.
Yeah ... I think travelling might be a problem for power creeps.. maybe power spawns could work as some kind of portal just for power creeps? (with a cooldown?) or some other buildable structure that allows faster travel?
Running some more calculations show that the long-term game for power seems rather harsh due to the logarithmic changes.
I think that every XX levels the power needed to level up should follow a different formula, which limits the rate of growth, but doesn't exponentially explode. (Or we just sell power and make money!)
I also agree with ScottyC
"Specialized" high-level creeps should get more advantages compared to the others
Another idea to allow for more customization needs is allowing players to select the amount of hits/capacity a PC gets when he level's up.
Lets say you want lots of beefy CARRY but no HITS you could decide that you get:
Distribution points
This way you can customize even more. If you find CARRY more important you put 1900 points in CARRY and 100 in HP and 190 CARRY per level.
A level 24 PC will have 4560 CARRY and 2400 HP
This is set in stone on SPAWN and can't be altered later.
This gives it even more dynamic.