In 1980, Stern Electronics released Berzerk — a maze of robots and electrified walls and a bouncing smiley face named Evil Otto who could not be killed. Otto was two frames. Maybe three if you’re generous. A circle. A slightly different circle. And somehow that was enough. Your brain filled in the rest. It always does.
Two frames is the minimum viable illusion of life. One frame is a picture. Two frames is a creature. The difference between stillness and aliveness turns out to be exactly one frame — the smallest possible delta that says something is happening here.
Everything below is pure CSS. No JavaScript. Each animation uses steps() timing to snap between frames the way arcade hardware did — no smooth tweening, no easing curves. Just frame one, frame two, frame one, frame two, forever.
Evil Otto Bounce
The unkillable smiley. Two expressions, a vertical bounce. That’s all it took to make players genuinely anxious.
████████ ██ ● ● ██ ██ ╰──╯ ██ ██ ██ ████████
████████ ██ · · ██ ██ ╰──╯ ██ ██ ██ ████████
Humanoid Walk
The player character was a stick figure. Left leg forward, right leg forward. Walk cycle complete.
O /|\ / \
O /|\ / \
Robot Shuffle
The robots didn’t walk so much as vibrate sideways. They’d shuffle into walls, into each other, into your line of fire. Menacing through sheer persistence.
┌───┐ │ ▪ ▪│ ├───┤ │ ║ │ └─┬─┘ ╧ ╧
┌───┐ │▪ ▪ │ ├───┤ │ ║ │ └─┬─┘ ╧ ╧
Intruder Alert
The game’s synthesized voice was terrifying in 1980. The text version isn’t far off — two states of alarm, flipping forever.
INTRUDER ALERT
Four animations. Eight frames total. Zero JavaScript. The arcade knew something we keep forgetting: your brain is the best graphics card. Give it two frames and a reason to care, and it’ll build the rest.