Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ORBIT SHIFT gameplay on desktop

ORBIT SHIFT

A one-button orbital survival game. Shift lanes, collect energy, and keep the reactor alive.

25 tests passing Zero runtime dependencies Canvas 2D MIT License

ORBIT SHIFT is a polished hypercasual game built with plain HTML, CSS, and JavaScript. There is no build step, runtime package, CDN, analytics script, or external asset request.

ORBIT SHIFT running at 360 by 780 pixels

Play

You are a bright energy spark circling a reactor on two concentric lanes. Coral shards end the run. Lime energy raises the score and combo. The orbit accelerates, waves grow denser, and mixed-lane patterns become more common while the spawn invariant preserves a possible move.

Input Action
Click or tap Shift lane
Space or any arrow key Shift lane
P or Esc Pause or resume
M Mute or unmute

The same tap starts a run and restarts after a collision.

Run Locally

Serve the directory with any static server:

python -m http.server 8080

Open http://localhost:8080. No installation or build is required.

What Is Inside

  • Procedural Canvas 2D reactor, orbit trails, particles, impact burst, and restrained shake
  • Deterministic seeded state and math isolated from browser rendering
  • Two-lane input across touch, mouse, and keyboard
  • Score, combo, pause, mute, instant restart, and persistent best score
  • Smooth speed, density, and mixed-wave difficulty curves
  • Reduced-motion support and a graceful WebAudio fallback
  • Responsive layout verified at desktop and 360 x 780 mobile viewports
flowchart LR
    I["Pointer / touch / keyboard"] --> S["Deterministic state.js"]
    S --> R["Canvas renderer"]
    S --> H["HUD and overlays"]
    S --> A["WebAudio feedback"]
    S --> L["localStorage best score"]
    T["Node test runner"] --> S
Loading

Architecture

File Responsibility
state.js Seeded RNG, state transitions, collision math, scoring, spawning, difficulty
game.js Animation loop, Canvas rendering, controls, audio, persistence
styles.css Full-viewport responsive UI and reduced-motion presentation
tests/state.test.js Deterministic behavior and edge-case suite

The state module contains no DOM or browser APIs. Given the same seed and sequence of updates, it produces the same result, which makes the gameplay rules directly testable.

Verification

node --test

The suite currently covers 25 behaviors across lane switching, scoring and combo, difficulty progression, collision boundaries, impact timing, impossible-pattern prevention, determinism, pause/restart, and angle helpers.

The release was also exercised in headless Chromium at 1440 x 900 and 360 x 780:

  • Canvas pixel output was nonblank at both sizes.
  • Touch start, pause, resume, mute, game over, and restart passed.
  • Score and best-score persistence passed across reload.
  • Page overflow, console errors, and external network requests were absent.

Built Through Sudarshan

This project is a public end-to-end acceptance artifact for Sudarshan, using Kimi-K2.7-Code through Azure Foundry.

Kimi produced the initial game, tests, and documentation through Sudarshan's durable single-action loop. The harness checkpointed provider retries, blocked unsafe commands, fed failing tests back into the model, and refused completion until verification passed. The release audit then browser-tested the result and repaired the defects it exposed.

Author: Suraj Kuncham

License

MIT

About

One-button orbital survival game built through the Sudarshan superharness with Kimi-K2.7-Code.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages