One revive per run: how the rewarded-ad system works

Why Skyfall gives you exactly one rewarded-ad revive per run, what it actually resets, and why it fails safely when no ad is available.

Mouse and touch, one input path

How Skyfall handles mouse clicks and touchscreen taps through the same shot-handling code, and the small details that make touch feel fair.

Keeping the canvas sharp on every screen

How Skyfall's canvas resizes to fit any screen and stays crisp on high-density phone displays, and why the pixel ratio is capped at 2.

Drawing the crosshair and lives without a single image

How Skyfall's glowing crosshair and heart-based life counter are both built from a few lines of drawing code instead of sprite assets.

Designing the boss bird without a difficulty spike

Why the boss's health bar scales with the wave number instead of a fixed value, and why it arrives on its own clock instead of syncing with wave transitions.

Every sound in Skyfall is synthesized, not sampled

How the Web Audio API builds the gunshot, hit, combo, and boss sounds live from oscillators and filtered noise — with zero audio files to host or license.

Balancing the bird roster: rarity, risk, and the avoid-dove

Why crows make up over half of Skyfall's spawns, why golden birds are rare, and why the Phantom and the avoid-dove exist to be actively read, not just reacted to.

Game feel on a budget: screen shake, feathers, and floating popups

How Skyfall fakes impact with screen shake magnitude, a ten-particle feather burst, and floating score popups — all built with canvas math, no sprite sheets.

Tuning the combo streak and power-up system

Why the combo multiplier caps at x3, why only one power-up is ever on screen, and how Rapid Fire, Wide Scope, and Slow-Mo were balanced against each other.

Why we built Skyfall without a build tool

Plain HTML, CSS, and JavaScript, no framework or bundler — and why that trade-off keeps paying off as the game grows.

Anatomy of the wave system

Why waves escalate every 15 seconds, why spawn rate scales sub-linearly, and why the Phantom bird joins at wave 3 exactly.

How local high scores work, and their limits

Why Skyfall uses localStorage instead of accounts, what that means for players, and when we'd reconsider it.

Designing the day-to-night sky

How the sky's day-to-dusk-to-starlight shift is calculated live every frame, with zero background images.

What we're working on next

A look at a possible daily-challenge mode with a fixed seed, plus where the next Nevabe Store title stands.