Skip to content

Latest commit

 

History

History
59 lines (42 loc) · 1.71 KB

File metadata and controls

59 lines (42 loc) · 1.71 KB

PRISMA

PRISMA is a collaborative light-puzzle game built as a Devvit Web app for Reddit. Players place mirrors, prisms, and filters to route beams and complete constellation patterns.

Tech Stack

  • Devvit Web (@devvit/web, devvit)
  • React 19 + TypeScript
  • PixiJS 8 for rendering
  • Hono for API routing
  • Vite + Tailwind CSS 4

Run Locally

Prerequisites

  • Node.js 22.12+ recommended
  • npm
  • A Reddit account with Devvit access

Setup

  1. Install dependencies:
    • npm install
  2. Authenticate Devvit CLI:
    • npm run login
  3. (Optional) Update the playtest subreddit in devvit.json under dev.subreddit.
  4. Start playtest mode:
    • npm run dev

This opens a live Devvit playtest flow where the inline splash view launches into the game view.

Scripts

  • npm run dev - Start Devvit playtest
  • npm run build - Build client and server bundles
  • npm run type-check - Run TypeScript checks
  • npm run lint - Run ESLint
  • npm run test - Run unit tests with Vitest
  • npm run deploy - Type-check + lint + test + upload app
  • npm run launch - Deploy then publish

Project Layout

  • src/client - Web client (splash, game UI, Pixi renderer, interactions)
  • src/server - Devvit server routes, game state persistence, scheduler/menu handlers
  • src/shared - Shared types, level definitions, ray tracing, win checking
  • public - Static client assets (audio, etc.)

Notes for Contributors

  • The app is serverless on the Devvit runtime; avoid assumptions about long-lived server state.
  • Keep gameplay logic deterministic (especially ray tracing and win checks).
  • Mobile ergonomics are a first-class concern; test touch interactions when changing controls.

License

BSD-3-Clause. See LICENSE.