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: Cursormain
parent
8199dab748
commit
31bce2b344
|
|
@ -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 |
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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).
|
||||||
|
|
|
||||||
|
|
@ -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 Godot’s 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 Godot’s high-level multiplayer templates, to avoid fighting engine assumptions.
|
||||||
|
|
||||||
**Prototype discipline**
|
**Prototype discipline**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue