---
title: Arcade v2 status
description: Build status for version 2 of the fighting game on the mikeypiro.com homepage.
canonical: https://www.mikeypiro.com/projects/arcade-v2
last-updated: 2026-10-16
---

# Arcade v2 status

Version 2 of the 1v1 fighting game at the top of the [homepage](https://www.mikeypiro.com/). The goal is twelve fighters, a real blocking system, custom special moves for each character, original stages, and support for controllers and arcade sticks. The plan is split into eleven components, each tracked as its own OpenSpec change and built in four waves.

- Tasks done: 85 of 258
- Components done: 1 of 11
- Current wave: 1 of 4
- Playable fighters: 2 of 12
- Open decisions: 5 of 9

Generated from the plan on 2026-10-16. Full task list as JSON: [arcade-v2.json](https://www.mikeypiro.com/assets/data/arcade-v2.json).

## Wave 1

| Component | What it covers | Status | Tasks | Next |
|---|---|---|---|---|
| Arcade engine core | Deterministic simulation split from rendering, module layout, headless test runner, replays | In progress | 20 / 24 | 4.1 Build the scheduler in main.js: accumulator, Turbo, a 5-step cap, and visibility pause with no catch-up. |
| Sprite delivery spec | The kid-facing sprite spec, templates, and checklist | In progress | 15 / 16 | 3.3 Do an end-to-end dry run: export a two-frame idle from Piskel by following only the README, then run the checker in Node. |
| Input devices | Keyboard remap, Gamepad API controllers and arcade sticks, touch, two players | In progress | 15 / 23 | 1.3 Port the v1 touch stick and buttons into js/arcade/input/touch.js, feeding the same frame path; verify on a phone-width viewport with emulated touch that the... |

## Wave 2

| Component | What it covers | Status | Tasks | Next |
|---|---|---|---|---|
| Fighter definition format | Data-driven fighters: stats, animations, per-frame boxes, frame data, validator, and the port of Mikey and Rogue AI to data | Done | 13 / 13 | None |
| Combat system v2 | Blocking overhaul, throws, combos and scaling, wakeup, chip, guard rules | Waiting | 0 / 32 | Waiting on Arcade engine core |
| Fighter lab | Browser harness to import sprites, edit boxes and frame data, test against a dummy, and export | In progress | 22 / 25 | 4.3 Accept player input from keyboard and gamepad through the input-devices layer. |

## Wave 3

| Component | What it covers | Status | Tasks | Next |
|---|---|---|---|---|
| Special move framework | Motion grammar plus behavior primitives, so each fighter gets custom specials from data | Waiting | 0 / 30 | Waiting on Combat system v2 |
| Stage system | Data-driven parallax stages, animated set pieces, the stage roster | Waiting | 0 / 23 | Waiting on Arcade engine core |
| CPU opponent v2 | Per-fighter AI personalities, difficulty ladder, reaction model | Waiting | 0 / 23 | Waiting on Combat system v2, Special move framework |

## Wave 4

| Component | What it covers | Status | Tasks | Next |
|---|---|---|---|---|
| Game shell and modes | Title, 12-slot character select, arcade, versus, training, options, the hero and /arcade pages | Waiting | 0 / 32 | Waiting on Input devices, Stage system |
| Roster of twelve | Roster registry and slot order, placeholder art, the balance gate, the per-fighter change template, boss unlock | Waiting | 0 / 17 | Waiting on Fighter lab, Special move framework, CPU opponent v2 |

## Roster

| Slot | Fighter | Archetype | Art |
|---|---|---|---|
| 1 | Mikey | All-rounder | Code-drawn (v1) |
| 2 | Rogue AI | Heavy zoner | Code-drawn (v1) |
| 3 | TBD | Grappler | Not started |
| 4 | TBD | Charge defender | Not started |
| 5 | TBD | Rushdown | Not started |
| 6 | TBD | Long-limb poker | Not started |
| 7 | TBD | Speedster | Not started |
| 8 | TBD | Counter fighter | Not started |
| 9 | TBD | Trickster | Not started |
| 10 | TBD | Big body | Not started |
| 11 | TBD | Stance or install | Not started |
| 12 | TBD | Final boss | Not started |

## Open decisions

Defaults the plan assumes until Mikey confirms them.

- **Where the game lives** (Waiting on Mikey). The hero stays the front door, with an attract demo and quick arcade play. A full-screen /arcade page, with its .md twin, hosts every mode.
- **Buttons** (Waiting on Mikey). Four attacks plus SP, not SF2's six. That keeps the art at 12 normals per fighter instead of 18, and keeps the touch layout fitting.
- **Local two-player versus** (Confirmed). Both players on the same screen: two controllers, or one controller plus the keyboard. No online play (confirmed 2026-10-15).
- **Lab hosting** (Waiting on Mikey). The lab is deployed at /arcade/lab, marked noindex, and keeps everything in the browser, so the kids can test their sprites from any computer without installing anything.
- **Credit for the kids** (Waiting on Mikey). No names go on the public site until Mikey says which name, if any, appears. The credits screen uses a placeholder.
- **Super meter** (Waiting on Mikey). SF2 Turbo had none, so v2 ships without one, which keeps both the art load and the scope down. Revisit after the roster is full.
- **Blocking** (Confirmed). SF2 style (confirmed 2026-10-15). Hold away from the opponent to block standing, hold down-away to block crouching. Lows must be blocked crouching, jump-ins and overheads standing, there is no air blocking, and only specials chip. arcade-engine-core ports the v1 block unchanged, so nothing is built on this until wave 2.
- **Double KO** (Confirmed). v2 counts a double KO in a real match, where v1 skipped it (see arcade-engine-core design.md). Kept (confirmed 2026-10-15).
- **Turbo ceiling** (Confirmed). Turbo tops out at 1.32x, as in v1. Kept for now (confirmed 2026-10-15), to be revisited later.
