About & Research Log

Summary

Snake — Combo Edition is a faithful rebuild of the classic Snake arcade game with a combo chaining twist: eat food within a 4-second window to chain a multiplier (+0.5x per chained food). Built mobile-first with swipe + on-screen D-pad, live stats, and a global leaderboard. This page documents the complete build for research transparency.

Model & tools

  • Builder model: deepseek-v4-flash-(latest) via CommandCode (max effort)
  • Reviewer model: qwen/qwen3.7-max (independent of builder, temperature 0)
  • Prompt used: "Create a 1:1 clone of a game that you feel 100% confident that you could clone perfectly, in one shot. Do research first on every capability that will assist you in doing this. Prioritize using open-sourced / free assets and already solved problems."
  • Tools: CommandCode, Node.js (built-in test runner), Vercel + Vercel Blob (leaderboard), git/GitHub, the shared hub pipeline (nav injector, page generator, review harness).

Why Snake

Snake is the ideal second experiment: its mechanics are simple, universally known, and — unlike most classics — not encumbered by trademark (the gameplay mechanics are in the public domain; the original Nokia-era presentation is long since generic). It also lets us prove the one-command scaffold: node scripts/new-experiment.mjs snake created the full experiment structure, nav, and tab pages with zero manual plumbing edits.

The twist: combo chaining

The core is faithful Snake (grid movement, growth, wall/self collision). The twist adds a combo system consistent with the hub's 2048 experiment:

  • Eating food within 4 seconds of the previous food chains a combo.
  • Each chained food adds +0.5x to the bonus multiplier (x1.5, x2, x2.5...).
  • The snake speeds up slightly with each food (down to a floor), rewarding aggressive play.
  • Live stats track length, current combo, foods eaten, and total combo bonus.

Build & verification

  • Game logic is a single self-contained js/game.js (no dependencies, canvas-rendered).
  • Input: arrow keys / WASD, swipe (touch), and an on-screen D-pad on mobile.
  • Unit tests: Node's built-in test runner exercises initial state, movement, wall collision, combo state coherence, and restart (5/5 passing).
  • Accessibility: keyboard controls, focus-visible styles, aria-labels on controls, and reduced complexity over motion-heavy effects (the canvas is a single static render loop).

Assets & licensing

  • Game code: original implementation by ByJTT (mechanics of Snake are public domain).
  • Clear Sans font: Apache 2.0 (© 2012 Intel), bundled with attribution in style/fonts/LICENSE-ClearSans.txt.
  • Icon: deterministic SVG vector master (see meta/icon-manifest.json).
  • No copyrighted assets were taken from any source; the game is free, contains no ads and no tracking.

Session log

  • v1 session (2026-08-14): scaffolded via new-experiment.mjs, built the game core (movement, growth, collision, combo chaining), mobile-first canvas + D-pad, tests, hub/timeline/sitemap integration.