Snake Quest
Saved games stay in this browser only.
About the game
Snake Quest starts like the snake game everyone knows: a snake in a hedge-bordered garden, items to eat, a body that grows. Then it keeps changing the rules. Every level adds a new mechanic, and the later ones combine what came before, so the game is always teaching you something. You steer by turning left and right, and you see a map of the arcs between levels, with a checkpoint at the start of each arc.
The story is 35 levels in seven arcs: the Garden, the Wilds (where beetles hunt you and you hunt prey), the Fortress (turrets, ice and mines), the Caves (webs, moles, cave-ins and bats in the dark), the Workshop (crates, pressure plates, keys and conveyor belts), Space (airlocks, zero gravity, gravity wells, asteroids) and Ouroboros (a trail, a mirror, armour). At the end of each arc waits a boss with phases of its own: a hunger that eats you from the inside, a pack leader, a fortress core behind a ring of turrets, a spider queen in the dark, a clockwork, a mothership, a rival snake. Along the way you pick up weapons (a gun, spread shot, ricochet, mines, laser, homing shots, flares, a tractor beam).
When the story ends, a bonus arc opens: the Keeper, where the snake moves by itself and you are the gardener's hand, placing hedges, trees, lures and lanterns to keep it alive. There are four difficulties (Easy, Medium, Hard and Nightmare), highscore tables for each arc and difficulty, and colour palettes for the snake.
The music is original: it is written as text scores and compiled into Pyxel sounds, one theme for each arc. The repository includes instructions for an AI coding assistant, so the code was written with AI help, and a bot that plays the levels in the tests to prove that every one can be won.
Playing it here
The first time you click Play the page downloads Pyxel and the Python runtime (about 15 MB), which takes a few seconds; after that the game shows a "click to start" prompt, and one more click starts it with sound. Nothing is loaded from other sites. Your profile (the highscores, the difficulty and palette you chose and the arcs you finished) is saved in this browser and kept when you close the tab. It is not shared between browsers or devices, and clearing the site's data erases it.
On the web we took out the QUIT item of the menu and the Q key of the game over screen, because on a web page quitting would only freeze the screen: to leave, just close the tab. The game over screen keeps R (restart) and M (menu).
Controls
| Input | Action |
|---|---|
| Left / Right arrows | turn the snake left or right |
| Space | fire the weapon you carry |
| P or Esc | pause (in menus Esc goes back) |
| Arrow keys or WASD, Enter | move through the menus and choose |
| Mouse | menus, and in the Keeper arc: left click places, right click lifts, the wheel or 1 to 4 choose the tool |
| After a game over: R or M | restart or go back to the menu |
| Gamepad d-pad, A, B, Start | the same, on a connected controller |
A few things worth knowing
You turn, you do not point. The arrows turn the snake relative to where it is heading, so plan a turn one square early, especially on ice and in tight rooms.
Read the mission. Every level opens with a short mission screen that tells you what the goal is (items to eat, a time limit, a boss to defeat), and it changes from level to level.
Pick a difficulty that fits. Easy gives you more room and fewer enemies; Nightmare asks for more and gives less. The highscores are kept apart for each one.
The map shows what is open. Finishing an arc opens the next one on the overview map; the Keeper opens after the story's end.
Frequently asked questions
How long is it? There are 35 story levels, eight bosses and a bonus arc, so it is a long game, and every arc starts a checkpoint. You can come back to the overview map at any time.
Is my progress saved? Yes: the finished arcs, the highscores and your settings, in this browser.
Does it use the mouse? The menus do, and so does the Keeper's bonus arc; the main game is played with the arrow keys.
Does it work on a phone? The game was made for a keyboard or a game pad. The page offers an on-screen pad on touch devices, but we have not tested the game with it.
Why does it say "click to start"? Browsers only allow sound after you interact with the page, so the Pyxel launcher asks for one click before it starts the game.
Is it free? Yes: Snake Quest is open source under the MIT licence, and the source of this build is available from this page.
Credits and licence
Snake Quest was designed and programmed by Patrick Godau, the only author of the repository, with the original music and the art in the game's own Pyxel resource files, all under the MIT licence of the repository. The build served here differs from the original in a few ways, all published with the source: a small stand-in for the OmegaConf library (the real one needs modules the in-browser Python does not have) with the game's YAML files converted to Python literals, the Quit items removed, the profile kept in the browser, and the OmegaConf line removed from the credits screen. The game's own test suite was run against this version. It runs on the Pyxel engine (MIT) and the Pyodide runtime (MPL-2.0), whose licences and source are linked from the Licenses page.