Skip to content

reddit/devvit-prisma-game

Repository files navigation

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.

About

Bring back the light.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages