Friday Facts #429 - Vulcanus Demolisher Enemies

Posted by Earendel on 2024-09-20

Hello,
Welcome back to Vulcanus. It's been a while.


You place your new prototype big mining drills, the pinnacle of resource extraction technology, on the closest tungsten deposit to your fledging Vulcanus factory. A few power poles later and they are happily mining away providing a new consistent source of valuable tungsten. A rail ramp and station just about fit in the area too, but without any rail supports in your inventory that line isn't going anywhere soon. Transport belt will have to do for now.

As you're returning to the main factory, placing transport belt to connect this new resource to your base, you feel a trembling from the ground. Big mining drills make a lot of vibrations, but this is on a whole other level. Something else must be going on.

You head back towards the mining site. Across a river of lava you see a truly gargantuan creature snake its way around a volcano. This formidable beast most closely resembles a centipede or millipede but is larger than a train.

As it moves forwards the ground at its face is broken apart leaving a trail of torn up rock and patchy lava. Trees, rocks, even cliffs are torn apart by its passage. Ash is flung into the air making an abrasive cloud that blankets its body and lingers long after it has moved on.

The creature roars and speeds up. As it does so it starts shaking the ground harder. Rhythmic vibrations agitate a wide area around it kicking up a huge cloud of ash and destabilising the terrain.


Also available on YouTube in 4k.

The creature cruises over the lava river and demolishes your machines without even slowing. Your precious new mining drills that seemed so large and powerful just moments ago look like puny toys in the face of such an unfathomable beast.

The Demolisher continues its path of destruction down the line of transport belt toward your base, but before getting there it slows to a crawl and turns back into the volcanic wastelands. This attack won't go unanswered. It's time for a fight.

You pursue the Demolisher, an easy task given its thick glowing trail. Lava on either side of you forces you to cross through the trail to pursue the creature. The torn up terrain is hot, but there are enough cool rock sections to step across it. As you do, the lingering ash cloud around it obscures your vision and the abrasive particles interfere with your exoskeleton equipment.

You catch sight of the body again, this time up close. The thickly armoured plates of each segment seem to give it good protection from heat, and probably many of your weapons. It hasn't reacted to you yet, perhaps it has not seen you, or perhaps it does not care.

You move towards the Demolishers head and it still ignores you. The face appears to be a clear weak spot. It has no eyes and the skin still seems adapted for the heat, but the armour is much thinner around the jaws. Bracing yourself for a reaction, you shine your lasers at it's face, but nothing. It continues to patrol some path, as though you were nothing but a speck of dust on the wind.

A rocket to the face would surely provoke it, but before testing that theory, you place a line of land mines to secure your retreat. There's an immediate reaction from the creature. It speeds up and turns towards you. Once again, rhythmic vibrations shake the terrain and generate a steadily expanding cloud of ash. The cloud quickly encompasses you. Obscured vision and snagged exoskeleton joints will limit your speed.

You fire your submachine gun at the creature. Your piercing rounds cut into the Demolisher and do some damage, but by the time you reload a new magazine all the damage you dealt has healed back. You try again for a few moments inflicting some damage, but again, it seems to heal faster than you can deal damage.

Vibrations coming from the creature seem to focus and amplify around you destabilising the ground even more. The crust is thin at the best of times and this isn't helping. A fissure starts to open up under your feet. You manage to dodge to the side as a volcanic eruption explodes in the area you stood a moment ago. Rock fragments, lava, and hot gases shred the area. You avoided the main blast, but just being close to the edge was enough to weaken your shields.

New fissures start to open up around you. These are easier to dodge now that you know to look for the fissure signs in the ground. Standing far enough from the eruption is completely safe but you'll need to stay on your toes.

The Demolisher ploughs through the line of land mines and does not slow as it does so. They do more significant damage, but to your horror the damage is gone in seconds. That was your escape plan, it's time to get moving.

You try some more weapons as you move away, even throwing a few spare defender capsules into the mix. They're all somewhat effective but the damage doesn't stick. You'll need to deal damage much faster but you weren't prepared for that.

While distracted you fail to dodge a new volcanic eruption. The fissure erupts directly beneath, shattering your shield and blanketing you in fire. The power armor stops you from getting too singed but another hit like that would be certain death. For now, this is not a fight you can win.

You switch all your focus to dodging the eruptions and moving away. A few seconds after you stop firing the Demolisher slows down and turns back. That's two wins for the Demolisher, but you'll live another day.


A Segmented enemy

The Demolisher is largely defined by our wish to have a very large enemy in the game. As explained in the Gleba enemies post, the larger a creature is the more problematic it is for sprite sheets. For a conventional enemy it is width * height * directions * animation frames. Width and height are automatically larger and generally a larger creature needs more directions and animation frames to look good so conventional enemies don't scale well.

We identified early on that a "segmented enemy" as one of the ways that we could have a large enemy, because in theory we'd only need 1 animation frame. It would need more directions than normal to have smooth movement, but that's the same as a train.

In the earliest most basic (text only) draft of enemy types we only had the basic category of animation method or movement. I won't list all the types we were considering, but it included "leggy enemy" and "segmented enemy". We didn't know which type would go where though.

For a while the segmented enemy was going to go on Fulgora. This was because we knew the Fulgora landscape would have islands, so it made sense for a segmented enemy to be able to cruise the spaces between islands and give it an unbroken range. This would be another reason not to build in the quicksand.

One of the problems with this is the Dune franchise. We ended up in the segmented-enemy-on-sand direction by following the natural progression of constraints, but most people wouldn't see that and assume it's based on Dune anyway. Also, it doesn't have that unique and exciting feeling if it's too close to something you've seen before, so we decided to move segmented enemies "anywhere else".


Prototyping

After I'd finished the main prototype for Space Age I shifted my focus to enemies. I made a new branch of the game just for prototyping enemies, never to be merged into the main game, just to prove out concepts and get something tangible for further discussions. An "Enemies sandpit".

Leggy enemies went to Gleba. We didn't know if we wanted it to be more of a stomper or a strafer so I added both options expecting one to be chosen. In the end both survived the cut, and we even got the little wrigglers too.

The freezing planet had flying enemies and among them were the jelly-like enemy from FFF-367, however since then these enemies have been dropped from the game. The last planet has a delicate mix of challenges and although we found a way to add enemies to the mix in an interesting way, it would make progression much slower. It might be better as a mod.

The segmented enemy went to the volcanic planet. We didn't know exactly what it would do so it was provisionally called things like forgewyrm, magmaworm, and lavaslug. The implementation for this in the prototype was basically a conga line of tanks with some clever code to make them follow-the-leader while adding some sinusoidal movement. The leader in this case was a unit (basically a giant biter) because that already has the necessary attack logic.

The earliest prototype from years ago. This was testing the basic animation principal and the fire-blood splash back when it takes damage.


Design

Moving the segmented enemy to a planet that is mostly land had a lot of consequences for the graphics. If the creature was in deep water or sand, then it would be reasonable to have most of the creature hidden below the surface so you'd only see a few segments above the surface and gaps between them. E.g. Head, gap, back hump, gap, (repeat), tail.

On the volcanic planet we'd need to show all of the body above the surface at some point and that removes the ability to have gaps between segments.

To start with, I was leaning more towards the Demolisher being much more alien. A creature that's barely biological as far as we'd recognise it. Something potentially nuclear powered, that acts more like a force of nature as it scoops heavy isotopes from the soil. There were of course some more conventional options too.

Early Demolisher concepts Some early concepts for head shapes.

Albert wanted the enemies to be less alien and more earth-inspired so things progressed in a direction more inspired by a centipede or millipede.

A segmented unit has problems with sprite layering. By default, if a segment is further south than another segment then it's sorted in front. When sections the body are rotating or turning a corner, then as segments face east or west the overlapping order changes so a segment "pops" in front of another one. A way to bypass this problem is by having every segment separated by a 45-degree slice, so that with Factorio's camera angle a tail segment can always be sorted under the segment before it.

I made a Demolisher model with the 45 degree slices to prove that the overlapping theory would work, but also to prove that it's still possible to get an aesthetic design with this approach.

Test footage straight from blender. Note that even when the creature is going north, the head can be drawn over other body parts.

This was a big hit so a final concept art version of the head was made to give a direction for the materials.

Final Demolisher face concept

The design was signed off and sent to Jerzy for extra details and texturing, then Lucas for some final adjustments.

Thanks to StrangePan, the Demolisher was soon in the game.


A boring enemy

The initial Demolisher in game was a basic implementation. The only weapon that was firmly decided was that the face would do impact damage. There were a lot of other ideas floating around too, but it was hard to get everyone to agree on a direction.

For a while the "decreed" weapon was going to be that the Demolisher would have underground children which would pop up like worm turrets and shoot at things. We didn't go with that for various reasons.

This left the Demolisher stranded in the following state:

  • It didn't have any weapons except for the face hitting you.
  • It was fast enough to catch you without exoskeletons, so if you don't have them and you attract attention you automatically die. If you have enough exoskeletons though it just can't catch you so there's no risk.
  • It had a staggering number of hitpoints when combined with resistances. It took about 3 minutes of continuous fire from an automatic shotgun firing at the face to die. Using rockets instead was about the same.
  • The main strategy to kill it was extremely boring, just run around in a circle for 3 minutes until it dies or you run out of ammo. If you do run out of ammo, collect more and continue.
  • There were other ways to kill it too, but they're either even slower but more resource efficient, or slightly faster but require way more preparation.
  • Overall very un-fun.

I started a new combat branch to change the Demolisher balance and add some new weapons.


Defences

To start I drastically reduced the health of the Demolisher from 80000 to 30000 and reduced the resistances, in particular the flat reduction to damage that makes most attacks barely have any effect. This took the expected time to kill (with a decent damage rate) from minutes to seconds. The main difficulty of killing it now is dealing with the very high regeneration rate of 1500 hp per second. This means that when you're fighting it, you can either beat its healing with your damage rate and it dies quickly, or you can't and you need to run away. Either way the fight is over quickly, it doesn't waste your time, and both situations are interesting.

Assuming that you lose the first battle, you can (hopefully) retreat and plan a new method of attack. Factorio has a lot of weapons to choose from, so this is a nice opportunity to try some new options, and in particular, this fight rewards you from using different weapons in combination. Land mines on their own might not work, but land mines + turrets might. Defender capsules on their own might not work, but defender capsules plus a prepared poison cloud plus rockets might have a combined damage per second to do the trick.


Offences

I came up with 11 ideas for weapons that had good potential to be both effective and fun. After talking to some other people for more, we managed to get the list of good options to 13. A lot of the ideas were designed to be used in conjunction so it included things ranging from flaming blood splashback, to flamethrower holes on the sides, to subterranean shockwave attacks.

With a definitive list of options there was a meeting to decide on a set that would work together well.

Some Demolisher weapon options Some thumbnail sketches to help with explaining potential weapon mechanics.

We decided on 2 main abilities:

  1. The Demolisher would have a roar or shockwave attack. If the shockwave hit you, you could be stunned or slowed. This would kick up a cloud of ash as the shockwave travels. The cloud would have a small slow effect. The main intention for the cloud can't be disclosed yet, but if Vulcanus is your first planet then the additional effect won't affect you.
  2. The Demolisher would seismically trigger volcanic eruptions around a chosen moving target nearby. This would mean that when you're in combat with the creature, there's still some amount of threat. You're not 100% safe just by avoiding the head.

It seemed like a good starting point, but kovarex was away and not part of the discussion, so we just had to hope he'd be on board with the new plan when he got back.

As I developed these 2 concepts, I extended them a little more to work better together.

The eruptions changed to be more engaging by showing the place that they will explode ahead of time. This makes more sense graphically, but mainly it makes the whole battle a lot more interactive. The explosion damage can be far higher with the assumption that most explosions won't hit, but that's also great to make them a genuine threat.

Now, instead of not caring about your position other than not getting flattened by the head, you actually need to move around as different parts of the ground become unstable. It feels a lot more like a boss fight. If you're under powered then every explosion counts and you need to dodge a lot. If you're overpowered then you mainly just need to make sure you don't take many direct hits in quick succession, and only a small amount of occasional movement is needed for that.

The eruptions are only used against moving targets. The lore reasons for this is that it detects the vibrations in the ground made by moving targets so it's easy to aim eruptions at those, and also that it doesn't consider static things to be much of a threat. The real game balance reason is that player health with shields is so much higher than turret health, so if the turrets are targeted by explosions they die too quickly and it removes too many strategies from being viable.

Fissure stages This is my painted concept for the fissure progression. It's still used as a placeholder in the game but will be replaced with a final version at some point.

For the shockwave ash cloud effect, it being a stun was either too punishing if you got caught close to the head or near an eruption, or irrelevant in all other cases. I changed it to be more of a persistent slow, but not a slow in the way that other slows in the game work. Instead of being a flat % reduction, the effect is more like a max speed with a % of effectiveness. If you don't have any exoskeletons then you're barely affected, but if you have loads of exoskeletons it will take you most of the way back to your natural speed.

Keeping the range of player speeds to a slower, more narrow range, is an important change for a few reasons. The Demolisher speed can be much lower too so that the player is always slightly faster and can escape, but the difference with many exoskeletons is not as extreme. Eruptions can form slower and still have a chance of hitting. Exoskeletons are still very relevant though because even a small movement speed bonus helps you dodge an eruption, especially if you've fired a weapon recently.

As part of the branch I also added various visuals for the ash cloud, trail effects, and placeholder eruption effects. This branch was made while kovarex was away so we weren't sure what he'd think of it. The Demolisher combat was something that had… "resisted agreed consensus" for over a year at that point. Towards the end of the work on this branch, the work started to represent a large investment of hours which isn't ideal for something that wasn't at all signed off, but deadlines were looming and things just needed to be done.

Fortunately when he got back it all got signed off shortly before the LAN playtesting event so it was playable for the playtesters. However, there wasn't time for all of my scripted Lua code to get ported to C++, meaning that we had 100+ people playing with code that was never meant to exist outside of an experimental branch.


Territories

The territories system is a completely new mechanic. I designed a system that used voronoi noise to make distinct regions that demolishers can claim and protect. If you build in a Demolisher territory it will get annoyed and earn its name. The system was built by StrangePan and Genhis.

Demolishers patrol near the edge of their territory and you can see these patrol paths from decoratives on the ground (work in progress). You can also see demolisher territories on the map.

Demolisher territories Orthogonal lines mark territory edges and the demolisher patrol path is close to the edge. Areas with diagonal red lines are the danger zones.

The planet's starting coal, calcite, sulfuric acid, and most of the starting ashlands region are not covered by Demolisher territories. This gives you a safe area to make a factory and get the basics set up. The starting tungsten patch is in the territory of a small Demolisher, so to get the planet's science pack you'll either need to defeat it or engage in some guerilla mining operations.

We're considering adjusting the rules for which buildings in a territory provoke an attack because we have some options, such as: all structures (the current rule), active structures, or only mining structures.

Demolishers don't have spawners, the whole creature spawns directly on the map. If you kill one of these ancient creatures then their territory becomes yours, permanently.

There's no pollution. Demolishers are only provoked by you building in their territory (or damaging them).

There's no evolution. Demolisher size is only controlled by distance from the starting area.


Combat Testing

I've found many ways to kill all sizes of Demolisher at all tech levels (within reason), but for every successful way I found there are many more unsuccessful ways.

I was looking forward to people encountering Demolishers during the playtesting event so I joined different servers to watch the first encounters.

I'd estimate that at least 60% of the players survived their first encounter just by panicking and immediately running away. For players that tried to fight, I didn't see anyone get a kill on their first try, and only 25% survived their first try.

Every server killed at least one Demolisher, but the ways that this happened were wildly different. Players even found one way that I didn't think would work (but I don't want to spoil successful strategies).

The big Demolishers are much more difficult to kill. There are ways to do it early game but it's not easy and it's a big investment. For many players I expect them to wait for tech from other planets before killing big Demolishers.

Big demolisher destruction You can lure Demolishers to follow you and force them to destroy cliffs, but be careful about leading them back to your base.


Combat Clarity Improvements

We're continuing to update the balance but right now the biggest problem is not with the combat stats themselves but with transparency and feedback to the player. For example, at the moment if you alt-click a segment then Factoriopedia shows you the body resistances but you need to click on the head to see the head resistances. Ideally all body parts link to the same page which can show you both sets of resistances. Likewise we need to clarify somewhere that segments take damage individually but all damage is transferred to the creature as a whole (which is really the head).

Demolishers have no resistance to poison capsules. It's not a hint to use poison capsules, it's just because poison damage is so weak compared to other damage types that adding a resistance doesn't make sense. The problem is that if you test 1 poison capsule on a Demolisher, it looks like no damage is dealt because the regeneration is higher than the damage of a few poison capsules (even if they hit multiple segments), so the damage is healed instantly and the health bar doesn't even appear. The reality is that they do offset some of the regeneration but that isn't communicated. If we make the health bar linger for a moment after any damage then it will make that situation clearer.

These are the sort of small adjustments we will be making over the coming weeks.


Conclusion

The demolishers aren't finished. Some graphics and other small details are still in progress, for example the eruption explosions are still the generic "huge explosion" but we're part way through a more appropriate lava-based animation that doesn't obscure the player so much. We're also intending for the Demolishers to have more sinusoidal motion but some other things need to be completed first.

Unlike other planets where the expectation is that casual defences usually win, on Vulcanus casual defences will usually lose. That's fine though because generally they're not a threat to your base, only new expansions. Also on Vulcanus, most of what you're building in outposts is sort of free stuff from lava anyway so it being demolished is not a big loss. There's no need to build perimeter walls, and a typical line of turrets is one of the worst formations you can make because the Demolisher will cruise straight down it.

From playtesting there's mixed sentiment on their difficulty level. Some players feel the Demolishers are overpowered and others think that they are in a good place. If Demolishers were a conventional enemy then they would be too strong at the current level, but the fact is that they are not a conventional enemy due to the territory system. They don't attack your base the way other enemies do. Maybe the eruptions are a bit too lethal but we can adjust that.

Overall difficulty seems to be okay because you have a lot of options and you are given the space (and time) to find the option that's best for you. Without spoiling specific strategies the broader categories that you have are:

  • A good combination of personal weapons with well executed combat.
  • A static defence strategy that can be reused for multiple territories by luring in distant enemies.
  • Import special weapons from other planets.
  • Wait for more damage upgrade techs and quality to make all strategies better.

Demolisher combat can be fun and strategic. Each one is a boss fight to unlock a new territory. Demolishers are definitely the toughest enemies in the game. When something which at first seemed impossible to kill, can later be killed quickly and efficiently due to a well-executed plan, it is very satisfying.


As always, face-tank every obstacle and leave your thoughts in the usual places.