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.)
Posted Aug 13, 2026, 4:55 PM UTC