What if renewing a passport was a JRPG quest?
Not metaphorically.
I mean six signatures, absurd procedures, arcade confrontations, collapsing institutions, political caricatures, and one exhausted citizen trying to get a document stamped.
That became Civic Nightmare.
It is a small open-source browser RPG built in Godot 4.6, and you can play it right now.
🎮 Play in browser:
https://daniele-cangi.github.io/civic-nightmare/
🕹️ itch.io:
https://unityloop.itch.io/civic-nightmare
💻 Source:
https://github.com/Daniele-Cangi/civic-nightmare
The whole game started with one stupidly simple problem
You need to renew your passport.
That should be easy.
Instead, you are sent through a surreal administrative world where every signature belongs to another machine of power, another procedure, another interpretation of reality.
The result is part JRPG, part arcade game, part political satire, and part bureaucratic nightmare.
You play as an ordinary citizen.
Not a president.
Not a billionaire.
Not a chosen hero.
Just somebody who needs a passport.
Unfortunately, the paperwork has other plans.
Six signatures. Six different kinds of nonsense.
The main quest sends you across a hand-built overworld to collect six signatures.
Each authority has its own environment, personality and procedure.
Some encounters became actual minigames.
One turns negotiation into a strange blackjack match.
Another turns 27 approvals into a physical consensus machine.
One makes you stabilize inflation with something resembling monetary-policy pinball.
Another turns a “three-minute special operation” into an intentionally forgiving pseudo-3D administrative corridor.
The joke is not only in the dialogue.
I wanted the architecture itself to tell you something before anybody speaks.
Rooms, machines, monuments, queues, checkpoints and interfaces are part of the satire.
The bureaucracy is the level design.
It gets stranger from there
Civic Nightmare also contains optional areas that have almost nothing to do with obtaining the passport.
Which is probably why they belong in the game.
There is a quantum UFO.
A classified bunker.
An unstable AI demonstration.
A cybernetic fulfillment cathedral.
A Red Phone.
And several situations where the official explanation of what is happening becomes less reliable than what is physically happening on screen.
I deliberately wanted the world to feel as if several genres had been forced into the same administrative form.
The result is something I started calling civic surrealism.
The browser version is the real game
This is not a stripped-down demo page.
The current build runs directly in the browser.
It includes:
- the overworld,
- signature encounters,
- minigames,
- optional investigations,
- persistent progress,
- a versioned local dossier,
- contextual touch controls,
- the final determination,
- and the CRT/VHS presentation layer.
Progress is stored locally in the browser, so you can leave and come back.
The game also runs on desktop through Godot.
Play it here:
https://daniele-cangi.github.io/civic-nightmare/
Why I made it open source
Civic Nightmare was always more interesting to me as a complete experiment than as a commercial game.
It is small, strange and finished enough to have an identity.
But there is a lot of room for other people to push it somewhere I would not.
So the source is public.
And this is the part I would really like to expand now:
I want other people to add to the nightmare.
Contributions can be technical, visual or completely absurd.
Things that would be genuinely useful
- new minigames,
- new optional encounters,
- dialogue,
- translations,
- pixel art,
- accessibility improvements,
- browser compatibility,
- touch controls,
- sound,
- bug fixes,
- tests,
- tooling,
- strange administrative procedures I did not think of.
You do not need to understand the entire project before contributing.
There are already scoped areas where somebody can work without touching the whole game.
The repository includes a contribution guide and architecture documentation.
👉 Contribute here:
https://github.com/Daniele-Cangi/civic-nightmare
The bureaucracy is accepting applications.
A few things I learned while building it
The biggest one was that satire works better when it becomes mechanics instead of just dialogue.
It is easy to make an NPC say something absurd.
It is much more interesting when the player has to physically participate in the absurdity.
A consensus process becomes a machine.
Economic stability becomes pinball.
A political claim becomes a scoring rule.
Administrative delay becomes level structure.
That was the point where Civic Nightmare stopped feeling like a collection of jokes and started feeling like a game.
Another lesson was that a small game benefits enormously from being visually opinionated.
The project mixes:
- pixel-scale characters,
- large authored environments,
- CRT presentation,
- arcade encounters,
- exaggerated civic architecture.
It is not trying to look neutral.
That helped a lot.
Civic Nightmare is built in Godot 4.6. The main composition root coordinates the overworld and larger story transitions, while focused modules handle things such as: The game also separates runtime assets from editable source material and keeps contribution boundaries documented. The browser build uses Godot Web export and keeps persistence in browser-backed local storage. The repository includes headless smoke tests covering major game flow, save/restore, signature progression, touch state and scene transitions.Click to see how the game is structured
A few examples: A readable blackjack-like game runs first. Then a separate official result decides who gets the point. The arithmetic and the declaration are intentionally different systems. Twenty-seven approvals become a physical machine of scanners, stamps, translations, documents and exceptions. The player physically stabilizes an inflation indicator through a pinball-like system. Inside the UFO, the player has to deal with temporal echoes and several incompatible observations of the same citizen. The pause system itself is diegetic. What it shows changes depending on what has happened in the case.Click to see some of the stranger systems inside it
The Greatest Deal
The Consensus Engine
The 2% Miracle
The Observation Problem
Administrative Hold
The game is already finding its way into open-source lists
Civic Nightmare is currently listed in:
- OpenSourceVideoGames
- OpenSourceGames
- Up for Grabs
That last one matters to me because I do not want the repository to be merely visible.
I want it to be workable by other people.
If someone adds a translation, improves a scene, builds a new minigame or finds a spectacular way to break the bureaucracy, that is exactly what I want the project to become.
Play it before reading the source
Seriously.
The code makes more sense after you understand the tone.
🎮 Browser:
https://daniele-cangi.github.io/civic-nightmare/
💻 GitHub:
https://github.com/Daniele-Cangi/civic-nightmare
Source code is released under the MIT License.
Media and narrative assets have their own rights boundary documented in the repository.
If you want to contribute, start with CONTRIBUTING.md.
If you just want to play it, that is also perfectly valid.
After all, somebody still has to get the passport signed.
Your passport is valid. Your interpretation remains under review.



Top comments (2)
yooo this is such a fun concept 😭 Turning bureaucracy into a 16-bit boss fight is exactly the kind of weird creative project I love seeing.
I genuinely want to play this and if you’re open to contributors, I’d love to try helping out too. Definitely going to be following this one 👀🎮
yooo, thank you! Glad you appreciate the madness! 😭🎮You're absolutely welcome to contribute, provided you have a high tolerance for spaghetti code, existential dread, and writing algorithms that calculate tax returns in 16-bit. It’s an absolute chaotic mess right now, but hey, that's part of the fun ⚔️📄