LUMINARK dev journal
EN

DEVLOG

Where Does the Fun of a Survivors-like Come From: Combat

Devlog · 2026.05.22

Where Does the Fun of a Survivors-like Come From: Combat

Ever since I started making games, one question has refused to leave my head.

Where, exactly, does the fun of a survivors-like come from?

Since Vampire Survivors kicked off the genre, countless entries have shipped. Some of them feel breathless from second to second. Others, surprisingly, feel dull. The enemies all sit on top of the same dumb logic of "walk toward the player," and yet the experience can be wildly different. Why?

After studying them for a long time, I came to a conclusion. Fun survivors-likes share a few traits in common.

1. The detail in how enemies move

2. The catharsis at the moment of a kill

3. Sound that ramps in pitch like a slot machine, or sound that feels like satisfying ASMR

Beyond these, there are smaller pleasures too: smashing crates while hoping for what's inside, watching a magnet sweep up a whole field of embers and trigger an explosive chain of level-ups. But in this post I want to focus on the single biggest axis among those above — the detail in how enemies move. The other two I'll come back to in follow-up posts.


1. The Detail in How Enemies Move

1) There's always only one or two ways out

Fun survivors-likes all share the same recurring image: the player surrounded by enemies, with only one — at most two — gaps to slip through. In well-made games, this situation arrives without rest. Enemies are slow, yet your palms still sweat. That tension only exists on top of two things: precise spawn density and the speed gap between player and enemy.

These two variables can't be solved on paper. The only way I found a workable balance was to play it, again and again, hunting for the values where every moment crackles.

2) Herding

The most stubborn problem while building enemy movement was herding.

As long as the player is faster than the enemies, you can just run in one direction without ever colliding with them — and the whole crowd piles up behind you. The pressure of being surrounded vanishes, and the run becomes trivial.

At first I assumed an "infinite map" approach — teleporting enemies that fall behind to the opposite side — would handle it. In practice, simple repositioning is far from enough.

After a few tricks, here's what I settled on:

  • Enemies only spawn on the side opposite to the player's direction of travel.
  • Enemies past a certain distance are removed, or relocated to a low-density zone — or to the opposite side of the player's heading.

* The reason for removing them is that there's a performance cap on how many enemies can be alive at once.

  • When relocating, don't do a simple left-right mirror. Spread them wide, so the pressure comes back in from many angles at once.

It's a small difference, but this one nuance separates "thrilling encirclement" from "dull herd-and-mow."

3) The same enemy should still move differently

Vampire Survivors doesn't really do this, but Rogue: Genesia and Halls of Torment both add variation to enemy movement.

  • Halls of Torment has enemies zig-zag toward you, or hold a fixed distance from the player to keep their distribution shape rather than rushing in.
  • The one that left the strongest impression on me was the enemy movement in Rogue: Genesia. Even within the same monster type, some individuals walk one way only, while others act almost like scouts — heading the opposite direction, then chasing when they spot the player. They're no longer enemies that simply approach you. They become enemies that get in the way of your route.

This kind of design ends up making the screen feel packed even when it isn't, and gives the player a new kind of pressure that doesn't let the tension slip. I adopted this approach aggressively in my own game. It actually took me a long time to notice this subtle difference, but once I applied it, the effect of these small movement variations turned out to be far bigger than I expected.

4) Spawn order builds sustained pressure

Finally, the spawn order itself is just as critical an axis as the movement.

When one wave is about to be cleared and the next elite shows up just before that — and then a special monster appears right before that elite is cleaned up — you get a flow that never lets the gap go empty. With that rhythm in place, the player can't put the controller down until the run is over.

In particular, weaving fast-moving or genuinely threatening enemies in at the right beats keeps the tension cinching tight and loosening, tight and loosening, all the way to the end.

These emotional swings stack up subconsciously, and what's left behind in the player is a memory of a really good run.