Lock client scripting to GDScript; document in README and tech stack

- State GDScript as the locked choice for Godot client code
- Summary tables and client README note standard (non-.NET) Godot build
- Server/client contract via Protobuf or JSON spike, not shared C# on client

Made-with: Cursor
main
don 2026-03-29 19:36:18 -04:00
parent 8199dab748
commit 31bce2b344
3 changed files with 7 additions and 5 deletions

View File

@ -6,7 +6,7 @@
| Area | Choice | | Area | Choice |
|------|--------| |------|--------|
| Client | **Godot 4.x** | | Client | **Godot 4.x** (GDScript) |
| Game server | **C# / .NET 8** (ASP.NET Core), **PostgreSQL**, **Protobuf** (JSON OK for earliest spike) | | Game server | **C# / .NET 8** (ASP.NET Core), **PostgreSQL**, **Protobuf** (JSON OK for earliest spike) |
| Content | **JSON/YAML** + **JSON Schema** in CI | | Content | **JSON/YAML** + **JSON Schema** in CI |

View File

@ -1,6 +1,6 @@
# Neon Sprawl — Godot client # Neon Sprawl — Godot client
Open this **`client/`** directory as a project in **Godot 4.2+** (4.x recommended). Open this **`client/`** directory as a project in **Godot 4.2+** (4.x recommended). Use the **standard** Godot build (not the .NET build)—client code is **GDScript** (`.gd`).
- Main scene: `scenes/main.tscn` (bootstrap `scripts/main.gd`). - Main scene: `scenes/main.tscn` (bootstrap `scripts/main.gd`).
- Networking will use **WebSocket** or **TCP** to the C# server; authoritative logic stays on the server per [`docs/architecture/tech_stack.md`](../docs/architecture/tech_stack.md). - Networking will use **WebSocket** or **TCP** to the C# server; authoritative logic stays on the server per [`docs/architecture/tech_stack.md`](../docs/architecture/tech_stack.md).

View File

@ -6,13 +6,15 @@
**Server runtime (locked):** **C# / .NET 8** — primary author has ~10 years C# experience; authoritative game logic, persistence, and ops stay in this stack. **Server runtime (locked):** **C# / .NET 8** — primary author has ~10 years C# experience; authoritative game logic, persistence, and ops stay in this stack.
**Other operator skills:** **JavaScript** and **TypeScript** remain useful for content tooling, client-side scripting in Godot (GDScript on client for fast iteration), and one-off scripts—**not** the authoritative server. **Client scripting (locked):** **GDScript** in Godot—fast iteration, native engine integration; server remains the only **C#** game-logic surface.
**Other operator skills:** **JavaScript** and **TypeScript** remain useful for content tooling and one-off scripts—**not** the authoritative server.
## Summary ## Summary
| Layer | Choice | Role | | Layer | Choice | Role |
|--------|--------|------| |--------|--------|------|
| Game client | **Godot 4.x** | Rendering, input, camera, local prediction (if any), UI, telemetry emit | | Game client | **Godot 4.x** + **GDScript** | Rendering, input, camera, local prediction (if any), UI, telemetry emit |
| Game server | **C# / .NET 8** (ASP.NET Core) | Authoritative simulation, zones, combat/crafting resolution, persistence boundaries | | Game server | **C# / .NET 8** (ASP.NET Core) | Authoritative simulation, zones, combat/crafting resolution, persistence boundaries |
| RPC / messages | **Protobuf** (or **JSON** for earliest spike only) | Versioned contracts between client and server | | RPC / messages | **Protobuf** (or **JSON** for earliest spike only) | Versioned contracts between client and server |
| Primary database | **PostgreSQL** | Characters, inventory, progression, economy ledger, idempotent transactions | | Primary database | **PostgreSQL** | Characters, inventory, progression, economy ledger, idempotent transactions |
@ -26,7 +28,7 @@
- Strong fit for solo iteration: fast reload, small install, no revenue cap. - Strong fit for solo iteration: fast reload, small install, no revenue cap.
- 3D isometric camera (orthographic or perspective), zoom, and **no rotation** are straightforward in a single-camera rig. - 3D isometric camera (orthographic or perspective), zoom, and **no rotation** are straightforward in a single-camera rig.
- **GDScript** for rapid client prototyping; **Godot C#** available if you want client/server language alignment in hot paths. - **GDScript (locked)** for all client gameplay and UI code—quick reload, examples and addons match; share contracts with the server via **Protobuf** or **JSON** (spike), not shared C# assemblies.
- Networking: treat **WebSocket** or **TCP** as transport only; **authoritative logic stays on the ASP.NET Core server**, not in Godots high-level multiplayer templates, to avoid fighting engine assumptions. - Networking: treat **WebSocket** or **TCP** as transport only; **authoritative logic stays on the ASP.NET Core server**, not in Godots high-level multiplayer templates, to avoid fighting engine assumptions.
**Prototype discipline** **Prototype discipline**