Skip to content

About

Independent two-player strategy game prototype from Loptr Lab, with local play, remote Classic matches, and PIXIE fixed game help. Accessibility validation is ongoing.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

271 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Duet: Solo

Loptr Lab mission and participation

Loptr Lab is a pre-seed, people-over-profit, accessibility-first venture working toward a self-sustaining model within a capitalist economy. Money sustains the work; meaningful change for people is its purpose. We accept funding only on terms that keep people and accessibility first. Our long-term vision includes universal basic income. We aim to bring change to life and leave a transparent record of what we tried, what worked, and what failed so others can carry it forward. This mission governs our projects, funding decisions, and partnerships; it is not a temporary marketing position.

Current open review and contribution opportunities are voluntary and unpaid. Before work begins, agree in writing on scope, time, what will be public, credit preferences, and an exit path. You can stop at any point. Participation does not promise employment, ownership, revenue share, academic credit, or future pay. Any paid commission or other formal arrangement requires a separate signed agreement before work begins. External assistance or benefits belong to the participant and are not compensation from Loptr Lab.

Financial support is optional and sustains infrastructure, maintenance, accessibility work, and documented development. Paying does not buy contributor status, canon authority, approvals, ownership, or employment. Participation and accessibility are not sponsorship rewards. Project-specific licenses and existing signed agreements continue to apply.

Full mission and participation terms.

Screen-reader-first chess variant in active development, with PIXIE fixed game help. Earlier Gemini XPRIZE planning is historical; production and accessibility acceptance require current evidence.


Research and canon status

Duet: Solo is the accessibility artifact within Loptr Lab's longitudinal doctoral practice-research project, Organizational Leadership and Narrative World-Building in Independent Game Studio Production. Veiled Dominion is the primary creative case.

Duet remains a separate two-player, 8×8 experimental mechanics lab. The canonical four-player, 14×14 rules authority is Loptr-Lab/veiled-dominion-engine. Experimental Duet mechanics do not become canon unless explicitly promoted there.


What this project does

Duet: Solo is an accessible strategy game experience designed for blind and low-vision players first (not as an afterthought).

The application includes:

  • Accessible game interaction patterns for screen readers
  • PIXIE: eight fixed game-help answers and a neutral game-help fallback, with no model API call
  • Cloud Run deployability for judging/demo reliability
  • An "Obsidian Realm" landing screen that leads into two gameplay modes: a classic ruleset, and an experimental Fog Mode (elevation-based vision and HP combat) — both built to the same accessibility standard, with information gated by fog rather than hidden only visually (see below)

PIXIE implementation and verification

The server selects one of eight fixed DUET answers through a bounded question gate. Mixed and off-topic messages receive the same neutral game-help prompt. No Gemini or other model API is called, and this help route does not persist question text.

The owner authorized the merge exception on October 5. Qualified external review, real-client help interaction, full-match and assistive-technology acceptance remain pending under #69 and #70. Source implementation is not proof that the currently serving revision includes it. See the answer review sheet and release record.


Architecture (high level)

  • Frontend: static HTML/CSS/JS (public/index.html)
    • Splits into a landing screen (#front-page) and the game itself (#game-screen), swapped via JS rather than a page reload — no routing/build step added.
    • Two gameplay modes, both sharing the same rules engine and accessible command bar: Classic (instant capture) and an optional Fog Mode toggle (elevation terrain, fog of war, HP-based combat).
    • Fog Mode's accessibility design gates information, not just visuals: querying a square via the command bar or screen reader returns only what a sighted player would actually see (visible, last-known/stale, or unexplored) — fog is a fairness mechanic, not an accessibility gap.
    • The Radius of Ruin / Sanctuary auras use a data-driven "breathing" animation (CSS custom properties set per-render from live board state — how many pieces are currently veiled or sheltered) rather than a fixed decorative pulse, with prefers-reduced-motion respected throughout.
  • Backend: Node.js + Express (server.js)
  • Support endpoint in current source: POST /api/agent (fixed answers; no model call)
  • Hosting target: Google Cloud Run

Local run

1) Install dependencies

npm install

2) Configure environment

Copy .env.example to .env and fill values:

  • PORT
  • PUBLIC_URL (optional locally, recommended in deploy)
  • GOOGLE_CLOUD_PROJECT (only when persistent remote play is enabled)

3) Start

npm start

Open http://localhost:8080


Deployment evidence and approval

Cloud Run is the hosting target. A reachable page does not establish the serving commit, provider configuration, Firestore access, or functioning model/posting services.

Read the operations handoff before changing production. Verify serving source, traffic, trigger and required configuration privately and reconfirm the owner's build-approval setting. Keep the Gemini key absent.

On October 5, 2026 at 07:55 America/Chicago, the owner explicitly authorized an exception to the merge hold on #68/#67/#71 and requested the changes needed to continue development. This waives the merge prerequisite; it does not establish completed external review, accessibility acceptance, Xbox approval or a production deployment. Review evidence remains pending under #69 and hands-on results under #70. See release status and remaining work.

A public fork supplies and pays for its own services. Follow FAN_FORK_GUIDE.md, SECURITY.md, and docs/DATA_GOVERNANCE.md; do not use Loptr Lab credentials.


Evidence for judges

This repository contains the browser client, Cloud Run deployment materials, a fixed PIXIE game-help path, and accessibility-oriented gameplay design, including Fog Mode. Current deployment, help interaction, remote-match persistence and assistive-technology usability require dated runtime evidence. Historical hackathon claims are not current infrastructure verification.


Hackathon alignment

Category: Education & Human Potential

Duet: Solo expands access to strategy learning/play by centering assistive-technology users and reducing onboarding friction with bounded game help.


Public production playtesting

Build in public against the actually serving revision. Follow the tester requirements, steps and report template. AT Proto sign-in does not save match data in players' PDS repositories; current game persistence uses operator-controlled Firestore when configured. Fixed PIXIE help is merged in source; deployment and human acceptance remain unverified.

Anonymous playtest feedback

The source implements minimal anonymous completed-game summaries and optional post-game feedback for a configured Firestore deployment. Successful live writes and retention are not established by a rendering check. The intended privacy boundary excludes room codes, reconnect tokens, DIDs, handles, email addresses, socket identifiers and network addresses from the anonymous collections. The form requires explicit consent and can be skipped; raw records are assigned a 30-day expiry timestamp.

Before deployment, enable Firestore TTL on the expiresAt field for both anonymousCompletedGames and anonymousGameFeedback. The portable schema and privacy boundary are maintained in the veiled-dominion-engine contract directory.

PIXIE ecosystem continuity

PIXIE is the shared guide; each surface has its own role, storage and permissions. Discovery, the local Creator workspace, practice notes and stewardship demonstrations are separate destinations. Links do not exchange private context or configure identity.

See PIXIE routes and verification for the destination map, explicitly unconfigured identity, and the observed source/deployment difference.

Development status

The current milestone state, completed M1 verification, M0 Xbox/Godot feasibility gate, deferred scope, and contributor review questions are maintained in docs/DEVELOPMENT_STATUS.md.

Contributors are invited to review and comment on that document, particularly the M0-A/M0-B evidence gates and the platform-neutral client boundary.

Continuing development

This project is under active development beyond the hackathon. The Veiled Dominion ecosystem — 4-player engine, Sealed Deck mechanics, stats-driven playable characters, and experimental Bluesky match-posting code for the-rift — is being built in the open. Current posting configuration and successful live posts remain unverified.

See the contributor wiki for setup, architecture, and how to get involved.


License and fan forks

Software is available under the MIT License. Fan forks must use distinct branding and must not imply Loptr Lab endorsement or canonical status. Before deploying, read FAN_FORK_GUIDE.md, SECURITY.md, and docs/DATA_GOVERNANCE.md.

Player-owned records and community work

Player-PDS game storage is required next implementation work, not current functionality. See PDS requirements and the Roomy tester/training setup. The existing Loptr Lab Roomy community now has DUET tester instructions and training onboarding. Joining is invite-only; the owner admits testers. Normal-participant and accessibility checks remain pending.

Long-term development direction

Prioritize production reliability, player-owned PDS records and replaceable service adapters. Keep the current host while validating those changes; an Azure move does not itself establish an Xbox port. See architecture direction and sequence.

About

Independent two-player strategy game prototype from Loptr Lab, with local play, remote Classic matches, and PIXIE fixed game help. Accessibility validation is ongoing.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages