Today, my blog turns 20!
🎂🎂
From the golden age of Adobe Flash in 2006 to WebGPU and 3D browsers in 2026, it’s been a wild ride.
No self-praise today, just a huge THANK YOU to the dev community and a quick trip down web gaming memory lane: bit.ly/4dJiy2n
Spears N’ Coins is a HTML5 fast-paced endless runner powered by Phaser 4.1 and TypeScript featuring procedural generation and pixel art parallax scrolling starting from the Create Phaser Game app.
Full source code available.
bit.ly/4upTt3K
Phaser 4 has arrived, bringing a fresh foundation for modern web game development.
Learn to set up a brand new project using the official Create Game App, powered by Vite and TypeScript
bit.ly/48Dbi6q
Headless SameGame engine written in TypeScript, featuring generic tile type (T), flood-fill region detection, 4-direction gravity, normal or endless mode.
Tracking removed, moved, shifted and spawned tiles.
Commented source code with a lot of examples.
github.com/triqui/samegame-e…
Clean, fully paginated level selection system built in Phaser 4 with TypeScript, featuring horizontal drag, direction-aware snap, mouse wheel and event-driven thumbnails.
Complete source code available for download, ready to use and extend
bit.ly/46vzOp8
HTML5 platformer engine inspired by "Be Brave, Barb", built without physics.
Hero walks along a perimeter, switches between four gravity directions, and reattaches to surfaces using CCD, driven by pure geometry.
Phaser 4 TypeScript source code available
bit.ly/4aAeeAO
A dense grid hides simple shapes. This JavaScript example uses a greedy algorithm to extract the true external perimeter from binary grid data, collapsing hundreds of cells into a geometric outline. Then,rendering, collision and movement, becomes simpler - bit.ly/4tl30ZF
A Tiled collision layer is just a dense grid of cells. By applying greedy rectangle merging, that grid can be reduced to a small set of non-overlapping rectanglesthat are far cheaper to use at runtime. Full JavaScript example available with source code bit.ly/3NReu6Z
Greedy rectangle merging is a practical way to simplify dense binary grids into a small set of axis-aligned rectangles. By making local decisions and never backtracking, the same area can be represented with far fewer geometric primitives. JS source code: bit.ly/4qG5kbW
Gravity-rotating movement system built with Phaser 4 and TypeScript, where a character walks around floating terrain by dynamically reassigning gravity instead of falling off edges.
Full project available for free at bit.ly/4bIHI1C
QuadTrees organize space instead of objects, allowing spatial queries to skip irrelevant areas with a single check.
This makes proximity searches and collision detection far more efficient in games and interactive applications.
Interactive example at bit.ly/4jKRFh6
Randomness is rarely truly random in games. This post explains how Mulberry32 turns a single seed into a fully reproducible sequence of values, with a minimal JavaScript demo and real-world videogame applications bit.ly/3L6svNj
Running modern text-to-speech models locally on Windows is anything but trivial. This guide walks through a clean Chatterbox Turbo setup, from Python and virtual environments to PyTorch pitfalls, showing how to get reliable audio output without guesswork - bit.ly/4qOaouJ
I strongly agree.
Remember: if you can do something with vibe coding, then ANYONE can do the same thing with vibe coding.
Do you really want to be just one more in the crowd?
Pretty disappointed in both @humble and especially in @GirlsWhoCode. Please teach girls how to code, don't push them into generative AI. That won't build their skills. Prioritize foundational programming skills and awaken their interest. "Tired of long days writing code"???
Real-Time vs Delayed Keyboard Input in JavaScript.
Learn to use keyup and keydown events together with requestAnimationFrame to simulate a keyboard input delay.
Video tutorial: youtube.com/watch?v=HouoBwkg… (please subscribe to my newborn YT)
Blog post: bit.ly/489ITEb
Build a fully 3D Wheel of Fortune using only HTML, CSS and JavaScript, with pure geometry and a few transforms.
Watch it spin in real 3D and see how a handful of divs can create a smooth, random wheel animation.
Source: bit.ly/47imLbr
Video: youtube.com/watch?v=16O4aNuI…
Use named functions for clarity and debugging.
Use arrow functions for coincise callbacks and functional patterns.
Use anonymous functions only when needed, otherwise prefer arrow.