Expanded 45×45 district made the 18 m MaxHorizontalStep too restrictive (floor diagonal ~63 m). Add HorizontalStepEnabled to MovementValidationOptions (default false, matching DistrictBoundsEnabled pattern) so the check is skipped unless explicitly opted in. Add test for disabled case (9 pass). Update README and plan with the decision. |
||
|---|---|---|
| .cursor | ||
| .github/workflows | ||
| .vscode | ||
| client | ||
| content | ||
| docs | ||
| scripts | ||
| server | ||
| .gitignore | ||
| AGENTS.md | ||
| NeonSprawl.sln | ||
| README.md | ||
| docker-compose.yml | ||
| gdlintrc | ||
| neon_sprawl_vision.plan.md | ||
README.md
Neon Sprawl
Neon Sprawl is the working title for a crafting-focused sci-fi / cyberpunk MMORPG with gigs (combat roles) and open non-combat skills (solo-dev scope). Product intent and phase gates: neon_sprawl_vision.plan.md. Design axioms: it must be fun, and it must stay distinctly cyberpunk in theme (see Design axioms in the vision plan).
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.
Decomposition
Epic-level breakdown: docs/decomposition/README.md.
Git workflow
- Documentation (Markdown under
docs/, README files,neon_sprawl_vision.plan.md): work and commit directly onmain. - Code and implementation (server/client source, Godot project,
content/data, Docker/build/CI config): use a branch, then merge tomainwhen ready. Mixed doc + code changes follow the branch rule.
Repository layout (prototype scaffold)
| Path | Purpose |
|---|---|
NeonSprawl.sln |
.NET solution |
server/NeonSprawl.Server/ |
ASP.NET Core game server |
client/ |
Godot 4.x project (import project.godot) |
content/ |
JSON data + JSON Schema (skills/, schemas/) |
docker-compose.yml |
Local PostgreSQL (docker compose up -d) |
Run the server
cd server/NeonSprawl.Server && dotnet run
Then open http://localhost:5253/health (port from launchSettings.json).
Run Postgres locally
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/ folder in Godot 4.6 and run the main scene (see client/README.md).