No description
  • TypeScript 99.6%
  • HTML 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Treefolk-me 1cc302b138
All checks were successful
Deploy / deploy (push) Successful in 21s
feat(intro): lock cold-open camera, box-less atmospheric narrative, real walk to driver
- cold open now locks the CAMERA too (forward only, mouse drained so no
  snap on unlock); looking around is the first control regained post-crash.
  Dev mode (?dev) exempt so playtesting can still free-look.
- split mid-screen messaging: story/mood lines via Ui.tell (centered fade,
  no box, cutscene aesthetic); control hints via Ui.say, restyled to a quiet
  box-less label low on screen (heavy bordered box removed).
- fix: the wake "look around" hint used to fire behind the black/crash
  cutscene (unseen) — moved to the curtain's .then, when looking unlocks.
- wake now spawns the player ~6.7 m to the side/back of the driver (was
  ~2.9 m, inside talk range) → an actual "spot him, walk over" beat.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_019DXCEcH7aHm5PNRTJ9vEbp
2026-06-22 21:22:13 +02:00
.forgejo/workflows feat: NONEWHERE — PS1-era dread driving/exploration game 2026-06-13 15:28:20 +02:00
src feat(intro): lock cold-open camera, box-less atmospheric narrative, real walk to driver 2026-06-22 21:22:13 +02:00
.gitignore chore: gitignore the personal bugs notes (local only, not for the repo) 2026-06-17 14:41:15 +02:00
index.html feat: mobile touch controls (dual sticks, E/F, landscape + fullscreen) 2026-06-14 12:48:11 +02:00
package.json feat: NONEWHERE — PS1-era dread driving/exploration game 2026-06-13 15:28:20 +02:00
pnpm-lock.yaml feat: NONEWHERE — PS1-era dread driving/exploration game 2026-06-13 15:28:20 +02:00
pnpm-workspace.yaml feat: NONEWHERE — PS1-era dread driving/exploration game 2026-06-13 15:28:20 +02:00
README.md feat: NONEWHERE — PS1-era dread driving/exploration game 2026-06-13 15:28:20 +02:00
tsconfig.json feat: NONEWHERE — PS1-era dread driving/exploration game 2026-06-13 15:28:20 +02:00
vite.config.ts feat: NONEWHERE — PS1-era dread driving/exploration game 2026-06-13 15:28:20 +02:00

NONEWHERE

A PS1-era dread driving / exploration game. You come to after a bus crash in the snow, remembering nothing. There is a car by the road. There is fog. You drive.

No map. No minimap. No HUD. No goal — only the road, the white nothing, and the people still out here, who look wrong. So do you.

Vibe

  • Authentic late-90s look: low internal render resolution upscaled with nearest-neighbour, vertex jitter (wobbling polygons), ordered dithering, a cold dread vignette, and heavy exponential fog that doubles as the edge of the world.
  • Rounded — not blocky — low-poly humanoids with faces that are slightly, deliberately wrong, and heads that turn to follow you.
  • Everything is generated at runtime in code: canvas textures, geometry, and procedural Web Audio (a low drone, snow-wind, the engine, footstep crunch, and rare stings that swell out of the fog). No binary assets ship.

The map

A single winding mountain road through deep snow. You can pull off the road a little, but the mountains and the fog wall you in — it's arranged sections, not an open world. Points of interest are spread out along the route:

  • the crashed bus you woke beside,
  • an old gas station (out of fuel for years — though your car never ran on fuel anyway) with one strange attendant,
  • an abandoned house (two floors, four rooms) full of things to examine: blank magazines, a scratched-out poster, a bathtub full of something black,
  • a figure on a frozen lake, a roadside shrine, a stalled truck, and the end of the road.

Controls

WASD / arrows walk · drive
Mouse look around
E interact / enter & exit the car / advance text
Shift run (on foot)
M mute / unmute

Camera is third-person and semi-locked: it follows you on foot and eases into a chase position behind the car.

Run it

pnpm install
pnpm dev        # http://localhost:5173
pnpm build      # type-check + production build to dist/
pnpm preview    # serve the built dist/

Dev/debug: append ?dev to the URL to skip the intro; window.__game then exposes teleport/peek helpers used by the playtest scripts.

Web (now) & Steam (later)

The game is a pure static SPA — vite.config.ts sets base: './' so the exact same dist/ works both served over HTTP (Cloudflare Pages) and loaded from a local file origin inside a Tauri shell. To ship on Steam later: wrap dist/ with Tauri (tauri init, point frontendDist at ../dist), build the native binary, and upload it via SteamPipe. No game code has to change — there are no servers, no remote calls, and no runtime asset downloads.

Deploy

Auto-deploys to Cloudflare Pages on push to main via the Forgejo Actions workflow in .forgejo/workflows/deploy.yml (pnpm run deploywrangler pages deploy dist). Requires repo Actions secrets CF_API_TOKEN and CF_ACCOUNT_ID.