Trent and I wrote a game in C++ for a class back in 2019. It was supposed to be Asteroids, with a triangle ship and rocks that wrap at the edges. Our plan was ship, gun, big rocks, little rocks, sound. We finished the ship and part of the rocks. The gun never worked, so we called it Avoid-a-roids, though the window title still says “Asteroids”.
Why did the gun fail? I went back and read the code, and it was my fault. The shots turn their angle with PI/100 where it should be PI/180, so every shot drifts the wrong way. Holding space makes a new shot every frame and nothing deletes the old ones. The check that lets a shot hit a rock is commented out. So the gun fires, goes nowhere useful, and the pile of shots keeps growing. The rocks had a bug too. Every asteroid moved twice per frame, so they ran at double speed.

This fall I ported the game to this site in JavaScript. I kept two rules. There is still no shooting, and dodging has to stay interesting past the first minute. Rocks spawn and wrap in a 150 pixel band past every edge of the screen, so you never see one appear out of nowhere.
The big addition is a shield. It’s a wedge out the nose of the ship, 56 degrees wide to start, and what it does depends on rock size and your upgrades. If your shield is strong enough, a rock shatters on contact for 22 energy plus 12 per size step. If it’s a little too big, the rock ricochets away for less energy. If it’s far too big, the rock still gets shoved off, but your shield drains and you take the hit. Breaking rocks with the shield is the only way to destroy them, so it never turns into a gun.
There’s more to it now. A daily mode gives everybody the same rocks that day, and each level lets you pick an upgrade. A Classic mode keeps the original orange ship and brown rocks, and the music is generated in your browser. On a phone you get a thumbstick on the left and two buttons on the right.
You can play it at Avoid-a-roids. On a keyboard, A and D turn, W thrusts, Shift dashes, and Space holds the shield. Space used to be the fire button. Go dodge something!