Skip to content
Get in touch

NEONFABLE

Outrun the void, evolve an arsenal, and survive long enough to meet the AntiFable.

Instructions, details & credits
A synthwave survival arcade game

Created by Tim Howley

  • Arcade
  • Keyboard, touch, or gamepad
  • Local progress

Read the controls and save note, then enter the game.

Executive Summary

NEONFABLE is a synthwave survival arcade game created by Tim Howley. You pilot a small ship through an expanding void while weapons fire automatically, enemies close in, and each new reactor level offers a choice of upgrades. A standard run builds toward the AntiFable at 15 minutes. Daily Void runs use a shared UTC date seed and a fixed Wisp loadout; an unlockable Bullet Hell mode adds another challenge to standard runs.

The game is a single HTML file: its interface, Canvas rendering, audio synthesis, input handling, progression, and persistence travel together. This Game Room edition preserves that file exactly as Tim published it at the pinned upstream revision. RS adds only this educational brief and the shared Game Room frame around the route.

Before You Play

Choose a ship in the hangar, then select Engage for an ordinary run or Daily Void for the date's seeded run. Move to stay clear of enemies and projectiles; your weapons fire on their own. Phase dash gives you a short burst of speed and invulnerability. When the reactor levels up, play pauses while you choose one of three weapons, systems, or upgrades. Credits earned during play can buy permanent hangar upgrades and unlock other ships.

NEONFABLE saves credits, unlocks, best results, daily best, and settings in this browser's local storage. Tim's GitHub Pages game and the RS Game Room run on a separate browser origin, so their saves remain separate. Your existing progress at Tim's site stays there; the RS edition starts with a fresh save. There are no accounts, cloud saves, leaderboards, or network calls during play.

Controls and Accessibility

  • On a keyboard, use WASD or the arrow keys to move. Press Space or Shift to phase dash. Press Escape or P to pause or resume.
  • On touch devices, drag on the left side of the playfield to move. Tap the right side or the on-screen dash control to dash. An on-screen pause control appears in touch mode.
  • On a gamepad, use the left stick or directional pad to move. Use A, a shoulder control, or the right trigger to dash; use Start to pause. On the title screen, X begins the Daily Void.
  • During an upgrade choice, press 1–3, click or tap a card, or use gamepad left/right and A. Press R or the gamepad face button assigned to reroll when a reroll is available.
  • Music, sound effects, and screen shake have separate toggles. Sound is synthesized in the browser and begins only after interaction.
  • The interface removes its CSS animation and transition effects when the browser requests reduced motion. The moving Canvas playfield and core combat motion remain active.
  • Menus use visible text and native buttons where provided. The action itself is fast, visually dense Canvas play without a screen-reader gameplay equivalent. Color, motion, and rapid reactions are central to the current design.
  • If stored data is missing, unavailable, or cannot be parsed, the game falls back to a fresh local save and remains playable.

How We Made This with Generative AI

Tim created NEONFABLE through a Claude Code/Fable workflow. The collaboration helped turn a compact game idea into one self-contained browser artifact: procedural enemies and bosses, twelve evolving weapons, ship and hangar progression, daily seeded runs, keyboard/touch/gamepad controls, synthesized audio, and the visual language of a neon void.

The human creator field names Tim because authorship is a human responsibility. Claude Code and Fable belong in this process narrative, where readers can see how Generative AI participated without mistaking a tool or model for the person who chose, directed, tested, and released the game.

For the RS migration, Generative AI helped inventory the existing behavior, define strict source and artifact checks, draft this explanation, and construct compatibility tests. It did not rewrite the gameplay source. Tim's pinned HTML remains the authority. Tim reviewed and approved this brief on September 7, 2026.

The Gory Details

The intake is immutable. The canonical source/neonfable.html is pinned to upstream commit 518a81cf434486908a8b04e79cae8e418ae7ec99, Git blob 2639009a4917f0716ee645bb80e1d47d96ddbbbd, 121,434 bytes, and SHA-256 67fbfc656fac26ddfba088b93f4d75df8c84ce1cecdda3381a7d9ddd52f18587. The artifact build checks every value before it copies the file, and checks the copied bytes again before publishing the candidate.

One file contains the runtime. HTML describes the hangar, heads-up display, upgrade cards, pause state, and end-of-run state. CSS creates the responsive interface and reduced-motion treatment. JavaScript owns a Canvas 2D renderer, a fixed family of enemies and bosses, weapon and passive definitions, procedural effects, Web Audio oscillators, seeded daily randomness, input routing, and the request-animation-frame loop. There is no game framework, bundler, or external runtime asset.

Daily and ordinary runs make different promises. Ordinary runs use normal randomness and apply hangar progression. A Daily Void derives its seed from the UTC date, forces the Wisp, ignores permanent hangar upgrades, supplies one reroll, and disables Bullet Hell. Draft and chest choices derive additional repeatable random streams from the run seed. This makes the daily mode more comparable without turning the entire game into a deterministic simulation.

The save is local and origin-bound. The neonfable.v1 record contains credits, wins, personal bests, shop ranks, unlocked ships, the last ship, the current daily best, Bullet Hell status, and settings. Browser origin is part of local-storage identity. Hosting the same byte-identical game at RS therefore creates a fresh save without reading, moving, or deleting the save attached to Tim's GitHub Pages origin.

The Game Room owns the wrapper, not the game. The portable artifact contract records Tim as creator, the Arcade room membership, canonical brief and play routes, the shared-frame version, the source revision, and a digest of every shipped file. The assembler rejects unapproved briefs, unknown rooms, path escapes, route collisions, frame mismatches, and payload drift. Front Door receives the Game Room as one versioned subsite artifact rather than learning each game's private implementation.

Characterization protects behavior without claiming a refactor. Automated browser checks exercise title and hangar entry, ordinary and daily starts, movement, dash, pause and resume, upgrade choice, local-save restoration and corrupted-save fallback, keyboard, touch, synthetic gamepad input, reduced-motion settings, and clean network and console activity. Screenshots cover the hangar, active play, pause, upgrade choice, and a representative mobile run. A real-time human playthrough remains the final check for the 15-minute arc when a controlled clock cannot preserve animation-frame behavior.

Credits

Creator and process

NEONFABLE was created by Tim Howley through a Claude Code/Fable workflow. Tim directed, selected, tested, and released the game.

RS Game Room edition

Renaissance Solutions prepared the learning brief, shared Game Room frame, source checks, and compatibility tests with Generative AI assistance. Tim's original game is presented unchanged. The game draws its visuals and synthesizes its sound in the browser.