# Gig Line Gig Line is a workplace security simulation about observation, communication, access verification, and proportionate escalation. The player works security at public-facing venues around Hollywood Boulevard, managing stairs, entrances, crowds, guests, staff, and occasional serious threats. The central design goal is simple: > The player wins by choosing the lowest level of escalation that keeps everyone safe. ## Development Priorities The active planning order lives in [`TODO.md`](TODO.md) and [`AGENTS.md`](AGENTS.md): 1. **Character development** — crowd, age, build, hair and outfit variety on the owned procedural library, keeping the frozen NPC contract. Source evaluation and the licence decision are in [`docs/npc-model-sourcing.md`](docs/npc-model-sourcing.md). 2. **Local map development** — licensed OpenStreetMap/3D data, reference-derived photoreal facades, AI-assisted composition and a Gaussian-splatting development evaluation. 3. **Versioned release hardening** — the 0.10.0 release candidate and later semantic versions follow the unversioned development tracks. Versions are assigned only when a track's scope is accepted into a release. Every major, minor and patch version requires a changelog entry, a local release build and artifact verification before tagging. ## ⬇️ Downloads | Platform | Package | | --- | --- | | **Windows — installer** | [`gig-line-setup-.exe`](https://git.allucanget.biz/zwitschi/security-game/releases) · contains all game data, shortcuts + uninstaller | | **Windows — portable** | [`gig-line-windows-.exe`](https://git.allucanget.biz/zwitschi/security-game/releases) · 64-bit, no install needed | | **Linux — AppImage** | [`gig-line--x86_64.AppImage`](https://git.allucanget.biz/zwitschi/security-game/releases) · single file, `chmod +x` and run | | **Linux — portable** | [`gig-line-linux-.x86_64`](https://git.allucanget.biz/zwitschi/security-game/releases) · 64-bit, `chmod +x` and run | | **macOS** | [`gig-line-macos-.zip`](https://git.allucanget.biz/zwitschi/security-game/releases) · unsigned build, quarantine note below | | **Web (browser)** | [`gig-line-web-.zip`](https://git.allucanget.biz/zwitschi/security-game/releases) · unzip and serve the folder from any static host (no special headers) | | **Desktop HQ** | [`gig-line-desktop-hq-.zip`](https://git.allucanget.biz/zwitschi/security-game/releases) · optional Forward+ build with volumetric fog/SDFGI/flashlight; requires a Vulkan-capable GPU/driver | **All releases:** > Downloads are public (no sign-in required) since the host's instance-wide > `REQUIRE_SIGNIN_VIEW` was disabled on 2026-10-31. > > **Latest published: v0.9.6** — the integration checkpoint: the 0.9.5 texture > and material refinement (256² NPC maps, a four-times fabric weave without baked > AO blotches, repaired Walk of Fame/awning surfaces and per-phase skyline haze) > is packaged with the v0.9.4 NPC visual optimization, the Hollywood/Joke Shop > maps and the v0.9.3 UI/accessibility polish, with the full gallery, smoke matrix > and Web/Desktop HQ build re-verified. > > **Current source: v0.10.0-rc.1** — the release-candidate source; the final tag is pending external playtest and legal review. > Releases are built automatically when a `vX.Y.Z` tag is pushed > (see [`docs/RELEASING.md`](docs/RELEASING.md)); manual builds use > `./tools/build_releases.sh`. Installer/AppImage packaging runs in the same pipeline > (NSIS + appimagetool) and uploads with the portable binaries. > > macOS builds are unsigned: right-click → Open, or clear the quarantine with > `xattr -dr com.apple.quarantine gig-line-macos.zip`. Build instructions and > the release pipeline live in [`docs/RELEASING.md`](docs/RELEASING.md). If you are here to develop or test locally instead of downloading, jump to [Setup and Run](#setup-and-run) below. The project is under active development. The design and architecture are documented, and a playable prototype vertical slice exists (Godot 4 + GDScript): a stylized El Capitan Entertainment Centre block, a first-person guard, simulated NPCs with intents and reactions, the six-level escalation model, access inspection and admission decisions, radio calls with credibility checks, reputation, crowd mood, and an end-of-shift review. ## Screenshots Every capture is rendered from the current build by [`tools/check_screenshots.sh`](tools/check_screenshots.sh) (21 captures, compared against the runtime art). The full gallery, including every UI state, is in [`docs/screenshots/`](docs/screenshots/README.md). ### Venues | | | | --- | --- | | ![Hollywood Boulevard day shift](docs/screenshots/01-venue-overview.png) | **Hollywood Boulevard — day.** The El Capitan Entertainment Centre block: six Ionic columns, Masonic parapet, event banners, eight stone steps and the Walk of Fame terrazzo. | | ![Hollywood Boulevard at night](docs/screenshots/05-late-night-avenue.png) | **Hollywood Boulevard — late.** Sconces pool on the limestone, street lamps light the boulevard and the skyline fades into night haze. | | ![Flashlight on the entrance at night](docs/screenshots/06-night-flashlight.png) | **Night patrol.** A tight flashlight spot picks out the door and the person in front of it; movement and awareness change at night. | | ![The Joke Shop at night](docs/screenshots/12-joke-shop.png) | **The Joke Shop.** A black Sunset Strip club under its signature-covered canopy, circular blade sign, red curtains and the dry hillside behind. | | ![Late-night TV studio arrival](docs/screenshots/13-studio-arrival.png) | **TV Studio arrival.** Stone facade, bulb canopy, black car and crowd barriers for a late celebrity arrival. | ### Interaction and systems | | | | --- | --- | | ![Targeting an NPC](docs/screenshots/02-targeting-npc.png) | **Focus and targeting.** The cone focus ring, name tag and target chip; `Tab`/wheel cycles nearby people without aiming. | | ![Access inspection](docs/screenshots/03-access-inspection.png) | **Access inspection.** A venue-correct wristband check with evidence shown before the admit/refuse decision. | | ![Radio report](docs/screenshots/04-radio-report.png) | **Radio report.** Security assistance with location, behaviour and what was actually seen. | | ![Wand screening](docs/screenshots/07-wand-screening.png) | **Wand screening.** A false alarm on keys: ask the guest to identify the item before choosing a response. | | ![Escalation HUD](docs/screenshots/08-escalation-hud.png) | **Escalation.** Level 3 blocking with the shape meter, body camera armed and the reaction log. | | ![Body-camera timeline](docs/screenshots/09-body-camera-timeline.png) | **Body-camera timeline.** Every recorded event, step by step, in the shift review. | | ![Precision walk](docs/screenshots/11-precision-walk.png) | **Precision walk.** Half-speed close work on the steps, with the HUD state chip visible. | ### Shell and UI | | | | --- | --- | | ![Start menu](docs/screenshots/14-start-menu.png) | **Venue menu.** Day and night rows for Hollywood, the Joke Shop and the TV Studio, campaign continue and review links. | | ![Settings](docs/screenshots/16-settings-panel.png) | **Settings.** Difficulty, volumes, HUD scale, reduce motion, captions and key/button remapping, all persisted. | | ![Shift review](docs/screenshots/17-shift-review.png) | **Shift review.** Grade, policy outcome, incidents, responder results and campaign Continue. | | ![Action wheel](docs/screenshots/19-radial-menu.png) | **Action wheel.** De-escalation first: stop, look, point, no, ask, inspect, warn, block, reason, recognize, radio. | ### 3D asset progress The character, gear and prop libraries are authored procedurally in Blender and audited before use; the sheets below track their visual progress. | | | | --- | --- | | ![Eight NPC characters](docs/blender_previews/sheet_npc.jpg) | **Character library.** Eight skinned variants (4.5–5.5k triangles each) with five tint slots, attach-point gear and baked maps. | | ![Prop library](docs/blender_previews/sheet_props.jpg) | **Street and venue props.** Twenty library props with colliders, navigation avoidance and colour atlases. | | ![Neutral NPC baseline](docs/blender_previews/sheet_npc_baseline.jpg) | **Neutral baseline.** 8 characters × 6 views (front, three-quarter, profile, back, full body, crowd) used for the 0.9.4 pass and the current re-evaluation. | | ![Texture refinement comparison](docs/blender_previews/sheet_texture_refinement_0.9.5.jpg) | **Texture refinement.** 128 → 256 px NPC maps and a 4× fabric weave, shown before/after on the same camera. | | ![Crowd-variety prototypes](docs/blender_previews/sheet_npc_crowd_prototypes.jpg) | **Crowd variety prototypes.** Four approved looks (bun/slim, bald/broad, coat/umbrella, hood/cup) queued for the roster build. | More sheets and the review criteria are in [`docs/blender_previews/`](docs/blender_previews/README.md) and [`docs/3d-model-review.md`](docs/3d-model-review.md). ## Game Overview A typical shift lasts 10–15 minutes: watch the entrance and sidewalk, judge why each person is approaching, verify access with recognition, wristbands, IDs, tickets or credentials, and escalate only when necessary. The game rewards calm resolution over force. The venue menu splits Hollywood Boulevard into Day and Night rows; the full mechanics — the three venues, the six-level escalation model, and the core systems — are in [`docs/gameplay.md`](docs/gameplay.md); the design rationale lives in [`PLAN.md`](PLAN.md). ## Architecture A venue-driven simulation: shared systems (movement, perception, interaction, access verification, escalation, radio, crowd, reputation, evidence, shift review) driven by per-venue scenario data, on Godot 4 + GDScript. The full arc42-style document is [`docs/architecture.md`](docs/architecture.md); decisions are recorded as ADRs in [`docs/adr/`](docs/adr/). ## Tech Stack - **Engine:** Godot 4.7.2 · **Language:** GDScript - **NPCs:** Blender-authored skinned library (`assets/models/blender/`) with procedural fallbacks; lightweight FSMs on `NpcProfile` - **World:** procedural `WorldBuilder` + generated prop models - **Art:** v2 skyline/surface textures in `assets/textures/ai/game_ready/v2/picks/`; UI/scene art in `assets/images/` - **Asset tooling:** `asset_pipeline.py`, `model_pipeline.py`, `npc_pipeline.py`, `blender_assets.py`, `scene_concepts.py`, `screen_designs.py`, `check_screenshots.sh` - **Testing:** custom headless runner (`src/test/test_runner.gd`) - **Targets:** Windows, Linux, macOS, Web The asset pipelines, model tools, and screenshot gates are documented in [`docs/asset-tooling.md`](docs/asset-tooling.md). ## Setup and Run ```bash python3 -m pip install -r requirements-tools.txt godot --editor --path . # open in the editor godot --path . # run the game godot --headless --path . --script res://src/test/test_runner.gd # run all tests ``` Full setup, every run/test/smoke command, and the controls table are in [`docs/getting-started.md`](docs/getting-started.md). ## Project Documentation - [`PLAN.md`](PLAN.md) — Game design plan, development priorities and scenario details. - [`TODO.md`](TODO.md) — Priority-ordered tasks: character and local-map development, release milestones, and future work. - [`docs/README.md`](docs/README.md) — Documentation index, current priorities and visual previews. - [`docs/npc-model-sourcing.md`](docs/npc-model-sourcing.md) — Character-source evaluation, licence rules and the character-development plan. - [`AGENTS.md`](AGENTS.md) — Development, commit, build and collaboration workflow. - [`DONE.md`](DONE.md) — Completed task sections. - [`MEMORY.md`](MEMORY.md) — Persistent session notes. - [`CHANGELOG.md`](CHANGELOG.md) — User-facing changes by version. - [`docs/architecture.md`](docs/architecture.md) — arc42-style architecture documentation. - [`docs/gameplay.md`](docs/gameplay.md) — Gameplay systems, venues, and the escalation model. - [`docs/hollywood-boulevard-map.md`](docs/hollywood-boulevard-map.md) — Real-site references, game mapping and limitations for the Hollywood venue. - [`docs/joke-shop-map.md`](docs/joke-shop-map.md) — Real-site references, game mapping and limitations for the Joke Shop / Sunset Strip venue. - [`docs/tutorial.md`](docs/tutorial.md) — First-shift tutorial beats and rules. - [`docs/asset-tooling.md`](docs/asset-tooling.md) — Asset pipelines, model tools, and screenshot gates. - [`docs/getting-started.md`](docs/getting-started.md) — Setup, run/test commands, and controls. - [`docs/development-status.md`](docs/development-status.md) — Implemented features and what's next. - [`docs/accessibility.md`](docs/accessibility.md) — Accessibility features, known gaps and statement. - [`docs/known-limitations.md`](docs/known-limitations.md) — Release-candidate blockers and accepted limitations. - [`docs/smoke-checklist.md`](docs/smoke-checklist.md) — Manual smoke-test checklist. - [`CREDITS.md`](CREDITS.md) — Credits, AI/reference provenance and licensing notes. - [`PRIVACY.md`](PRIVACY.md) — Local-only data, save files and development API use. - [`docs/blender-assets.md`](docs/blender-assets.md) — Blender asset library: characters, gear, props, attach points. - [`docs/npc-visual-review.md`](docs/npc-visual-review.md) — 0.9.4 NPC baseline, acceptance criteria and ranked visual gaps; 0.9.5 texture comparison is in [`docs/blender_previews/sheet_texture_refinement_0.9.5.jpg`](docs/blender_previews/sheet_texture_refinement_0.9.5.jpg). - [`docs/npc-proportion-audit.md`](docs/npc-proportion-audit.md) — NPC proportion measurements against the shared stylized guide. - [`docs/adr/`](docs/adr/) — Architecture Decision Records. ## Development Status v0.10.0-rc.1 is the current release-candidate source: the 0.9.6 integration checkpoint plus save-migration hardening and release tooling, on top of the 0.9.5 texture refinement (256² NPC maps, a 4× fabric weave with baked-AO removal, repaired Walk of Fame/awning surfaces and per-phase skyline haze), on top of the v0.9.4 NPC visual optimization and the v0.9.3 UI/accessibility polish pass. It builds on v0.9.2's Hollywood/Joke Shop map rebuilds, v0.9.1's Godot 4.7.2 baseline, v0.9.0's production-quality pass, v0.8's tutorial/campaign/resume work and the v0.7.x venue/gear/judge work. The active planning priorities are the unversioned character and local-map development tracks; the 0.10.0 release candidate is the next versioned release. See [`docs/development-status.md`](docs/development-status.md) for the implemented list and [`TODO.md`](TODO.md) for the priority-ordered roadmap. Manual verification uses the [`docs/smoke-checklist.md`](docs/smoke-checklist.md). ## Credits, Privacy and Accessibility Gig Line is a local-only single-player game: there is no runtime telemetry or network service, and saves stay in Godot's local `user://` folder. The body-camera overlay is simulated. Asset provenance, AI-assisted image usage and credits are recorded in [`CREDITS.md`](CREDITS.md); the local-data policy is in [`PRIVACY.md`](PRIVACY.md); accessibility features and gaps are in [`docs/accessibility.md`](docs/accessibility.md); and release-candidate blockers are listed in [`docs/known-limitations.md`](docs/known-limitations.md). ## Development Workflow Follow [`AGENTS.md`](AGENTS.md): inspect the repository first, record work as checkbox tasks in `TODO.md`, move completed sections to `DONE.md`, update `MEMORY.md` with durable context, and keep this README synchronized with setup and architecture changes.