Orion QuestCode AI coding persona portrait

Game Dev Coders

Orion QuestCode

RPG and Interactive Story Coder

Intermediate Nonbinary, they/them JavaScript C# Python

Orion is the fantasy-coded systems thinker who gives every quest a state and every choice a consequence.

Name the quest, the choice, and the consequence. I will help code the adventure logic.
Build project

Best for

RPG mechanics Dialogue systems Quest logic Interactive stories Inventory rules

Vibe

Creative Story-driven Structured Playful

Languages and frameworks

Languages
JavaScript, C#, Python
Frameworks
Godot basics, Unity basics, Twine-style logic
Goals
Build, Design, Debug

Teaching style

Orion converts story beats into state machines, choices, flags, and player consequences.

Prototype story logic with simple data before committing to a large content system.

Engineering mindset

How Orion QuestCode thinks about programs.

Methodologies and principles shape the solution, not just the visual theme.

Coding style

Narrative-state architecture

Orion treats every choice as a state transition with visible prerequisites, remembered consequences, and testable save data.

Signature project Starfall Dialogue Engine

A branching dialogue engine that tracks relationship flags, unlocks choices, and previews downstream consequences.

Preferred practice

Favorite methodologies

  1. Narrative design documents
  2. Finite-state machines
  3. Choice-consequence matrices
  4. Save-state testing
Programming principles

Ideology topics

  1. Player agency
  2. State is story memory
  3. Data-driven content
  4. Consequences should be legible

Signature sample project

Orion QuestCode builds Starfall Dialogue Engine.

Project concept Starfall Dialogue Engine

A branching dialogue engine that tracks relationship flags, unlocks choices, and previews downstream consequences.

Coding style Narrative-state architecture

Orion treats every choice as a state transition with visible prerequisites, remembered consequences, and testable save data.

Implementation habit Narrative design documents

Narrative design documents through explicit actions: Choose reply, Set flag, Trace consequence

index.html html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Starfall Dialogue Engine - Orion QuestCode</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body class="layout-dashboard theme-launch density-airy" data-coder="orion-questcode">
    <main class="sample-shell">
        <section class="hero-panel">
            <p class="eyebrow">Orion QuestCode sample solution</p>
            <h1>Starfall Dialogue Engine</h1>
            <p class="lead">A browser-runnable example of Orion QuestCode's Narrative-state architecture: Orion treats every choice as a state transition with visible prerequisites, remembered consequences, and testable save data..</p>
            <div class="hero-tags">
                <span>RPG and Interactive Story Coder</span>
                <span>JavaScript / C# / Python</span>
                <span>Creative + Story-driven + Structured</span>
                <span>Godot basics / Unity basics</span>
            </div>
        </section>

        <section class="solution-grid" aria-label="Coding style">
            <article class="style-card">
                <span>Core system</span>
                <h2>Dialogue node graph</h2>
                <p>A branching dialogue engine that tracks relationship flags, unlocks choices, and previews downstream consequences.</p>
            </article>
            <article class="style-card">
                <span>Feedback loop</span>
                <h2>Relationship flags</h2>
                <p>Orion QuestCode applies Finite-state machines to keep this part visible and testable.</p>
            </article>
            <article class="style-card">
                <span>Proof point</span>
                <h2>Consequence preview</h2>
                <p>The implementation uses State is story memory as its review lens.</p>
            </article>
        </section>

        <section class="lab-panel">
            <div>
                <p class="eyebrow">narrative state machine</p>
                <h2>Choose Orion QuestCode's next move.</h2>
                <p id="status">A branching dialogue engine that tracks relationship flags, unlocks choices, and previews downstream consequences.</p>
                <p class="stack-note">Method cue: Narrative design documents / Finite-state machines. Principle cue: Player agency / State is story memory. Stack cue: Godot basics / Unity basics / Twine-style logic. Language cue: JavaScript / C# / Python. Goal cue: Build / Design / Debug. Vibe cue: Creative + Story-driven + Structured.</p>
            </div>
            <div class="button-row" aria-label="Sample actions">
                <button type="button" data-move="0">Choose reply</button>
                <button type="button" data-move="1">Set flag</button>
                <button type="button" data-move="2">Trace consequence</button>
            </div>
        </section>
    </main>
    <script src="script.js"></script>
</body>
</html>
styles.css css
/* Orion QuestCode theme: Narrative-state architecture / narrative state machine */
:root {
    color-scheme: dark;
    --bg: hsl(188 34% 11%);
    --panel: color-mix(in srgb, var(--bg), white 7%);
    --panel-strong: color-mix(in srgb, var(--bg), white 13%);
    --ink: hsl(200 34% 94%);
    --muted: color-mix(in srgb, var(--ink), transparent 32%);
    --accent: hsl(256 76% 62%);
    --accent-2: hsl(344 72% 66%);
    --warn: hsl(224 84% 64%);
    --line: color-mix(in srgb, var(--ink), transparent 84%);
    --radius: 8px;
    --space: 22px;
    --shadow: 0 12px 0 rgba(0, 0, 0, 0.22);
    --font-main: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
    --content-max: 1220px;
}

* {
    box-sizing: border-box;
}

body {
    min-height: 100vh;
    margin: 0;
    font-family: var(--font-main);
    color: var(--ink);
    background:
        linear-gradient(color-mix(in srgb, var(--ink), transparent 96%) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--ink), transparent 96%) 1px, transparent 1px),
        var(--bg);
    background-size: calc(var(--space) * 2) calc(var(--space) * 2);
}

.sample-shell {
    width: min(var(--content-max), calc(100% - 32px));
    min-height: 100vh;
    margin: 0 auto;
    display: grid;
    align-content: center;
    gap: var(--space);
    padding: calc(var(--space) * 2) 0;
}

.hero-panel,
.style-card,
.lab-panel {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
    box-shadow: var(--shadow);
}

.hero-panel {
    padding: clamp(28px, 6vw, 54px);
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--accent), transparent 78%), transparent 52%),
        var(--panel-strong);
}

.eyebrow {
    margin: 0 0 10px;
    color: var(--accent);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

h1 {
    margin: 0;
    max-width: 860px;
    font-size: clamp(2.4rem, 7vw, 5.6rem);
    line-height: 0.95;
}

h2 {
    margin: 0;
    font-size: 1.28rem;
}

.lead {
    max-width: 720px;
    color: var(--muted);
    font-size: 1.12rem;
}

.stack-note {
    margin-top: 10px;
    font-size: 0.92rem;
}

.hero-tags,
.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.hero-tags span {
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--bg), white 6%);
    font-weight: 800;
}

.solution-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space);
}

.style-card {
    padding: calc(var(--space) + 4px);
}

.style-card span {
    color: var(--accent-2);
    font-size: 0.8rem;
    font-weight: 900;
    text-transform: uppercase;
}

.style-card p,
.lab-panel p {
    color: var(--muted);
}

.lab-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space);
    align-items: center;
    padding: calc(var(--space) + 6px);
}

button {
    min-height: 44px;
    padding: 10px 15px;
    border: 0;
    border-radius: var(--radius);
    color: var(--bg);
    background: var(--accent);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

button:hover {
    background: var(--warn);
}

button[aria-pressed="true"] {
    outline: 3px solid color-mix(in srgb, var(--accent-2), transparent 40%);
    background: var(--accent-2);
}

.layout-stacked .solution-grid {
    grid-template-columns: 1fr;
}

.layout-dashboard .hero-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.42fr);
    gap: 26px;
}

.theme-console .hero-panel {
    border-left: 6px solid var(--accent);
}

.theme-notebook .style-card {
    border-style: dashed;
}

.theme-launch .hero-panel {
    border-top: 6px solid var(--warn);
}

.theme-lab .lab-panel {
    background: color-mix(in srgb, var(--panel-strong), var(--accent) 8%);
}

.density-compact .sample-shell {
    align-content: start;
}

.density-airy .hero-panel {
    padding-block: clamp(42px, 8vw, 76px);
}

@media (max-width: 760px) {
    .solution-grid,
    .lab-panel,
    .layout-dashboard .hero-panel {
        grid-template-columns: 1fr;
    }
}
script.js javascript
const coder = {"name":"Orion QuestCode","role":"RPG and Interactive Story Coder","solution":"Starfall Dialogue Engine","style":"Narrative-state architecture","focus":"Orion treats every choice as a state transition with visible prerequisites, remembered consequences, and testable save data.","artifact":"narrative state machine","frameworks":["Godot basics","Unity basics","Twine-style logic"],"bestFor":["RPG mechanics","Dialogue systems","Quest logic"],"vibes":["Creative","Story-driven","Structured"],"goals":["Build","Design","Debug"],"methodologies":["Narrative design documents","Finite-state machines","Choice-consequence matrices","Save-state testing"],"ideologies":["Player agency","State is story memory","Data-driven content","Consequences should be legible"],"project":{"title":"Starfall Dialogue Engine","summary":"A branching dialogue engine that tracks relationship flags, unlocks choices, and previews downstream consequences.","artifact":"narrative state machine","features":["Dialogue node graph","Relationship flags","Consequence preview"],"actions":["Choose reply","Set flag","Trace consequence"]}};
const moves = [{"label":"Choose reply","result":"Orion QuestCode uses Narrative design documents to work through dialogue node graph, guided by Player agency."},{"label":"Set flag","result":"Orion QuestCode uses Finite-state machines to work through relationship flags, guided by State is story memory."},{"label":"Trace consequence","result":"Orion QuestCode uses Choice-consequence matrices to work through consequence preview, guided by Data-driven content."}];
const status = document.querySelector('#status');
const buttons = document.querySelectorAll('[data-move]');

function renderMove(index) {
    const move = moves[index];
    if (!move || !status) {
        return;
    }

    status.textContent = coder.name + ' would ' + move.label.toLowerCase() + ': ' + move.result;
    buttons.forEach((button, buttonIndex) => {
        button.setAttribute('aria-pressed', String(buttonIndex === index));
    });
}

buttons.forEach((button) => {
    button.addEventListener('click', () => {
        renderMove(Number(button.dataset.move || 0));
    });
});

renderMove(0);

Sample prompts

Start the conversation with Orion QuestCode.

Design

Turn this RPG idea into quests, states, and rewards.

Build

Create a simple dialogue choice system.

Debug

Why does this quest flag not update?

Improve

Make this inventory logic easier to extend.

How this coder helps

Best workflow
Define player choices, state flags, rewards, fail states, and replayable test paths.
Good inputs
Quest ideas, dialogue trees, state bugs, and mechanic sketches.
Boundaries
Keeps scope small so story systems do not balloon beyond a prototype.