
LaughingSkull is my personal game-development playground: a growing collection of free games, programming experiments, remakes, questionable ideas, and occasionally things that almost resemble finished products.
My history with game development goes back to the Commodore 64. I wrote my first game in 1984, using machine code before I even had an assembler. Several decades and a suspicious number of bugs later, I returned to game development with modern tools and exactly the same unhealthy curiosity about how everything works underneath.
Most LaughingSkull games are inspired by the arcade, C64 and ZX Spectrum era: simple ideas, strong mechanics, immediate gameplay, and very little interest in explaining themselves for forty-five minutes before allowing you to move.
Some are affectionate remakes or reinterpretations of old classics. Others merely started that way and wandered off into something increasingly difficult to explain. The catalogue includes 2D arcade games, dungeon crawlers, platformers, experimental 3D games, AI projects and the occasional standalone Python game.
Everything is free.
A large part of the project is not actually about making games. It is about making the machinery that makes the games.
Most browser games run on my own evolving JavaScript / WebGL / GLSL game engine, developed gradually across many projects rather than adopted as a finished framework.
It handles rendering, animation, motion, collision detection, pathfinding, spatial indexing, procedural generation, AI behaviour, 2D and 3D worlds, asset management and assorted other problems that sensible people solve by downloading an existing engine. Supporting tools are written mainly in Python and C++.
Why build all of this myself?
Because apparently simply making the game was not sufficiently complicated.
The games are primarily programming projects. Entertainment is desirable, naturally, but so is learning something new, trying an algorithm, building another engine component, or discovering entirely new ways to break perfectly functioning code.
One of the most frustrating parts of game development for me has always been getting decent graphic assets.
On a good day, I can draw a reasonably convincing stick figure. I also drew most of the ghosts for DOT-HUNTER myself.
It shows.
For everything else, I used to crawl the internet in search of free sprites, textures and photographs, then Photoshop whatever I found into reluctant obedience.
The arrival of generative AI was therefore something of a blessing.
I use it mainly to create game assets: sprites, textures, illustrations, title screens and the occasional wild scream of a dying Princess. The title screens are rather pretty, aren't they?
I also use AI to polish some of the text in my games and on this site. English is not my native language, and without assistance my writing tends to contain an impressive density of typos, strange commas and sentences that begin confidently and then wander off somewhere unexpected.
But the code?
No.
Coding is my hobby, my passion, and a large part of the reason these games exist in the first place. Nobody touches that.
The bugs, questionable architectural decisions, unnecessary reinventions of solved problems and spectacular programming blunders are entirely my own.
The complete collection of games, development notes and assorted digital debris lives on the main site:
Interested in the machinery rather than surviving what it produces?
▶ Read about the LaughingSkull Engine
If staring directly at source code is your preferred form of recreation:
▶ LaughingSkull projects on GitHub
Still coding. Still learning. Still occasionally wondering why the collision worked perfectly yesterday.