neon-sprawl/client/README.md

2.0 KiB
Raw Blame History

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.

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 viewports current camera and mouse position (the script does this so the embedded Game view matches the ray).

First run

  1. Install Godot 4.x.
  2. In the project manager, Import and select client/project.godot.
  3. Press F5 to run the main scene.