Punter.js is a small JavaScript game engine built for teaching. The goal is to get students from theory to something tangible they can show their friends in as few steps as possible. The API is deliberately small: less to learn, sooner to build. Pick a game, play it, edit the JavaScript and see the changes immediately. Nothing to install, no build step, and it’s open source.
No reviews yetBe the first to leave a review for Punter.js
Maker
📌
Punter.js came out of mentoring a 15-year-old work experience student at Orca Scan who was interested in coding.
I’ve always thought that if you want to get school kids interested in programming, you need to get them from theory to something working in as few steps as possible. Ideally they leave with something tangible they can show their friends, and something they want to keep messing with.
When I first started coding, my mum used to buy me INPUT magazine for my ZX Spectrum. It contained code you’d spend hours typing in and then play a game. Whilst typing, you’d realise you could give yourself more lives, change things and see what happened. It pulled you into coding.
Later I learnt to program a PIC microcontroller. It had just 33 instructions and I loved that. You could understand the entire instruction set, then figure out what you could build with it.
Both influenced Punter.js. The API is deliberately small. Not because a game engine couldn’t do more, but because the less there is to learn, the sooner you can start building things.
I originally broke out the pure JS engine we’d built to run https://orcascan.com/game and used it to teach Pong. It worked, but we burnt most of the first day setting up a dev machine: Node, VS Code, Git, etc - which felt like a waste. So I’ve removed that step too.
Punter.js now runs entirely in the browser. Pick a game, play it, edit the JavaScript and see the changes immediately.
The goal isn’t to build the most capable game engine. It’s to get a student from “how does this work?” to “look what I made” in as few steps as possible.
It’s open source and still deliberately small. If you teach programming, I’d love you to try it with your students and let me know what gets in their way. If you’re a developer, contributions are welcome too :)