← All projects

Side Project 04 / 2026

Please, Vote for Me! — Election RPG

In development · Playable prototype

A playable browser game combining city exploration, office furnishing, team development, and election strategy. Built with JavaScript and HTML Canvas, with fictional candidates, simulated support, and local browser saves. The game is still in development.

No installation. Opens in a new tab. The game interface is currently in Traditional Chinese.

The story

Suppose today, I decide to run for office.

I have a key, a little money, and an empty campaign office. Voters do not know me yet, but my rivals are already out campaigning. What should I do on day one?

Get the office running

An empty room. Do you buy desks first, or furniture that restores energy? Every office purchase changes what you can afford to do next.

Step outside and listen

Walk the streets, meet residents, and respond to local events. Choose where to spend your limited energy while support shifts and rival campaigns keep moving.

The day ends. The campaign continues.

Recruit and train teammates, manage resources, then use district information and the journal to understand daily changes and plan your next move.

Give the player a reason to plan tomorrow.

The project brings city exploration, lighthearted dialogue, and resource management into one loop: choose, observe, and try a different plan. Gameplay and difficulty continue to evolve through playtesting.

Inside the prototype

From one office to a whole city.

Screenshots captured directly from the public v40 build on October 26, 2026. Visuals and rules may change in later iterations.

Engineering decisions

Make each choice connect to what follows.

Build a browser game with JavaScript and HTML Canvas, connecting simulation rules, controls, and visual feedback.

Separate rules from rendering

World data, game rules, drawing, and UI input have separate responsibilities. Support changes, furniture effects, and daily settlement can be checked independently of Canvas rendering.

Connect play through shared state

Funds, energy, furniture, teammates, offices, and support form the game state. Actions check their requirements before updating state and UI, keeping resources consistent across screens.

Support both clicks and keys

Move by clicking the floor or using arrow keys / WASD, with contextual interactions and a game menu. Camera framing, dialogue layers, and furnishing gestures are refined through playtesting.

Keep fixes covered by regression checks

Node.js checks cover district rules, three-way competition, city events, personnel, and furnishing. Scripts and styles share a content-derived version to reduce mixed-release cache problems.

The game loop

  1. ExploreCity · Neighborhoods
  2. ManageOffice · Team · Resources
  3. SimulateRivals · Daily events
  4. RespondSupport · Journal · Save

JavaScript / HTML Canvas / CSS / localStorage · Static web deployment

Ready to explore

Where will you put your first desk?

Play browser prototype (Chinese) ↗

Before you play

  • Use arrow keys / WASD or click the floor to move. E interacts, B opens furnishing; the game menu also provides controls.
  • Progress is saved in the current browser. Clearing site data, switching devices, or using private browsing may lose your progress.
  • The map draws on Taipei landmarks. Candidates, events, and support figures are simulated game content, not real polling.

Current development focuses on office management, city exploration, and team progression. Campaign balance, event variety, and mobile controls will continue to be refined through player feedback.

Explore more projects →