Thirty Cards, Four Rarities, and a Stat Called Luck
This is the post about the Vampire Survivors half of td-survivors: the level-up cards. Every run in this game turns into something a little different, and the reason is a pool of about 30 cards that you draw from every time you level up. Pick enough of them in the right order and a plain wave of towers becomes a crit-fishing lottery, or a wall of fire that spreads on its own, or an economy engine that buries you in XP. This is where a run gets a personality.
If you've forgotten how leveling even happens here, that came from gluing a tower defense to a survivors game: enemies drop XP orbs, you collect them, the bar fills, you level up. And the things you're upgrading are the 16 towers I introduced last time. This post is what happens the instant that XP bar hits the top.
Level up, and the world holds its breath
The moment you level up, the game freezes and shows you three cards. You pick one, and play resumes.
Quick design note, because I'm proud of this one: it does not pause the engine. The engine keeps running at full speed the whole time. What freezes is just the simulation phase, the part that moves enemies and towers and bullets. Everything else, the overlays, the card animations, the little glow on the frame you're hovering, keeps rendering like normal. So the card screen feels alive instead of like someone slapped a PAUSE sticker over a still frame. The world is holding its breath, not switched off.
What's in the pool
The ~30 cards come in two flavors.
First, per-tower level cards. Level up your Gun. Level up your Prism. Unlock and then level the Cursed Idol, or the Magnet Pylon. These are the bread and butter: they make the towers you already have hit harder or do their thing more often.
Second, global upgrades, which don't care which towers you own and buff the whole run. Those split three ways:
- Economy cards: orbs are worth more XP, your pickup radius gets bigger, orbs ripen over time and pay out more the longer you leave them lying around.
- Combat cards: crit chance, bonus damage to enemies that are slowed or near the exit, a chance to just "fire twice."
- Meta cards: the weird ones that change the card system itself, which I'll get to.
Four rarities (and yes, right now they're colored rectangles)
Every card has a rarity, one of four tiers, and you can tell them apart by the color of the frame:
- Common (white) - roughly 70% of draws
- Rare (blue) - roughly 23%
- Epic (purple) - roughly 6%
- Legendary (gold) - roughly 1%
Rarity gates how spicy an effect is allowed to be. A common card nudges a number. A legendary rewrites a rule.
Now the disclaimer I owe you, because this is pre-alpha and I refuse to pretend otherwise: those cards are, literally right now, text on colored rectangles. The rarity is the frame color, because that's all there is. The art everywhere else is Kenney's CC0 tileset, the sounds and music are Juhani Junkala's CC0 work, and the font is good old Press Start 2P. And the name "td-survivors" is a placeholder too, still stubbornly refusing to be replaced. It's held together with tape and free assets, and it plays great, which is the only part I'm claiming credit for.
The stat called Luck
Here's the one that ties the whole thing together. Luck is a stat, and some cards raise it.
Luck multiplies the draw weight of the rarer tiers. Common is unaffected (it's the floor), but rare, epic, and legendary all scale up with your Luck. So at base Luck those 70/23/6/1 odds hold, but crank Luck to around 10 and legendaries go from "once in a blue moon" to "several times more likely," with epics and rares fattening up too. Luck doesn't just help you level, it literally reshapes what your run is capable of becoming. A high-Luck run is a different game than a no-Luck one, because it's fishing out of a completely different-looking deck.
The cards that define a build
This is the fun part. A few of my favorites, so you can see how a run gets its shape:
- Momentum - +4% damage for every wave you survive, forever. It's nothing early and monstrous late.
- Adrenaline - your towers fire faster for a moment right after a kill, so a good chokepoint snowballs into a shredder.
- Wildfire - burning enemies ignite their neighbors, so one fire tower becomes a chain reaction down the path.
- Overkill - excess damage on a kill splashes onto the next enemy in line, so overkill stops being wasted.
And then the legendaries, the ones that bend the rules:
- Fourth Slot - level-ups now show four cards instead of three, permanently. More choice, every single level, forever.
- Echo Chamber - your next pick applies twice. Save it for something juicy.
- Golden Idol - +50% XP, but enemies get +15% HP. A genuine deal-with-the-devil: you level faster into a harder game.
- Executioner's Edge - your crits do 3x damage instead of 2x. Pair it with crit chance and you've built a slot machine that pays in corpses.
The meta cards that mess with the deck
And then a small handful of cards act on the card system itself:
- Reroll - throw back this level's three cards and draw three new ones.
- Banish - delete a card from this run's pool for good. Tired of being offered Gun levels? Banish it, never see it again this run.
- Fortune's Wheel - +5 Luck and a bonus card next level. Both halves of "make my future picks better," in one card.
Keeping the deck honest
Two systems details I'm quietly happy with, because they're what keep the late game from turning to mush.
First: maxed cards leave the pool. Once a tower or an upgrade hits its cap, it stops showing up. So you never get to level 40 and get offered "Gun +1" for the eleventh time when Gun has been maxed for twenty levels. Every card you're offered late is a card that still matters.
Second: each stage caps how many distinct global upgrade types you can own. You can't collect one of everything. At some point the game makes you commit: you're the crit build, or the fire build, or the economy build, and you can't be all three. That cap is the difference between a run having an identity and a run being a shapeless pile of every green number I could think of.
That, in one screen you see a hundred times a run, is the Vampire Survivors half. Thirty cards, four colors, and a stat that quietly decides which of those colors you actually get to see.
Next time: the technical deep-dive. How this entire thing (towers, orbs, cards, freezing the sim but not the engine, all of it) runs on bitECS and LittleJS with a strict no-OOP rule and not a single class in sight. See you in the components.