JT
  • Home
  • Projects
  • Extras
  • Contact

© 2026 Joshua Tjhie. All rights reserved.

GitHubLinkedIn
Back to Projects
  1. Home
  2. Projects
  3. Bursting Panopticon

Bursting Panopticon

Govern a city of living bubbles, where funding an invention can cost the supplies you need for the next crisis.

Game jamWeb
Bursting Panopticon

Details

JavaScriptHTMLCSS

Links

Source on GitHub

The Gas Tinkerers arrive with an invention to fund. Supporting them costs ten water and ten fat from the city's stockpile. Declining saves the supplies and loses their goodwill.

You make that decision as the newly crowned Caesar of Bullospolis, a city of living bubbles. Bursting Panopticon is a browser game made for the 2025 Global Game Jam. Its story advances through requests and crises, with the city's resources and faction reputations visible around each event.

A Price Now, a Consequence Later

The research request makes the immediate tradeoff explicit.

DecisionWaterFatGas reputation
Fund the researchLose 10Lose 10Gain 3
DeclineNo changeNo changeLose 1

The choice also sets a story flag. The next day's events check whether the research received support, so the decision changes which follow-up you see. The numbers tell you what it costs now; the later event shows what the faction did with your answer.

The opening event introduces the new Caesar, surrounded by resource and reputation counters.
Taking office in Bullospolis. The stockpile and reputations remain visible around the event.
Gas bubbles request research funding. A choice shows its cost in water and fat and its effect on reputation.
The Gas Tinkerers' request shows the cost of accepting and the reputation lost by declining.

Keeping the Events in Data

The event text, requirements, and outcomes live in JSON files grouped by day. JavaScript reads those records, creates the choice buttons, and applies their effects. A choice can require supplies or a story flag, and the interface explains unmet requirements when it disables a button.

This lets an event's wording and consequences sit together in the same record. The renderer handles the repeated work of showing the card and updating the city.

Questions About This Project?

Ask about how it works, or point out something I missed.

Contact me