213 lines
15 KiB
Markdown
213 lines
15 KiB
Markdown
# 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.
|
||
|
||
## 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.** The El Capitan Entertainment Centre block: six Ionic columns, Masonic parapet, event banners, eight stone steps and the Walk of Fame terrazzo. |
|
||
|  | **Hollywood Boulevard — late.** Sconces pool on the limestone, street lamps light the boulevard and the skyline fades into night haze. |
|
||
|  | **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.** A black Sunset Strip club under its signature-covered canopy, circular blade sign, red curtains and the dry hillside behind. |
|
||
|  | **TV Studio arrival.** Stone facade, bulb canopy, black car and crowd barriers for a late celebrity arrival. |
|
||
|
||
### Interaction and systems
|
||
|
||
| | |
|
||
| --- | --- |
|
||
|  | **Focus and targeting.** The cone focus ring, name tag and target chip; `Tab`/wheel cycles nearby people without aiming. |
|
||
|  | **Access inspection.** A venue-correct wristband check with evidence shown before the admit/refuse decision. |
|
||
|  | **Radio report.** Security assistance with location, behaviour and what was actually seen. |
|
||
|  | **Wand screening.** A false alarm on keys: ask the guest to identify the item before choosing a response. |
|
||
|  | **Escalation.** Level 3 blocking with the shape meter, body camera armed and the reaction log. |
|
||
|  | **Body-camera timeline.** Every recorded event, step by step, in the shift review. |
|
||
|  | **Precision walk.** Half-speed close work on the steps, with the HUD state chip visible. |
|
||
|
||
### Shell and UI
|
||
|
||
| | |
|
||
| --- | --- |
|
||
|  | **Venue menu.** Day and night rows for Hollywood, the Joke Shop and the TV Studio, campaign continue and review links. |
|
||
|  | **Settings.** Difficulty, volumes, HUD scale, reduce motion, captions and key/button remapping, all persisted. |
|
||
|  | **Shift review.** Grade, policy outcome, incidents, responder results and campaign Continue. |
|
||
|  | **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.
|
||
|
||
| | |
|
||
| --- | --- |
|
||
|  | **Character library.** Eight skinned variants (4.5–5.5k triangles each) with five tint slots, attach-point gear and baked maps. |
|
||
|  | **Street and venue props.** Twenty library props with colliders, navigation avoidance and colour atlases. |
|
||
|  | **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.** 128 → 256 px NPC maps and a 4× fabric weave, shown before/after on the same camera. |
|
||
|  | **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).
|
||
|
||
## ⬇️ Downloads
|
||
|
||
| Platform | Package |
|
||
| --- | --- |
|
||
| **Windows — installer** | [`gig-line-setup-<ver>.exe`](https://git.allucanget.biz/zwitschi/security-game/releases) · contains all game data, shortcuts + uninstaller |
|
||
| **Windows — portable** | [`gig-line-windows-<ver>.exe`](https://git.allucanget.biz/zwitschi/security-game/releases) · 64-bit, no install needed |
|
||
| **Linux — AppImage** | [`gig-line-<ver>-x86_64.AppImage`](https://git.allucanget.biz/zwitschi/security-game/releases) · single file, `chmod +x` and run |
|
||
| **Linux — portable** | [`gig-line-linux-<ver>.x86_64`](https://git.allucanget.biz/zwitschi/security-game/releases) · 64-bit, `chmod +x` and run |
|
||
| **macOS** | [`gig-line-macos-<ver>.zip`](https://git.allucanget.biz/zwitschi/security-game/releases) · unsigned build, quarantine note below |
|
||
| **Web (browser)** | [`gig-line-web-<ver>.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-<ver>.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:** <https://git.allucanget.biz/zwitschi/security-game/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.
|
||
|
||
## 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.
|