33 lines
2.0 KiB
Markdown
33 lines
2.0 KiB
Markdown
# Neon Sprawl — Godot client
|
||
|
||
Open this **`client/`** directory as a project in **Godot 4.6** (4.x compatible). Use the **standard** Godot build (not the .NET build)—client code is **GDScript** (`.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).
|
||
|
||
## Movement prototype (NS-14)
|
||
|
||
The main scene includes a **client-only** click-to-move demo:
|
||
|
||
- **Left-click** walkable ground (the large floor) to move the capsule avatar; **WASD is not required**.
|
||
- Movement is **direct horizontal steering** plus **`move_and_slide()`**: the capsule walks toward the click and **slides along** the center crate instead of pathfinding around it. (A hand-authored `NavigationMesh` was not reliable across Godot versions; **NavigationAgent3D** can return later for routed paths.)
|
||
- The avatar is on **physics layer 2** with **mask 1** (floor + obstacle on layer 1); the pick ray uses **mask 1** so clicks pass through the avatar and hit the floor.
|
||
|
||
This behavior is **temporary**: when authoritative movement and `MoveCommand` / `PositionState` exist, the client will follow server state instead of driving navigation locally.
|
||
|
||
### Manual check
|
||
|
||
1. Run the main scene (**F5**).
|
||
2. Click the floor: the avatar walks to the point.
|
||
3. Click behind the center crate: the avatar **slides** against the crate (no nav mesh path around it in this build).
|
||
|
||
### Clicks still ignored?
|
||
|
||
In the **Game** dock, **Input** must be active (not the **2D** / **3D** scene-picking tools) so events go to the game. If Input is on and clicks still do nothing, pick rays must use the **viewport’s current camera** and **mouse position** (the script does this so the embedded Game view matches the ray).
|
||
|
||
## First run
|
||
|
||
1. Install [Godot 4.x](https://godotengine.org/download).
|
||
2. In the project manager, **Import** and select `client/project.godot`.
|
||
3. Press **F5** to run the main scene.
|