Address review feedback: Implement Godot dedicated server scene + player spawning #51

Merged
reviewer-bot merged 26 commits from agent/3bba30f838d1 into main 2026-08-21 01:00:24 +00:00
Collaborator

Addresses the review feedback on PR #47 (project.godot wholesale overwrite) -- finished by the operator (DeepSeek budget exhausted). project.godot itself is now correctly additive (input actions only, client's run/main_scene/ApiClient autoload/api_base_url/rendering method all untouched).

Found and fixed two further real bugs while verifying, both confirmed by reproducing rather than trusting the branch's committed state:

  1. A genuine scene path collision: scenes/player.tscn was used both by this task (server-authoritative PlayerNode) and by PC2's already-merged client-side character scene -- same path, two different scenes. The branch's last commit had literally committed unresolved <<<<<<< merge-conflict markers into the file instead of resolving them (would fail to parse). Renamed the server's scene to scenes/server_player.tscn, restored scenes/player.tscn to exactly match main's real client scene, repointed scripts/server.gd's preload.

  2. A real regression from fixing #1's parent issue: scenes/server.tscn's root Node had no script attached at all -- it only ever worked in earlier verification because project.godot had Server registered as a project-wide autoload (the exact wholesale-overwrite problem this task was asked to fix). Once that autoload was correctly removed, nothing attached server.gd to the scene tree and the dedicated server silently did nothing when launched. Attached scripts/server.gd directly to scenes/server.tscn's root node instead, which is the correct fix (an autoload would have run the server code inside the client too).

Verified: godot --headless --import/--quit clean, full 10-suite client smoke test passing, dedicated server actually listens on UDP port 7777 when launched explicitly (godot --path . scenes/server.tscn) -- confirmed with ss -ulnp, not just the startup log line (first checked with -tlnp, which only shows TCP and falsely suggested nothing was listening; ENet is UDP-based).

Addresses the review feedback on PR #47 (project.godot wholesale overwrite) -- finished by the operator (DeepSeek budget exhausted). project.godot itself is now correctly additive (input actions only, client's run/main_scene/ApiClient autoload/api_base_url/rendering method all untouched). Found and fixed two further real bugs while verifying, both confirmed by reproducing rather than trusting the branch's committed state: 1. **A genuine scene path collision**: `scenes/player.tscn` was used both by this task (server-authoritative `PlayerNode`) and by PC2's already-merged client-side character scene -- same path, two different scenes. The branch's last commit had literally committed unresolved `<<<<<<<` merge-conflict markers into the file instead of resolving them (would fail to parse). Renamed the server's scene to `scenes/server_player.tscn`, restored `scenes/player.tscn` to exactly match `main`'s real client scene, repointed `scripts/server.gd`'s preload. 2. **A real regression from fixing #1's parent issue**: `scenes/server.tscn`'s root `Node` had no script attached at all -- it only ever worked in earlier verification because `project.godot` had `Server` registered as a project-wide autoload (the exact wholesale-overwrite problem this task was asked to fix). Once that autoload was correctly removed, nothing attached `server.gd` to the scene tree and the dedicated server silently did nothing when launched. Attached `scripts/server.gd` directly to `scenes/server.tscn`'s root node instead, which is the correct fix (an autoload would have run the server code inside the client too). Verified: `godot --headless --import`/`--quit` clean, full 10-suite client smoke test passing, dedicated server actually listens on UDP port 7777 when launched explicitly (`godot --path . scenes/server.tscn`) -- confirmed with `ss -ulnp`, not just the startup log line (first checked with `-tlnp`, which only shows TCP and falsely suggested nothing was listening; ENet is UDP-based).
agent-bot added 26 commits 2026-08-21 01:00:03 +00:00
Two genuine bugs, found by reproducing rather than trusting the branch's
own state:

1. scenes/player.tscn collided with PC2's client-side player scene at the
   exact same path (server-authoritative PlayerNode vs. the local
   single-player character) -- whichever merged last would silently
   overwrite the other. The branch's own last commit had literally
   committed unresolved <<<<<<< conflict markers into the file instead of
   resolving them. Renamed the server's version to
   scenes/server_player.tscn, restored scenes/player.tscn to match main's
   real client scene exactly, repointed scripts/server.gd's preload.

2. scenes/server.tscn's root Node had no script attached at all -- it only
   ever worked before because project.godot had `Server` registered as a
   project-wide autoload (the exact wholesale-overwrite this task was
   already asked to fix). Once that autoload was correctly removed,
   nothing attached server.gd to the scene tree anymore and the dedicated
   server silently did nothing. Attached scripts/server.gd directly to
   scenes/server.tscn's root node instead.

Verified: godot --headless --import/--quit both clean, full 10-suite
client smoke test all passing, and the dedicated server actually listens
on UDP port 7777 when launched explicitly (`godot --path . scenes/server.tscn`)
-- confirmed with `ss -ulnp`, not just trusting the startup print (first
checked with `ss -tlnp`, which only shows TCP and falsely suggested it
wasn't listening at all; ENet is UDP).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M6rUEynmv2QmweocAQYARN
Collaborator

Approving and merging directly (operator) -- DeepSeek budget exhausted, finishing this directly rather than a review cycle nothing can run. Found and fixed two further real bugs beyond the original project.godot request: a genuine scene-path collision with PC2's client player scene (the branch had literally committed unresolved conflict markers instead of resolving it), and a real regression where scenes/server.tscn's root node lost its script entirely once the (correctly removed) autoload stopped attaching it implicitly. Verified the dedicated server actually listens on UDP 7777 when launched explicitly, and the full 10-suite client smoke test still passes.

Approving and merging directly (operator) -- DeepSeek budget exhausted, finishing this directly rather than a review cycle nothing can run. Found and fixed two further real bugs beyond the original project.godot request: a genuine scene-path collision with PC2's client player scene (the branch had literally committed unresolved conflict markers instead of resolving it), and a real regression where scenes/server.tscn's root node lost its script entirely once the (correctly removed) autoload stopped attaching it implicitly. Verified the dedicated server actually listens on UDP 7777 when launched explicitly, and the full 10-suite client smoke test still passes.
reviewer-bot merged commit 019dfca14f into main 2026-08-21 01:00:24 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: daddy/modbison#51