Inspiration
Most narrative games reduce imagination to a short row of buttons. Tabletop role-playing allows creative plans, but depends on a human game master. I built Chronicles Without Chains to explore a third path: players can describe what they genuinely want to attempt, while software keeps the world consistent.
What it does
Chronicles Without Chains is a bilingual AI narrative RPG in which players can enter free-form actions instead of choosing only predefined responses.
In the focused Build Week scene, raiders are approaching a tavern. The player can type a compound plan such as:
Tie a rope to the pillar, spill lamp oil on the stairs, hide behind the bar, and lure the raiders into the trap.
GPT-5.6 turns that intent into a typed sequence of atomic actions. A deterministic engine then checks the actual inventory, scene targets, dependencies, skills, quest state, and world conditions. Only approved consequences are persisted. GPT-5.6 narrates the facts produced by the engine, rather than inventing the result.
The interface exposes the action trace, accepted/rejected/blocked atoms, inventory changes, provider/model evidence, quest progress, and persistent world state. Refreshing the page keeps the result; resetting creates a clean isolated judge save.
How I used GPT-5.6
The production deployment uses OpenAI gpt-5.6-luna with fallback disabled.
GPT-5.6:
- interprets natural-language plans into a strict JSON action contract;
- resolves player references to stable item, NPC, object, and location IDs;
- generates Thai or English narration from approved engine facts;
- helps shape bounded character identity and long-running story memory.
The model is deliberately not the authority. It cannot grant inventory, award currency, bypass dependencies, or declare an impossible action successful. Those decisions belong to deterministic code.
How I used Codex
I used Codex as the primary engineering collaborator throughout the Build Week work. In one continuous task, Codex:
- audited the existing RPG and established a reviewable baseline;
- rebuilt the permissive action pipeline around a strict Action Contract v1.0;
- implemented deterministic validation, dependency handling, partial success, and save-scoped idempotency;
- unified the production and judge-demo opening;
- repaired progression loops, localization leakage, responsive UI problems, and missing assets;
- added unit, adversarial, desktop/mobile Playwright, Docker, migration, content, locale, and asset checks;
- prepared and verified the OVH production deployment behind Caddy and PostgreSQL.
The current release gate passes 135 unit tests plus content, localization, asset, and deterministic competition-smoke validation.
Architecture
- The player submits free-form intent.
- GPT-5.6 returns schema-validated atomic actions using stable IDs.
- The deterministic resolver validates capabilities, inventory, targets, dependencies, and current world state.
- Only accepted mutations are committed to PostgreSQL.
- GPT-5.6 narrates the approved outcome.
- The UI displays both the story and the decision evidence.
This separation is useful beyond games. It demonstrates how generative interfaces can accept open-ended human intent while deterministic systems retain control of permissions, transactions, inventory, and durable state.
Built with
Next.js, React, TypeScript, OpenAI GPT-5.6, strict structured output, Zod, PostgreSQL, Prisma, Docker, Caddy, Vitest, and Playwright.
Try it
Open the live judge demo. No login is required. Confirm the runtime status shows OpenAI and gpt-5.6-luna, start the three-minute scene, and submit the suggested rope-and-oil plan.
Built With
- caddy
- codex
- docker
- next.js
- openai-gpt-5.6
- playwright
- postgresql
- prisma
- react
- typescript
- vitest
Log in or sign up for Devpost to join the conversation.