About this project
Violencetown is a minimalist yet system-rich 2D action-RPG playable directly in the browser without dependencies or build steps. Built entirely in vanilla JavaScript using HTML5 Canvas, it emphasizes architectural clarity and deterministic design. The game operates on a single world clock: each player input advances one turn, synchronizing combat, NPC behavior, and day/night cycles. Its radial action wheel uses a pure state model where one function determines affected tiles — ensuring consistency between visual feedback, friendly-fire confirmation, and damage resolution. NPCs are governed by a single 'disposition' scalar that influences dialogue, bribes, alliances, and merchant pricing — unifying social and economic systems. All randomness is seeded for reproducibility, and saves persist via localStorage. The world is hand-authored with directional zones (Street, Sewer, Factory, Carnival, Graveyard, Wilderness) connected by physical transitions. Combat is flat and deterministic — no dice rolls — with typed hit-splats for immediate feedback. Zone pursuit allows enemies to follow players across areas; doors can be jammed with pipes for temporary safety. Controls are modal and keyboard-centric, with touch/mouse support for navigation and UI. The project includes a full PWA setup (manifest + service worker), dev server for live reload, and a comprehensive test suite running in Node.js. Design decisions are documented in the 'plans/' directory, including feature briefs and risk matrices. Third-party assets include Kenney’s CC0 sprites and VT323 font under their respective licenses. The codebase is structured around core modules like combat, pathing, inventory, and AI, all designed for unit testing and maintainability. Development follows a four-gate pipeline outlined in GAME_STUDIO_PLAN.md. No accounts or backend required — everything runs client-side.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.