Back to Projects
In DevelopmentMobile Game

Bang! or Not

A comic Wild West bank game about one decision: shoot or hold your fire. Watch who walks through the three doors, stop the robbers before they act, and protect the townsfolk and hostages.

Platforms
iOS (iPhone and iPad, landscape)
Built with
Godot 4.7
Campaign
4 chapters, 20 stages, boss fights
Status
Internal testing

Shooting games reward the fastest finger. Bang! or Not rewards the right call. Three bank doors open in a comic Wild West, and the person behind each one may be a robber, a citizen, a disguised customer or a hostage. Shoot too early and you lose a life; wait too long and the robber fires. Knowing when not to shoot is half the game. It is in internal testing.

What it does

Design choices

Judge first, then shoot

Three doors, three fire buttons, three lives. A wrong shot costs a life, so reading the person matters as much as reaction time. A shared six-round cylinder adds a second decision: when to reload. Four control schemes and four difficulties are planned.

A campaign that teaches before it tests

The runtime campaign has 4 chapters and 20 stages, with boss fights after stages 5, 10, 15 and 20. New rules arrive one at a time: for example, hostages are introduced from stage 2, and a new type is first shown in isolation before it is mixed with others.

Fair by construction, not by luck

The design contract gives each stage an exact event budget, and the planned score ceiling comes from that budget. Players should not win or lose because the random draw was kind. Sloppy randomness would make a judgment game feel arbitrary, so it is constrained.

Honest about records

Scores are personal bests with a three-star rating on the device. A leaderboard contract exists on the backend, but global ranking is not active: the build notes say verified global rankings are not enabled. The game is iOS-only (iPhone and iPad, landscape) and in internal TestFlight.

How it's built

Constraint-based stage generator

Each run gets a fresh seed, then a candidate stage is built from a role budget and checked against a list of impossible conditions: overlapping door slots, no damage-free solution path, too long a high-pressure stretch. Failing candidates are discarded, never eased silently.

Solvable and replayable

The spec requires a damage-free path with time for judgment and moving between doors, checked for both standard and comfortable timings. Seed, generator version and content hash are logged, so a bad run can be reproduced. A build record cites 96,000 unique generation checks passed.

Godot 4.7, native iOS

The game is written in GDScript on Godot 4.7.2 with the GL Compatibility renderer, exported through Xcode as a landscape universal iPhone and iPad app with separate phone and tablet layouts and English, Korean and Japanese. The Build 8 pack had 194 runtime images and 97 audio files.

Rapid, evidence-logged TestFlight loop

From Oct 19 to Oct 22, 2026 the game went from build 1 to build 16 on internal TestFlight. Each release record notes test results, for example 137 regression tests and 800 random runs for build 14, and states the limits: no real-device performance or human audio sign-off is claimed.

All Projects Contact