Seventeen different games share a single frame. Almost all the work
went into deciding what is common and what isn't.
A fixed virtual canvas per machine. Each game simulates on a board of fixed dimensions and the cabinet scales it to the screen. That way the physics don't depend on window size, and the pixels come out chunky on purpose — like the original tube.
Drawing and simulation share one definition. The most expensive lesson of the whole build: when the renderer describes the world on its own and the physics does the same separately, you get invisible logs and a frog eight pixels off. The Mono's girders and the road are computed once, and everything drinks from that.
Decide by cell, not by distance. Comepuntos decides what it eats and where it turns when it changes cell, not when it gets near a centre. The first version oscillated forever less than two pixels from the dot and never ate it.
The chip lives on the audio thread. The sequencer runs inside the audio render block; the main thread only writes an integer with the current tune. No locks and no data races: seven melodies and seven effects, all generated sample by sample.
Pseudo-3D for the road. A segment list with accumulated curvature, scale = depth / z, and painting far to near. The other way round, the grass of distant segments paints over the asphalt right in front of you — which is exactly what the first version did.
Machines17
TechnologySwiftUI · Canvas at 60 fps
Audio3-channel chip, real time
Data collectedNone
PriceFree