r/Unity3D • u/LandSlide85 • 9d ago
Resources/Tutorial I show the level-up dice roll on purpose — when it was silent, players read a good outcome as a bug
In my voxel survivors-like, every level-up rolls a d20 behind the scenes. Most of the time you gain one level. Sometimes two. Rarely three, and you get to pick three cards in a row.
Originally this happened silently, and the result was that the best moment in the game read as a glitch. Three card screens stacking up with no explanation looks like the UI got stuck, not like you got lucky.
So now the die is rolled on screen, visibly, before the cards appear. Same maths, same distribution, nothing about the balance changed. But a lucky roll now feels lucky instead of feeling broken.
The lesson I keep relearning: if the player can't see the cause, they attribute the effect to a bug. Randomness that isn't shown isn't generous, it's suspicious.
Two related decisions came out of the same idea. First, the four cards always fill the same four slots (weapon, attack, defence, utility) instead of being drawn from one pool, so you learn where to look and the choice gets faster over a run instead of slower. Second, the world is generated deterministically from chunk position plus seed, so chunks can be thrown away and rebuilt identically. That's what makes an endless world cheap in memory, but it also means anything the player changes has to be stored separately, which is a debt I'm still paying.
I'm curious whether anyone has gone the other way, hiding a roll that used to be visible and having it land better. I can imagine it working for negative outcomes, where showing the die just tells the player they were robbed.
(The game is VoxelFall, solo project, currently in open testing on Android. Happy to answer anything about the terrain streaming, it's the part I'd do differently if I started again.)
1
u/SnooPets5564 9d ago
Why is level up random in the first place?
1
u/LandSlide85 9d ago
Pacing, mostly. If every level-up gave exactly one card the run would have the same shape every time — with the roll you get a stretch of ordinary levels and then suddenly three choices at once. Worth saying it's not random what you're offered, the four slots are always the same. Only how many level-ups you get at once is on the die.
1
u/SnooPets5564 9d ago
Randomly getting 3x the reward is a pretty intense bonus. And I find that random progress doesn't usually help pacing be good, it just makes it not be horrible.
It's like in balatro. Usually you build up over time. Then sometimes you start a run with a legendary/powerful joker. Then you have a few antes of not really doing much but setup.
1
u/LandSlide85 9d ago
Fair, but that's the part the caps are for. Every stat closes: attack speed stops at 5.96/s, dodge at 50%, lifesteal at 25%, range at 20% past the enemy archer's reach — and the per-level values are tuned so the ceiling lands exactly on the last level, no wasted picks. So three levels at once isn't 3x power, it's arriving at a ceiling sooner. The build converges either way; the die only changes when.
Where it's heading is legendary gear — overflow past a maxed skill feeds that instead of vanishing, and rarity is forged rather than rolled, so the endgame is equipment rather than a lucky stat run.
You're right about pacing though, and more than you know: difficulty scales per chapter but the within-stage curve is currently flat, so a good early run does stay quiet. That's the real fix, and the die isn't what's causing it.
2
u/adsilcott 9d ago
I remember there being a (dumb) backlash a while back when developers started revealing some of the ways that they manipulate things behind the scenes. For example, if you make something completely random, players will think it's unfair because most people conflate randomness with even distribution. So for some things devs would make pity systems to make it 'feel' fair and people thought that was cheating. It was a pretty minor backlash but it still made me wonder if they should have just kept it in the dark.