Screeps Warfare Championship 2: After Action Report


The Screeps Warfare Championship is a hands-on, team-based competition with no restrictions on code-editing.

Seven players signed up for the competition and the teams were decided randomly, with Kasami and Bonzai and Stevetrov on Team 1 and Atavus, Wtfrank, Nyoom & Ricane on Team 2.

The seven players spawned into their starting locations in the single open sector. Kasami and Bonzai of Team 1 spawned quite close together at the North of the map, so Wtfrank and Atavus surrounded them in an attempt to neutralise the threat this posed to Team 2. Stevetrov of Team 1 ended up in a big open space on the South-East of the map while Nyoom and Ricane took territory to the West for Team 2.

Stevetrov: Bonzai and Kasami both made a blistering start using swarm tactics that are popular in the botarena. Atavus and Wtfrank started the aggression very early on as they attacked Bonzai’s remote mines at RCL 2 – he managed to fend them off with tiny 1H2M1R creeps.

Nyoom: I logged onto the round about an hour after the start and was pleasantly surprised to see that my startup code had successfully gotten the beginnings of a base running. I was far behind Bonzai and Kasami but roughly keeping pace with Stevetrov and actually in the lead among my own team. Fairly soon Kasami claimed the room directly to my north. Since it was only RCL 2 and thus lacked a tower, I began harassing it with very basic melee fighters from my main base. Kasami eventually temporarily gave up on being my neighbor.

Fairly soon in the game, before I had walls or a second tower, I was the subject of a swarm attack from Stevetrov. Luckily my defense code at the time was reasonably well-suited to dealing with this threat; my defenders had a field day slaughtering the defenseless 1M swarmers. With 4 attack parts, they were able to one shot the invaders.

Stevetrov: After the blistering fast start, things settled down as we all levelled up and Team 2 were able to catch up a bit, but unfortunately Ricane was unable to be online in the first day meaning he had to restart. Nyoom was very aggressive in this stage performing some rather advanced attacks against mainly me but also Bonzai and Kasami. He used a phalanx of 4 (or more) ranged / heal creeps that kept in a rigid 2×2 formation meaning they could concentrate fire and healing. Nyoom also launched an attack against the controller in W5N3 and I just saved it with < 500 ticks to go.

Nyoom: By RCL 5, I had mostly expanded into the small tunnel where I spawned.  My empire contained 3 bases, each with 1-2 remotes. By then Stevetrov had three bases as well. Two were directly to my east and the largest one was a bit further. I put together some code to perform a siege of W5N3 through a combination of tower draining and mining denial. For this I created my healing phalanx, which consisted of 4 low-dps creeps who, together, could permanently survive the withering fire of a single max-range tower. At this point the behavior of the phalanx was honestly pretty hacky and reliant on manual input, but it worked. Stevetrov’s bases couldn’t be bothered to spawn creeps to defend themselves at this stage, so the tower draining eventually managed to completely empty the target room. I sent in some dismantlers to punch a hole in the rampart and wipe out the buildings. All things having gone according to plan, I repeated the same strategy with W4N3. In this case, both of the energy sources were safely within either ramparts or tower range, so I instead parked my creeps by the controller. This room too was emptied of tower energy and cleaned out by a pair of dismantlers.

Now, Stevetrov’s last room had something that those two did not: 2 towers. So I looked instead to the north, through the realm of the source keepers, to a RCL 4 outpost of the Bonzai empire. This room was struggling economically with only a single source to feed it, so it seemed like a good target. The tower began firing on my creeps almost immediately after they entered the room, burning through very limited reserves. I was a little concerned when one of Bonzai’s bigger fighters entered the room, but the turtle phalanx was quite capable of discouraging it. My creeps, following their orders to camp the energy source, did not pursue him, so he ended up in a loop of moving in to engage, realizing it wasn’t working out, and fleeing to heal up a few tiles out of range before beginning the process again. The guard was so caught up in this dance that he didn’t even notice when I finally managed to fix my pathfinding to avoid mindlessly marching defenseless dismantlers into Source Keepers, slunk into the room, and assassinated the spawn behind his back. Bonzai’s recovery code being stronger than Stevetrov’s (and definitely mine as well), he was able to rebuild the spawn and continue life as normal as soon as I stopped heckling the room.

Anyway, I had more interesting things on my mind. Perhaps the solution to fighting more towers was simply… more creeps. I changed a few constants in my besiege code and sallied forth with an army of 9 to assault Stevetrov’s final stronghold. At this point, though, he’d noticed what I was up to and began spawning defenders (or maybe his defender code had been working the whole time, but only for remotes; I’m not exactly sure). My first wave of creeps was intercepted in his remote mining and had to fall back. They rendezvoused outside Stevetrov’s territory in the wreckage of an abandoned Bonzai base. Once assembled and united, they crushed through the defenders and marched up the the main gate. Due to a bug, however, their formation broke as they entered the room. The combined firepower of the towers broke the line and they ran back out of the room.

The presence of my army was apparently quite upsetting to his remote defense code and a growing swarm of defenders came pouring out. They were sitting on the room exit getting healed every other tick by the towers; my team could survive their firepower but lacked the power to actually kill them through that healing. Thus the struggle turned into a long-lasting noodle fight where neither side could break the other. Just as Stevetrov’s numbers began to overpower my phalanx, they committed a grave tactical error in closing to melee range, which massively increased the damage output of my army. My creeps shredded his troops with mass attacks. Luckily for him, I could not push the advantage: my reinforcements were being intercepted and killed by his remote guards in another room. When the attackers began to run out of Time-To-Live, the defenders finally broke free. I had to regroup once again to the west.

Around this time, Wtfrank’s creeps put in a surprise appearance. Stevetrov had a higher RCL though, and much larger creeps: he was able to push through the army and break Wtfrank’s base. I tried once again to push up into Stevetrov’s room, with similar results. I was able to tank the towers for a while but their damage in combination with attacks from Stevetrov’s creeps broke the line and the fight once again became a grueling siege at the room edge. With that failure, I retired for the night.

Stevetrov: I tried some swarm attacks but with no success. Atavus and Bonzai had an intense fight over remote mining rooms with multi-creep squads being deployed on both sides and many creeps dying on both sides before Bonzai eventually gained the upper hand.

Wtfrank continued to harass throughout the game, mainly attacking remote mining rooms. His creeps were relatively intelligent and retreated from a fight they didn’t think they could win. However, Wtfrank sacrificed economic growth for military might in the early game as so was unable to build bigger creeps in the later game. I copied Nyoom’s tactics to take out Wtfrank.

Nyoom: I awoke to find that Stevetrov had reclaimed both of the rooms I had cleared, and was harassing my remote to the north. I eventually abandoned that room in favor of more defensible positions, which led to Kasami reclaiming it. I made some improvements to my phalanx code, including pathfinding and better target selection. I marched into Stevetrov’s position at W5N3 once again, and again was eventually able to empty the towers there. This time his code spawned defenders: melee brutes who sat in the base ramparts. They didn’t bother me while my creeps were savaging civilians outside the walls. Even when my dismantler walked into the room, up to the wall, and began breaking it down, they were content to continue shooting the breeze as they stared out from the east rampart, oblivious to the shouts and loud bashing sounds from the other side of the base.

Only once my dismantlers crossed the very threshold and moved into the base proper did they bother to do something about the situation, but by that point it was too late. The economic back of the base had been broken; no more creeps would be spawned. After 500 ticks, both defenders ran out of Time-To-Live and the spawn once again fell. This time I sent in a claimer to speed up the controller decay and graffiti the room with Queen lyrics (I’m not saying which is the primary reason). I then told the phalanx to continue pushing the attack to the next room over and went to sleep for the night.

Once again I woke up to find two fully functioning Stevetrov bases. My message on his room controller had been erased. There were giant walls around the base, covering all room exits. Meanwhile, Kasami had redeveloped the room to my north, so I was almost completely pinned in at this point. I noticed a feature of Stevetrov’s defensive code: his towers never, never shot at a creep on a room exit tile (perhaps as draining defense?) and his melee troops never, never stepped off of their ramparts. I thus began a fairly cheeky offensive maneuver wherein my ranged creeps would sit on the exit tile and poke the wall from afar. This was almost entirely ineffective as his builders easily out-repaired the damage output of my troops, and I doubt I even did enough damage to cover the cost of my attack creeps. Furthermore, this was completely shut down as soon as Stevetrov noticed what was going on.

At this point, I was finally getting close to having three RCL 6 rooms. Serendipitously, I had one room each of L, H, and O, meaning I could make T2 heal boosts.

Stevetrov: As rooms started hitting RCL 6 boosts became part of the equation. Nyoom had managed to obtain L, H & O giving him T2 healing boosts. I had L, K (from Kasami), H & U and managed to get RCL 6 Source Keeper mineral mining running to give me O & Z. This meant I could make all T2 boosts.

Nyoom: Unfortunately, my T2 heal capability came at a time when I had to actually deal with all the classwork I’d been shirking for the past two days so was not able to use any before Stevetrov’s brilliant strategy of SK mineral harvesting got him access to the full suite of T2 boosts. My defenses were unprepared and unable to cope with the sudden onslaught. Two of my rooms fell almost immediately; all the boosts and minerals I’d produced decayed in the dust and rubble. My last remaining base sent out rebuilders, but my room recovery was plagued by inefficiencies and consequences of assumptions my code base makes about what resources a base will have at a given RCL.

Stevetrov: With my significant boost advantage, while no one had boosted defenders I was able to fight through Nyoom’s defences to take him out. Ricane was having problems with his defences meaning there were large holes in his ramparts so he fell easily to my T2 creeps. Atavus was the only Team 2 player able to withstand the onslaught. During this time I was able to get a X room up to RCL 6 (it had been delayed by Nyoom’s effective attacks) and allowed me to take the fight to Atavus with T3 creeps, against T3 Atavus didn’t stand a chance and fell. With the defeat of Atavus Team 2 had zero presence on the map and the game was over.

Atavus conquered by Stevetrov

Nyoom: Eventually, I logged back in and was greeted by that dreaded, cheery, message: “Losing is fun in Screeps.” And, as this fantastic Warfare Championship has shown, that is absolutely true.

Congratulations to Team 1. Signups for the next round of Screeps Warfare Championship are open until November 14th. If you wish to participate in the next round, head over to #swc at