first commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user