Files
SoullessNecromancer/README.md
T
2026-07-16 17:37:25 +02:00

49 lines
1.7 KiB
Markdown

# 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
```bash
# 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](http://localhost:5173).
Postgres runs on **port 5433** by default (see `server/.env`) to avoid clashing with a local Postgres on 5432.
## Play loop
1. **Register** with email, password, character name, and specialty (`ZOMBIE` or `SHADOW`).
2. **World map** — click tiles to move (max 3 Manhattan steps). Other online players appear live.
3. **Portal** — stand next to the pulsing portal tile and click it to enter your personal dungeon instance.
4. **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.
5. **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).