Skip to content

Make Agent Fighter keyboard bindings configurable #15

Description

@SYMBaiEX

Status

Deferred after the Cycle 3 research gate. Issue #16 ranked this below runnable SDK documentation examples. No report identified a problem in Agent Fighter, and its second-player arrow keys already address the specific mismatch described in the external demo report.

User and workflow

A person trying OpenController Agent Fighter from the keyboard may be unable or unwilling to use the fixed key assignments. They need to discover the controls and choose bindings that fit their keyboard, input preferences, or accessibility setup without editing demo source code.

Direct evidence

  • 2026-02-16 — OpenAI developer forum, “2D game built with Codex and agent skills”: a player said arrow keys did not move the character because that demo mapped only WASD; the author added arrow and space mappings. Direct thread

This is one human-player report about a different demo. It establishes one concrete mapping mismatch and a source-level workaround, not prevalence or an OpenController user complaint.

Cycle 3 also reviewed Accessible-Chess issue #5, opened 2026-08-14, which requests configurable app-owned shortcuts, conflict warnings, and keyboard-only recovery. Its comments include many project-owner status updates, so the count is not independent corroboration; the request is about a different product. A Hacker News comment on a 2026-06-18 assistive-gaming article recounts one indirect anecdote about a player being banned for third-party remapping software. The article itself returned HTTP 403. These sources support remapping as a broader accessibility concern but do not establish Agent Fighter demand or justify this demo-specific scope.

Repository fit and interpretation

Agent Fighter currently hard-codes two keyboard layouts in examples/agent-fighter/src/client.js: player one uses WASD and selected letter keys, and player two uses arrows plus other fixed keys. This repository owns the demo and can make its keyboard controls inspectable and configurable. The current second layout already handles the specific arrow-key movement example, so the external report is a motivation for configurable bindings, not proof that the current demo has the same bug.

Proposed outcome

Revisit only if future evidence identifies demand for app-owned remapping in this demo or a broader repository-owned accessibility path. The general remapping sources above do not, by themselves, justify implementing a settings UI in Agent Fighter.

Acceptance criteria if selected

  • Show both players' keyboard bindings in the demo UI and allow each action to be rebound without editing source files.
  • Reject or resolve duplicate action bindings and conflicts with Agent Fighter's own shortcuts, including the current F/fullscreen conflict; prevent a key from triggering both an action and an unrelated global command.
  • Warn when bindings overlap browser- or OS-reserved keys where detectable, and document that full detection is platform-dependent.
  • Persist the selected bindings locally and provide a reliable reset to documented defaults.
  • Verify movement, jump, attack, block, and special actions for each player after remapping; keep gamepad input working independently.
  • Document keyboard controls and the limitation that browser/OS shortcuts may intercept certain keys.

Dependencies

Deferred outside the active Cycle 3 milestone after research gate #16 ranked the repository-owned documentation coverage improvement above this demo-specific work. Do not implement in this cycle.

Non-goals

  • No general accessibility framework or OS-wide remapping tool.
  • No changes to the core SDK's semantic action-map API unless research demonstrates a separate package-level need.
  • No claim that configurable keys alone address broader accessibility requirements.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cycle-3-deferredConsidered but deferred from the active Cycle 3 build scope

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions