Flukz — open-source shmup community resource open-source GPL devlog  ·  about
// indie shmup & game-dev resource

Game Dev · July 6, 2026

Attract Mode and Demo Loops: Arcade Lessons for Indie Shmup Menus

An arcade cabinet sitting idle had one job: convince someone walking past to feed it a coin before they walked on. That pressure produced a genuinely useful design pattern — the attract mode — that most indie shmups quietly skip, usually to their own disadvantage.

Attract mode is the looping sequence a cabinet plays when nobody is at the controls: a scrolling high-score table, a short burst of recorded or scripted gameplay, the title logo, and back around. It was built under a hard constraint — win the attention of someone in a noisy arcade within a few seconds, or lose them to the cabinet next to it — and that constraint is still relevant to an indie shmup sitting in a crowded storefront page or a streamer's game list, even though the coin is gone.

What attract mode is actually for

The core job of an attract loop is answering "what is this and is it for me" faster than a screenshot or a static title card can. A storefront page shows you stills; a trailer requires a click and thirty seconds of commitment. An attract-style loop that autoplays a taste of real bullet patterns, ship movement, and a boss encounter communicates genre, difficulty, and visual style in the background while someone is still deciding whether to look closer. This is exactly what your title screen's idle state can do if you build it that way instead of leaving it as a static logo waiting for input.

Recorded gameplay vs. scripted showcase

Arcade attract sequences were usually genuinely recorded gameplay, sometimes from a developer's own high-scoring run, played back through the actual game engine. This has an advantage modern developers can still use: recorded input replays that drive real game logic will always look current, because they are the actual game rendering, not a pre-rendered video that goes stale the moment you patch enemy sprites or rebalance a stage. If your game already has a replay system for recording inputs, reusing it to drive an attract-mode showcase is close to free — you are not building new tech, just pointing an existing system at a new purpose.

The alternative, a scripted or hand-choreographed showcase sequence, gives you more control over pacing and guarantees the demo shows off your best boss fight or densest pattern every time rather than whatever a recorded replay happened to capture. This costs more to build but is worth it if your actual best moments are late-game content that a short recorded replay would not reach in a reasonable loop length.

Length and loop structure

Arcade attract sequences typically ran fifteen to thirty seconds per segment, cycling through several distinct beats — logo, gameplay snippet, high scores, credits screen — before repeating. That segment length still holds up: long enough to show a real moment of gameplay, short enough that someone glancing at your title screen for a few seconds sees something happen rather than a static frame. Avoid looping the same single gameplay clip for minutes on end; cycle through two or three different snippets (an early stage, a mid-boss, a dense pattern moment) so a longer glance is rewarded with more variety rather than watching the same ten seconds repeat.

Where this pays off beyond the arcade nostalgia

Steam and itch.io storefront pages increasingly support autoplaying video or GIF previews, which is the direct modern descendant of attract mode, and the same design logic applies: it needs to communicate genre and quality within a few seconds of unprompted viewing, not require a click first. If you already invested in a demo build for zero-budget marketing, an attract-style loop built from the same assets is a natural next step, and it costs comparatively little once the core gameplay is stable enough to record from.

One practical warning: if you build your attract loop from recorded input replays rather than a pre-rendered video, remember that any balance patch to enemy health, bullet speed, or stage layout can desync an old replay against the current build, producing an attract sequence where the recorded ship dodges bullets that no longer exist in the same place. Re-record your attract-mode replays as part of your release checklist whenever a patch touches core gameplay values, the same way you would re-check any other build artifact that depends on a specific version of the simulation.

The Wikipedia entry on attract mode has more on how the convention evolved across different arcade hardware generations, if you want the fuller history before deciding how closely to follow the pattern.