# Neon Sprawl **Neon Sprawl** is the working title for a classless, crafting-focused sci-fi / cyberpunk MMORPG (solo-dev scope). Product intent and phase gates: [`neon_sprawl_vision.plan.md`](neon_sprawl_vision.plan.md). ## Tech stack (locked) | Area | Choice | |------|--------| | Client | **Godot 4.x** (GDScript) | | Game server | **C# / .NET 10** (ASP.NET Core), **PostgreSQL**, **Protobuf** (JSON OK for earliest spike) | | Content | **JSON/YAML** + **JSON Schema** in CI | Full rationale and constraints: [`docs/architecture/tech_stack.md`](docs/architecture/tech_stack.md). ## Decomposition Epic-level breakdown: [`docs/decomposition/README.md`](docs/decomposition/README.md). ## Git workflow - **Documentation** (Markdown under `docs/`, README files, `neon_sprawl_vision.plan.md`): work and commit **directly on `main`**. - **Code and implementation** (server/client source, Godot project, `content/` data, Docker/build/CI config): use a **branch**, then merge to `main` when ready. Mixed doc + code changes follow the branch rule. ## Repository layout (prototype scaffold) | Path | Purpose | |------|---------| | [`NeonSprawl.sln`](NeonSprawl.sln) | .NET solution | | [`server/NeonSprawl.Server/`](server/NeonSprawl.Server/) | ASP.NET Core game server | | [`client/`](client/) | Godot 4.x project (import `project.godot`) | | [`content/`](content/) | JSON data + JSON Schema (`skills/`, `schemas/`) | | [`docker-compose.yml`](docker-compose.yml) | Local **PostgreSQL** (`docker compose up -d`) | ### Run the server ```bash cd server/NeonSprawl.Server && dotnet run ``` Then open `http://localhost:5253/health` (port from `launchSettings.json`). ### Run Postgres locally ```bash docker compose up -d ``` Connection (dev): host `localhost`, port `5432`, database `neon_sprawl`, user `neon_sprawl`, password `neon_sprawl_dev`. ### Run the client Open the [`client/`](client/) folder in **Godot 4.2+** and run the main scene (see [`client/README.md`](client/README.md)).