2026-07-16 17:37:25 +02:00
2026-07-16 17:37:25 +02:00
2026-07-16 17:37:25 +02:00
2026-07-16 17:37:25 +02:00
2026-07-16 17:37:25 +02:00
2026-07-16 17:37:25 +02:00
2026-07-16 17:37:25 +02:00
2026-07-16 17:37:25 +02:00

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

  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).

S
Description
No description provided
Readme 100 KiB
Languages
TypeScript 85.2%
CSS 14.1%
HTML 0.7%