Skip to content

Cycle 3 research gate: rank evidence-backed AI and gaming opportunities #16

Description

@SYMBaiEX

Goal

Run the next evidence-led AI and gaming improvement cycle for OpenController. End with a reviewed, bounded change merged to main (or a documented no-build decision if evidence does not justify implementation), an updated opportunity record, and a concrete next-cycle goal. Issue creation is a research backlog, not build approval. The gate selected #14 for implementation, merged in PR #19 at f2baa6b. PR #24 records roadmap closeout and closes this issue after Cycle 4 gate #23 existed. Candidate #15 remains deferred outside the active milestone.

Starting state and duplicate check

Reviewed the roadmap docs/roadmap/ai-gaming-opportunities.md and issues #5, #7, #8, #9, and #10. Cycle 2 implementation PRs #12 and #13 have merged; the updated status and merge commits are recorded below.

Cycle 2 issues #8 and #9 were implemented and merged as PR #12 and PR #13. Issue #10 remains deferred. Cycle 3 must avoid duplicating the merged slices and rank candidates against current code.

Initial evidence log (2026-10-04 review)

These are dated public reports and a targeted sample, not a survey or prevalence estimate. Separate reports within a single project/ecosystem are not independent replications. Engagement counts and repeated examples do not estimate the number of affected users.

Source and date Direct observation and workaround Initial interpretation and limits
SDL #13177, opened 2025-06-05; useful reply 2026-08-07 An Arch Linux user reports an Xbox Series controller over Bluetooth/xpadneo stops producing SDL input after reconnect. A commenter confirms an additional Xbox Elite 2/PCSX2 case. The reply suggests SDL_JOYSTICK_HIDAPI=0 (or narrower Xbox HIDAPI disable) to use evdev; reboot was otherwise required. Concrete reconnect diagnostic and workaround, but the reported failure is in SDL HIDAPI/udev and physical-device ingestion, which OpenController does not own. Keep upstream reconnect repair out of build scope unless a bounded adapter-side gap is demonstrated.
Steam for Linux #13665, opened 2026-09-29 A Steam Machine reporter says Steam Input destroys and recreates a virtual Xbox pad whenever an app launches; an already-running app loses its opened device. The workaround is to quit and relaunch the affected app. Detailed single-host report about Steam Input/host lifecycle. OpenController's Linux helper lifecycle is distinct; the SDK cannot repair Steam's shared virtual-device lifecycle. Do not treat as an OpenController defect.
Valve Steam Input request #8746, opened 2022-08-17; follow-up 2026-09-15 A user requests emulation in several console-style virtual profiles rather than Xbox only, citing Windows tools and wired-only game constraints; later comments mention third-party tools. Demonstrates an enduring expressed desire for virtual profile choice, but it is a Steam Input feature request. OpenController already has multiple output profiles; Cycle 2 #9 covers its encoder conformance. Avoid duplicating this as a new build claim.
Factorio Learning Environment #418, opened 2026-09-15 A reporter says four documented API examples fail against a live headless server and proposes correcting signatures. No working workaround is recorded. One external project's concrete docs/example failure. Candidate #14 tests a narrower behavior OpenController owns; this does not show OpenController has stale examples.
OpenAI developer forum demo thread, 2026-02-16 A player could not move with arrows because that demo mapped only WASD; the author added arrow and space bindings. One report about another demo, with a source-edit workaround. Candidate #15 is a low-confidence, demo-only exploration. OpenController Agent Fighter already gives its second player arrow-key movement.
Steam Deck discussion, missing rumble, 2026-08-04; controller order, 2026-09-26 A user reports lost rumble on SteamOS; another reports unusable device ordering while docked and says a restart did not fix it. Individual Steam Community reports already logged in the Cycle 1 roadmap. They concern host/device behavior and do not establish an OpenController-owned root cause.
Factorio Learning Environment PR #413, 2026-09-07 A long evaluation rollout surfaced a generic observation error without its underlying exception; replaying the same actions worked on fresh servers. The PR added retained exception details and retry logging. Already informed Cycle 2 issue #8. Do not duplicate that selected replay-error work.
Hacker News FLE launch, 2025-03-11 Launch discussion showed interest in game-agent benchmarking and long-horizon automation. Attention to a launch is not evidence of a particular OpenController pain or implementation priority.
Accessible-Chess issue #5, opened 2026-08-14 Requests app-owned remappable shortcuts and command aliases, conflict warnings, and keyboard-only recovery/reset. Accessibility-focused evidence from another product. Its 20 comments include many owner status/implementation updates, not independent confirmations; it does not show Agent Fighter demand.
Hacker News comment #48624304, 2026-06-22, on an OpenAssistiveTech article dated 2026-06-18 A commenter recounts a friend with a broken arm being banned for third-party keyboard-remapping software while trying to play one-handed. The article fetch returned HTTP 403; the comment was accessible. One indirect anecdote about third-party remapping policy, not a request for app-owned controls and not evidence about Agent Fighter.

Coverage limits

  • Reddit search and DuckDuckGo returned HTTP 403 on 2026-10-04; no Reddit posts were reviewed. Steam Community search returned a generic page without a useful verifiable dated result.
  • An accessibility-focused GitHub issue was reviewed, but it concerns another product. An assistive-gaming article returned HTTP 403; only a Hacker News comment was accessible. No accessibility evidence specific to Agent Fighter was found.
  • The examples above are self-reports and feature requests. No thread count is a prevalence estimate. External pain signals remain limited; Keep key SDK documentation examples runnable #14 was selected because a repository-owned documentation-coverage gap was verified, not because community prevalence was established.
  • Issue Explore host-side physical gamepad input for OBS overlays #10's macOS physical-input idea and the Agent Fighter regression baseline work remain deferred from Cycle 2. Re-open them only if refreshed evidence and repository feasibility materially improve.

Initial candidate backlog and provisional ranking before the gate

Rank for research attention Candidate Fit/evidence assessment Current state
1 #14 — Keep key SDK documentation examples runnable High repository ownership and bounded dry-run validation; an internal CI coverage gap is verified, while the FLE failure is adjacent evidence only. Selected for the Cycle 3 build.
2 #15 — Make Agent Fighter keyboard bindings configurable No Agent Fighter complaint; player two arrows cover the reported mismatch and fresh accessibility evidence concerns other products. Deferred outside the active Cycle 3 milestone.

The initial backlog was intentionally small because most reports concerned upstream behavior, overlapped Cycle 2, or lacked repository fit. The gate selected #14 as a preventive, repository-owned CI improvement and deferred #15; it did not treat external reports as prevalence evidence.

Cycle 3 gate decision (2026-10-04)

The repository audit inspected main at ba0529e, onboarding docs, example entry points, root scripts, and CI:

  • The Getting Started dry-run flow and AI Agent Integration action-map/state-patch snippets are not executed by tests.
  • Root tests cover package suites, not docs snippets or example packages. examples/basic-dry-run/index.ts is runnable but has no test or build script.
  • Agent Fighter has a Playwright headless match runner and quality gates, but those do not execute SDK docs or validate keyboard remapping. Player two already has arrow-key movement; R resets and F toggles fullscreen.
  • The gap is lack of executable documentation coverage, not a verified stale OpenController snippet.

Selection: #14, a preventive CI slice. Repository ownership and dry-run validation are direct. FLE #418 is an adjacent concrete docs failure, not evidence that OpenController examples are defective. Keep tested sources shared with docs to prevent fixture drift. Cover the standalone Getting Started dry-run path, one AI action-map/state-patch path, and the basic dry-run example; assert observable state/action or replay behavior; require no key, device, permission, or live game. Exclude live native, OBS, game, and hardware claims. Estimated effort: low-to-medium, 1–2 days.

Defer #15. Accessible-Chess issue #5 supports app-owned remapping as a broader accessibility concern but is from another product and its comments include owner status updates. The HN remapping anecdote is indirect. Neither identifies an Agent Fighter problem; player two already has arrow movement. A configurable UI also requires persistence, conflict handling, recovery, and browser testing (estimated 2–4 days), while browser/OS shortcut detection is incomplete. Revisit only with stronger fit or direct evidence.

Cycle DAG and checklist

flowchart TD
  A[Refresh public-source evidence] --> B[Audit current OpenController behavior and ownership]
  B --> C[Rank opportunities and record limits]
  C --> D[Select, revise, or defer candidates #14/#15]
  D --> E[Define bounded build/review task DAG and acceptance criteria]
  E --> F[Implement selected work in coherent reviewable commits]
  F --> G[Independent review and focused/integrated checks]
  G --> H[Open stacked PRs against declared parent branches]
  H --> I[Merge in dependency order after review and checks]
  I --> J[Update roadmap/backlog and open the next cycle goal]
Loading

Research and rank

  • Refresh sources in relevant public AI/gaming communities: GitHub issues/discussions (including SDL, Steam, game-agent projects), Steam Community, developer forums, Hacker News, Reddit if reachable, and a relevant accessibility source if discoverable.
  • For every cited item, record direct URL, post date, user/workflow, reported failure or request, stated workaround/current alternative, recurrence evidence, and confidence. Mark interpretation separately; do not infer prevalence from a few reports, replies, reactions, or search rank.
  • Record failed searches/access limits and distinguish upstream host/game bugs from behavior OpenController controls.
  • Audit current code, docs, merged PRs, and open Cycle 2 PRs before ranking; update each candidate's fit, cost, risk, dependencies, acceptance scope, and deferred/selected status.
  • Select only a bounded issue with direct-enough evidence and repository ownership, or document a no-build decision. Do not begin candidate implementation until this gate is complete.

Issue DAG and implementation

Independent review, stacked PRs, and merge

Close and next cycle

Acceptance

  • Sources and coverage limits are dated, directly linked, and distinguish observed claims from interpretation.
  • The final rank is tied to current repository behavior and names upstream boundaries; there are no unsupported prevalence claims.
  • Any selected build issue is scoped, dependency-linked, measurable, independently reviewed, and merged only after its required checks pass; otherwise the no-build decision is explicit.
  • A next-cycle goal is opened from the updated backlog.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cycle-3Tracked work for OpenController AI and Gaming Improvement Cycle 3

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions