yujiri.xyz

Game Design

Stop locking levels

written 2024-06-26

We need to move away from locking levels until the player completes the previous one.

I think I understand why people do it: they think players like the sense of progress of seeing things unlocked. And maybe they do. But there's a big problem with locking levels: you can't actually know if the player has beaten previous levels or not, because they might've played on a different device or installation of the game. This was something I thought of as a kid but never considered a big problem until it became one for me, when I wanted to play Portal 2 on a new installation and do challenge mode on various chambers, but I would've had to replay the entire game first even though I've already played it several times. Funnily, Portal 2 on computer includes an in-game developer console that lets you cheat, but there's no way to use it to unlock the levels.

If you don't want to give up the appearance of things becoming unlocked, you could instead put an option to unlock them in a fairly hidden menu, out of the way of first time players, but findable for experienced players.

For games that don't consist of levels, such as RPGs, it's not so simple to do this. The equivalent is a save editor, which I wouldn't blame developers for not adding because it requires actual effort, whereas in level games, you don't have to do anything to not lock levels, just don't write the code to lock them, or add 1 simple button to unlock them. Still, it'd be awesome if we normalized first-party save editors, or at least designing saves to be easily hand-editable.

Again, this might seem like an obscure complaint, but it won't when you're the person who needs it, just like subtitles might seem like an obscure feature until you're the hearing-impaired player, or the person playing in a noisy environment.

Proxied content from gemini://yujiri.xyz/game-design/stop-locking-levels.gmi

Gemini request details:

Original URL
gemini://yujiri.xyz/game-design/stop-locking-levels.gmi
Status code
Success
Meta
text/gemini; lang=en
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.

What is Gemini?