Skip to content

feat(TASK-051): add local 2-player support - #39

Merged
pythoninthegrass merged 1 commit into
mainfrom
task-051
Sep 14, 2026
Merged

pythoninthegrass merged 1 commit into
mainfrom
task-051

Conversation

@pythoninthegrass

Copy link
Copy Markdown
Contributor

Summary

  • Extends core/world.zig/core/abi.zig with real 2-player semantics (shared world status, per-player alive projection, two-phase collision with head-to-head mutual kill) per decision-034
  • Wires the Godot presentation/input layers up to it per decision-035: a second BoardView for player 1, an arrows/WASD input split, ABI-free shared-status derivation for pause/restart/overlay gating, and per-player HUD score/status labels
  • include/neo_snake.h is untouched (AC#1)

Test plan

  • task check green: 123 test cases / 0 errors / 0 failures / 0 flaky / 0 skipped across 20 suites, plus audio/music checks
  • git diff --stat main -- include/neo_snake.h produces zero output (AC#1)
  • New tests in game/tests/test_game_screen.gd cover independent per-player input routing and per-player HUD updates (AC#2/feat: add oracle corpus generator (TASK-014) #3)

Extend core/world.zig and core/abi.zig with real 2-player semantics
(shared world status, per-player alive projection, two-phase collision
with head-to-head mutual kill) per decision-034, then wire the Godot
presentation/input layers up to it per decision-035: a second BoardView
for player 1, an arrows/WASD input split, ABI-free shared-status
derivation for pause/restart/overlay gating, and per-player HUD score/
status labels. include/neo_snake.h is untouched, satisfying AC#1.
@pythoninthegrass
pythoninthegrass merged commit 1a65fa8 into main Sep 14, 2026
3 checks passed
@pythoninthegrass
pythoninthegrass deleted the task-051 branch September 14, 2026 03:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant