Game review
Canvasnake
7.4 / 10
- Developer
- John Evans (burntcustard)
- Publisher
- Independent
- Released
- 1 January 2018
- Platforms
- Web browser (desktop and mobile)
- Genre
- Arcade
- Monetisation
- Free, open source, no ads and no in-game purchases
- Players
- Local multiplayer (2-3 player), plus single-player and AI-vs-AI modes
The short version
Canvasnake plays it straight as a snake clone at the core — steer, eat, grow, don't hit yourself or the walls — but it's built with more ambition than that description suggests. Under the hood is a genuine neuroevolution-trained AI opponent (a full genome/neural-net/ population system, not a scripted pathfinder), plus local 2-3 player and AI-vs-AI modes on top of the usual solo game. On touch, a virtual d-pad built by repurposing the title screen's own QR-code graphic as a hit-region reference turns out to work cleanly: all four directions were confirmed steering correctly on a simulated touchscreen, with no platform gate hiding it and no meaningful compromise next to the keyboard version.
Biggest strengths
- "Quadrant-tap" touch steering was tested directly rather than assumed: tapping the up, down, left, and right regions of the game board each correctly set the snake's next direction, confirmed via the game's own internal state after a real touchscreen tap through CDP
- No platform gate anywhere in the input code — the same handler drives touch, and WASD/IJKL/ arrow keys all work identically on desktop
- The AI opponent is a genuine neuroevolution system (genome, neural net, and population/ crossover modules in the source) rather than a simple chase-the-food script, and single player, 1v1 vs AI, 2-3 player local multiplayer, and AI-vs-AI spectator modes are all selectable from one menu
Biggest weaknesses
- The desktop-first "click the QR code to play" start screen is a slightly odd first impression on a phone, where scanning a QR code to reach a page you're already on makes no sense — it still works fine as a plain tap-to-start button, but the framing doesn't quite fit the device
- Obstacles and board wrap-around are simple by design; this is classic snake with an AI upgrade, not a reinvention of the genre's rules
- Visuals are plain, flat-coloured rectangles with a basic SSAA option for smoothing — functional and legible, but nothing beyond utilitarian
Who it's for: Snake fans who want an opponent smarter than a scripted bot, and anyone who wants a quick local multiplayer arcade game that also runs cleanly on a phone
Our recommendation: A clean, well-built snake clone worth a few rounds on a phone; the AI and multiplayer modes are the reason to stick around past the first game
7.4 / 10
Snake has been cloned more times than almost any other arcade game, and Canvasnake doesn't try to hide that it's one more entry in that pile — it started as a university project, and the core loop is exactly what the name promises. What makes it worth a second look is what got built around that loop afterward. The src/ai/ folder holds a real neuroevolution system: genomes, a small neural network implementation, and a population/crossover module for breeding successive generations of snake-playing agents, not a simple "move toward the food" bot bolted on for flavor. Paired with selectable single-player, 1-vs-AI, 2-3 player local multiplayer, and AI-vs-AI spectator modes, it's a more ambitious project than "snake, but you can grow the walls a bit."
Touch controls that actually earn the description
The source code's approach to touch input is unusual enough to be worth explaining: the title screen displays a QR code (a genuine one — scanning it on a desktop browser opens the same game on your phone, a neat bit of 2018-era cross-device thinking), and once the game starts, that same image fades to 7% opacity and becomes the reference rectangle for a quadrant-based virtual d-pad. Touching the upper, lower, left, or right portion of that region steers the snake in the matching direction. This was tested directly rather than taken on faith: four separate taps, one aimed at each quadrant of the touch region on a simulated 390-pixel-wide phone screen, correctly set the snake's queued direction to north, south, east, and west in turn, confirmed by reading the game's own internal state after each tap. Nothing about it is gated behind a user-agent check or a desktop-only code path — it's the same input pipeline whether the tap comes from a finger or a mouse click, which is exactly the kind of touch implementation this shelf is looking for.
A clone with real depth underneath
Reading through the AI code confirms the "opponent modes are a nice differentiator" framing is earned rather than marketing: population.js and crossover.js implement actual generational breeding of neural-network-driven snakes, which is a substantial amount of engineering for what reads, at a glance, as a coursework snake clone. The tradeoff is presentation — Canvasnake looks exactly like what it is, flat colored rectangles on a grid with a basic supersampling option for smoother edges, and the obstacle layouts and board wrap-around are standard genre furniture rather than anything novel. It won't surprise anyone visually. But between the AI, the multiplayer modes, and touch controls that were built with real care rather than bolted on as an afterthought, it's a snake clone that earns a spot here rather than just filling one.
Pros and cons
Pros
- "Quadrant-tap" touch steering was tested directly rather than assumed: tapping the up, down, left, and right regions of the game board each correctly set the snake's next direction, confirmed via the game's own internal state after a real touchscreen tap through CDP
- No platform gate anywhere in the input code — the same handler drives touch, and WASD/IJKL/ arrow keys all work identically on desktop
- The AI opponent is a genuine neuroevolution system (genome, neural net, and population/ crossover modules in the source) rather than a simple chase-the-food script, and single player, 1v1 vs AI, 2-3 player local multiplayer, and AI-vs-AI spectator modes are all selectable from one menu
- Ships completely clean: no analytics, no third-party trackers, and the only external network reference in the whole project is a link to install a QR reader app, not a beacon
- Clear MIT licence with proper attribution and a link back to the source, exactly where the in-game About panel says to look for it
Cons
- The desktop-first "click the QR code to play" start screen is a slightly odd first impression on a phone, where scanning a QR code to reach a page you're already on makes no sense — it still works fine as a plain tap-to-start button, but the framing doesn't quite fit the device
- Obstacles and board wrap-around are simple by design; this is classic snake with an AI upgrade, not a reinvention of the genre's rules
- Visuals are plain, flat-coloured rectangles with a basic SSAA option for smoothing — functional and legible, but nothing beyond utilitarian
- Very small original audience (0 GitHub stars as of this writing) — a well-made hobby project, not a widely tested one