- TypeScript 99.6%
- HTML 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Deploy / deploy (push) Successful in 21s
- 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 |
||
| .forgejo/workflows | ||
| src | ||
| .gitignore | ||
| index.html | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
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 deploy →
wrangler pages deploy dist). Requires repo Actions secrets CF_API_TOKEN and
CF_ACCOUNT_ID.