ZenStory AI

Interactive stories and games

Adapt a novel into a game: pick a playable slice, then build

Novel to Game · Updated 2026-10-15

WorkflowBuild a playable game prototype, step 1 of 4

Start with a novel you own or are authorized to adapt, then choose a bounded experience in which a player can act and see a consequence. A useful first slice keeps the source’s particular pressure while limiting scenes, systems and assets. Novel to Game’s seven skills take an agreed brief through analysis, concept and design to a built candidate. The ferry example below shows how to choose the scope before building; a playable result needs a built candidate that passes its runtime checks. Once a candidate exists, sort each comment into a misleading line, a result that breaks the approved rules or a new design request before asking for another build. The author-feedback examples below show how to keep the next change small and handle a different story as a new design decision.

Method fromnovel-to-game10 method files

Part of Novel to GameSource on GitHub

Before you start

  • A novel file, directory or link, plus an explicit rights/asset boundary. Confirm adaptation rights separately from access to the text.
  • A configured agent host. The installation table distinguishes Claude Code /novel-to-game, Codex $novel-to-game and Kimi Code /skill:novel-to-game; use the matching adapter.
  • An available engine and target runtime, or a documented plan for obtaining them. Model, media and tool services may require separate configuration or cost approval.

Steps

  1. Install and choose a mode Use the source README installation row for your host. quick recommends defaults and continues; director lets you choose the concept; resume reads the existing workspace and resumes from the earliest incomplete handoff.
  2. Set the product brief Ask for PRODUCT_BRIEF.md: scope, language, experience type, platform, engine, target runtime, tested runtime, input/display requirements, content limits and rights/asset boundaries. Ordinary assumptions can be recorded; material or safety-sensitive decisions require resolution.
  3. Declare the source range before choosing a slice A whole-novel adaptation needs analysis of the whole book; a first-three-chapter preview or a few sampled scenes covers only those parts. The analysis workflow requires full source coverage before concept design unless you explicitly limit the adaptation to a volume or excerpt. State that limit in the brief and record missing or unread material. Record “reviewed, no relevant finding” and “not read” as two separate statuses. When a whole-book analysis was requested, it still runs in full even if the first build is small.
  4. Ground the adaptation Read the cited evidence and adaptation boundaries in analysis/SOURCE_BIBLE.md, then the selected concept and tradeoffs in concepts/CONCEPT.md. Keep the facts that change player actions, world responses or audiovisual identity, and leave out chapter-by-chapter retelling. Once the concept selects a passage, analysis adds its fact-level reference table. New gameplay exceptions, state design and interface structure belong to the downstream design and are recorded there, apart from the source evidence. If you prefer an interactive story, say so explicitly so the concept stage picks a narrative-led direction.
  5. Choose the smallest scope that still carries the promised experience Name a player role, an immediate objective, available actions, feedback and an outcome. Compare only alternatives that are genuinely still open, and leave out genres generated just to fill a menu. For the ferry brief, a summary-only reading page leaves consequential choice untested, while a whole-town simulation would require new scope and supporting material. A bounded boarding decision carries this particular promise. Its scene demonstrates one narrative event; whether the whole novel supports a repeatable management or combat loop needs its own evidence. Set slice duration and system count from the brief and the design risk, case by case. See meaningful choices for the actual branch design.
  6. Design and build a small candidate Use design/GAME_DESIGN.md to build a whitebox prototype that tests the largest design risk. Review the observed result, revise the affected design, then complete design/ART_DIRECTION.md and build/BUILD_BRIEF.md and build the production candidate. Keep its scope focused on one complete loop.
  7. Describe the next change in the author’s terms Point to the exact choice or scene, what you did, what you understood or expected, and what actually appeared. Separate an expression change from an implementation mismatch or a changed rule. The design, art and build owners are distinct; a label fix stays with its owner and leaves the approved concept in place. Propose the smallest change that addresses the reading or play problem while naming what must remain.
  8. Verify in the chosen runtime Run the commands recorded in the build brief and collect launch, render, input, coreLoop, outcome and restart evidence from one complete run. If you test in a substitute runtime, list the target's own input, packaging, performance and device behavior as limitations.
  9. Resume honestly Read qa/verification.json, evidence files and _progress.md. Fix the earliest failed handoff and rerun verification; record missing tooling or untested behavior as NOT_RUN, FAIL or an explicit limitation.

Example

Example

Original scope exercise: the ferry situation from the meaningful-choices guide, worked through on paper from a single excerpt.

Source seed: The final ferry sounded its boarding whistle. Rain had blurred the stamp on Qiao Ning's ticket. The boatkeeper held it beside the register without tearing it. “The ticket office can issue proof,” he said, “but this boat will be gone by the time you return.”

Keep provenance separate: - The seed establishes a blurred stamp and the delay attached to replacement proof. - The example's author additionally fixes that Qiao Ning bought the ticket and wants to cross tonight; the blurred stamp alone cannot secure boarding. - The author-approved adaptation exception is new design: a purchase witness plus Qiao Ning's consent to a named exception record permits boarding tonight. Finding the witness is possible before departure; replacing the ticket is not. For this design, returning with replacement proof leads to a morning-place offer; declining the named exception leaves Qiao Ning ashore. These outcomes are also author-approved design. Keep the exception and those outcomes attributed to the author, apart from the quoted seed and the source evidence. - No other chapters were supplied, so the brief declares this exercise an excerpt adaptation.

Three scope proposals for this brief: A. A summary of the journey with a Next button. It offers a reading experience; this brief promises that a player's choice changes the outcome, and A has no choice to make. B. One complete boarding dispute: choose how to establish purchase, then decide whether to accept the named exception if that route remains available. Show the appropriate departure/stay/morning-place result and allow a fresh start. This is the selected scope for the exercise. C. The whole town and subsequent journey, with exploration, trade and many passengers. This is additional design work and would need broader source coverage or explicitly approved adaptation additions, plus a revised content budget. It sits outside the current promise and the supplied evidence.

A creator-readable slice brief, written as planning notes before PRODUCT_BRIEF.md exists: - Player: Qiao Ning. Goal: leave tonight while deciding which proof and record cost to accept. - Experience: single-player, narrative-led; Simplified Chinese UI in a desktop browser, keyboard and mouse. Confirm the actual available test environment separately. - Source scope: only the provided excerpt and separately attributed author facts; the exception is labeled as an approved adaptation addition. - Structure: one dispute, two decision points and three defined results. State a play duration only after someone has measured it. The linked branch example specifies the conditions; the formal conditions go into GAME_DESIGN. - Preserve: proof type and timing affect available choices; accepting the exception has an acknowledged record; going to the office cannot secretly regain tonight's boat. - Exclude for this slice: open-world travel, combat, economy, romance meters, subsequent chapters and paid asset generation. Text and placeholders are sufficient for this candidate's chosen finish. - Stop the episode at its defined result; restarting restores its initial situation. The outcome screen records only this episode's result.

Terminal — install the Claude Code adapter: npx skills add zenstory-ai/novel-to-game -g -y -a claude-code -s '*'

After resolving material decisions, use the configured host for the full workflow. Replace the input with your authorized excerpt and supply author facts/additions separately: /novel-to-game quick Adapt only /ABS/my-authorized-excerpt.txt using the selected scope above. Treat the excerpt as a partial source: record the source range and keep author additions separate from source quotations. Preserve the narrative-led promise, exclusions and defined results in PRODUCT_BRIEF.md and the design handoffs. Resolve any blocking conflict before advancing, and keep the scope as agreed. Build only this candidate using text and placeholders, without paid asset generation. Record target and actual test runtimes. Report missing tools or untested behavior honestly, as NOT_RUN, FAIL or a limitation.

This quick request continues all the way to a built and tested candidate. If you want only analysis/concept/design, explicitly request those named skill stages and their handoff files, then stop before building, as shown in the meaningful-choices guide. Both requests are templates to run in your own workspace.

After a candidate: three hypothetical author comments These invented comments continue the approved ferry design above. Each one shows a different revision job, written as a plain comment.

1. “The button says ‘Not now’. I thought I could enter my name later and still catch this boat.” If this is the witness route's refusal choice, propose the clearer label “Decline the named exception; stay ashore”, matching the linked branch example. This changes what the option communicates and keeps its effect. Keep the consent choice separate from the witness statement already recorded in that example; the testimony stays on record after the player declines the exception. Locate the authoritative copy in the existing design or implementation, and change only the relevant wording. Keep the action identity, destination and result intact, with no extra chance to board.

2. “I went back to the ticket office, but the ending says I leave tonight.” This conflicts with the approved replacement-proof route, which misses tonight's boat and leads to a morning-place offer. First separate the ending sentence the player sees from the game state the choice actually records. If the state correctly holds a morning reservation but the prose says “tonight”, repair that expression. If the rules also restore tonight's boarding opportunity, repair the relevant condition or transition. The comment alone leaves open which layer is wrong, so check both. The approved timing rule stays fixed; whichever layer is wrong is brought back in line with it.

3. “Now I want Qiao Ning to board tonight even if she refuses the named exception.” That is a proposed design change. It changes the agreed relationship between consent and boarding, and removes that refusal branch's existing stay-ashore cost. As a new story, it needs a decision about the new tradeoff and outcomes. Revise the affected GAME_DESIGN after approval; revisit PRODUCT_BRIEF or CONCEPT only if the player promise or scope also changes. Keep the adaptation addition separate from SOURCE_BIBLE evidence and leave unrelated art decisions alone. Any replacement for the old cost goes through approval like the rest of the change.

Turn the chosen comment into a small handoff: “On the witness route's second choice, after the witness statement has been recorded, I read ‘Not now’ as a postponement. Change only that refusal label to ‘Decline the named exception; stay ashore’. Keep the first choice, the prior testimony, the separate consent, all three endings, restart behavior and the text/placeholder finish. Show where the current wording is owned and what would change. Leave every rule as it is.” This is a sample author decision. For your own candidate, add its real version, scene/choice anchor and input sequence from your own build.

A text-only request before authorizing the next edit: Read my named existing brief, source bible, concept, design and relevant candidate passage together with the supplied feedback. In this reply, distinguish a wording problem, a mismatch with the approved rule, and a newly requested rule. State the proposed change, its owner, frozen decisions and missing evidence. Judge internal state from the recorded state, with the ending sentence as one clue. Keep this reply read-only: leave project files as they are, skip any pipeline rerun and any paid asset generation, and stop at the proposal until the change is selected. [Provide real workspace paths, candidate/version and the observed passage or interaction.]

After selection, ask the corresponding stage for a scoped edit and keep the current concept. `resume` reads actual artifacts and continues from the earliest unfinished handoff, with approved design kept as it is. If the candidate already has saves or replay records, identify whether changed node IDs, action effects or state meanings affect them; migrate incompatible records or explicitly reject them. Add a save/log system to this small slice only when the design calls for one. State what was actually changed and what remains untested, including fun and the branches this fix did not touch.

Expected files

  • A source-range declaration and a deliberately bounded experience: what the slice preserves, what it excludes and what source or author decision would be needed to expand it. The declaration also records which parts of the novel the analysis actually covered, separately from the size of the first build.
  • Scope: PRODUCT_BRIEF.md; source evidence: analysis/SOURCE_BIBLE.md; selected concept: concepts/CONCEPT.md.
  • Design: design/GAME_DESIGN.md and design/ART_DIRECTION.md; build instructions: build/BUILD_BRIEF.md; candidate: build/app/.
  • Runtime record: qa/verification.json plus its referenced evidence; progress and next handoff: _progress.md.
  • Before expanding branches, use the meaningful-choice example to turn one scene into actions, lasting state and distinct endings.

Check the result

  • The QA record uses NOT_RUN, FAIL or PASS. The six required checks are launch, render, input, coreLoop, outcome and restart; collect the evidence for all six from the same complete run.
  • A PASS covers only the recorded runtime, build and checked behavior. To judge fun, balance, commercial readiness or rights clearance, run a separate review.
  • Missing tools, provider access or an untested target stay recorded as explicit limitations. A validator fixture checks the record format; evidence that your adaptation runs comes from your own complete run.

Sources

All guides