1.7 KiB
1.7 KiB
Soulless Necromancer
Web multiplayer necromancer game: build a zombie or shadow army, roam a shared map, and delve into click-combat crypts.
Stack
- Client: React + Vite + TypeScript
- Server: Node.js + Express + Socket.io + TypeScript
- Database: PostgreSQL + Prisma
Prerequisites
- Node.js 20+
- Docker (for PostgreSQL)
Setup
# From repo root
npm install
npm run db:setup # starts Postgres on :5433, pushes schema, seeds items
npm run dev # API :3001 + Vite :5173
Open http://localhost:5173.
Postgres runs on port 5433 by default (see server/.env) to avoid clashing with a local Postgres on 5432.
Play loop
- Register with email, password, character name, and specialty (
ZOMBIEorSHADOW). - World map — click tiles to move (max 3 Manhattan steps). Other online players appear live.
- Portal — stand next to the pulsing portal tile and click it to enter your personal dungeon instance.
- Dungeon — click empty tiles to move (Move mode) or switch to Summon to place units. Summons walk toward enemies when nothing is in range; combat is automatic in range. Clear the floor for XP, loot, and floor progression.
- Progression — spend stat points on level-up; equip relics from the Relics panel. Outside dungeons, HP and energy regenerate slowly while you are online on the world map.
Useful scripts
| Script | Description |
|---|---|
npm run db:up |
Start Postgres container |
npm run db:migrate |
Apply Prisma migrations |
npm run db:seed |
Seed item catalogue |
npm run dev |
Run client + server |
Env
Server env lives in server/.env (see defaults for local Docker Postgres).