The Gauntlet
Snake 3D grew levels and nine kinds of enemy. The target was Geometry Wars by level 10.
By Dick Gentry // Game by Claude Fable 5.1
The ask
The snake Fable built was good, so I asked it for more. Every 50 packets the game should level up. Each level the globe should get bigger and one new kind of enemy should arrive, a few at a time.
I gave it some ideas for the enemies: some could shorten the snake, some could build walls, some could race you to the food so that nothing replaces what they eat, and some could mess with your steering. After level 5 or so there should be power-ups, a gun or a bomb. By level 10 I wanted something like Geometry Wars.
I asked for a proposal before any code.
The proposal
It came back with nine enemies and four questions for me. My answers: the tail carries 25 segments into each new level, you get three lives, the gun fires itself, and the original game stays on the menu as Classic.
The proposal also had a rule I hadn't asked for, which is that your tail is your health. A hit on the body costs you length and a hit on the head costs you a life.
What comes for you
Level 1 has no enemies and plays the same as Classic. Then one type arrives per level.
- 02Leech
- Races you to packets, and nothing replaces what it takes. Eat it and you get them back.
- 03Cutter
- Circles the globe on one ring and cuts your tail off wherever it crosses.
- 04Mason
- Lays wall behind it. Hit a wall and you lose a life. It dies if it runs into your body.
- 05Jammer
- Touch it and your boost sticks on for three seconds.
- 06Hunter
- Comes straight for your head.
- 07Swarm
- Drones in packs of eight. Each one that reaches your tail eats a segment.
- 08Well
- Bends your course toward it and swallows packets. Shoot it until it bursts.
- 09Splitter
- Breaks in two when you shoot it, and the pieces break in two again.
- 10Doppel
- Another snake. Its body costs you a life, and yours kills it.
After level 10 nothing new arrives and the numbers keep climbing.
The globe
The globe starts at a radius of 8 and gains 1 each level, so by level 10 it has about four and a half times the surface. On a big monitor the camera keeps the whole thing in view, and the snake looks smaller as the world gets bigger. On a laptop or a phone the late levels spill off the edges of the screen.
Fable redraws the grid finer at each level, so the triangles stay about the same size next to the snake. When you level up, the tail past 25 segments is cashed in for points.
Weapons
From level 5, pickups drop near you. The gun lasts 15 seconds and aims at the nearest enemy ahead of you. The EMP clears everything close to your head; you can hold three, and E sets one off. The shield takes one hit. A spread gun joins the drops at level 8.
Before level 5 you fight with the snake itself. You eat the Leeches, and the Masons die against your body.
What it had to work out
The site's style guide has one colour for danger, hot pink, and the packets you eat were already pink. The first build made the enemies pink too, which was too close to the food. They're violet now, all nine of them, so you tell one enemy from another by shape.
The enemies move the way the snake does, with no latitude or longitude anywhere, so the poles are ordinary places for them too.
The Well was the awkward one. Turning the snake toward it would have rotated the camera, and the camera in this game doesn't rotate. Fable has the Well slide the snake sideways, so your course curves and the keys still mean the four directions on your screen.
How it checked its work
The rules went into sim.js again, with 27 new tests on top of the original ten. One of them plays the first level in both modes and checks that they match packet for packet.
Fable also wrote a bot that dodges and ran it ten times at standard speed. The bot's median run reached level 10 on its three lives, about 13 minutes in. The balance has had no other playtesting, so expect the numbers to move.
Play it
Snake 3D opens on the Gauntlet now. Classic is one click away on the same screen.