Vu Nguyen

Games

Browser
Games.

Snake

Classic Snake built with XState v5 state machines and Phaser 3 for rendering. Playable in the browser with keyboard, D-pad, and swipe controls.

XStatePhaser 3TypeScript
Play →

Space Invaders

Classic Space Invaders built with XState v5 state machines and Phaser 3 for rendering. Pixel-art invaders, UFO mystery ship, destructible shields, and progressive difficulty. Fully playable on mobile with on-screen controls.

XStatePhaser 3TypeScriptMobile
Play →

Metal Rush

Metal Slug inspired run-and-gun built with Phaser arcade physics. Run, jump, shoot, and lob grenades through a desert canyon, grab the heavy machine gun from crates, and take down the tank boss. Fully playable on mobile with on-screen controls.

Phaser 3TypeScriptMobile
Play →

Fix-It Frenzy

Fix-It Felix Jr. homage from Wreck-It Ralph built with Phaser 3. Climb the Niceland apartments, hammer broken windows back together, dodge Ralph's bricks, and grab pie power-ups. Fully playable on mobile with on-screen controls.

Phaser 3TypeScriptMobile
Play →

Typing

Typing speed trainer inspired by Mavis Beacon. Three difficulty levels from beginner to advanced. Tracks WPM, accuracy, and elapsed time in real time. Pure React with an XState v5 state machine.

XStateTypeScriptReact
Play →

Gem Rush

Bejeweled-inspired match-3 puzzle built with XState v5 and Phaser 3. Swap adjacent gems to trigger matches and cascades against the clock, with tweened swaps, pops, and falls. Fully playable on mobile with tap or drag controls.

XStatePhaser 3TypeScriptMobile
Play →

Bus Out

Bus Out inspired traffic-jam puzzle built with XState v5 and Phaser 3. Tap buses with a clear lane to drive them out of the lot, then board matching-colored passengers from the queue before every bay jams up. 100 levels of steadily escalating gridlock, fully playable on mobile.

XStatePhaser 3TypeScriptMobile
Play →

Blackjack

Blackjack against the dealer with up to three NPC opponents seated at the table. Fixed-stake betting, 3:2 blackjack payouts, and basic-strategy NPCs that hit and stand on their own. Pure React with an XState v5 state machine.

XStateTypeScriptReact
Play →

Sudoku

Classic Sudoku with a from-scratch backtracking puzzle generator and uniqueness checker. Four difficulty levels, pencil marks, auto-eliminating notes, hints, and a mistake counter. Pure React with an XState v5 state machine, fully playable on mobile.

XStateTypeScriptReactMobile
Play →

Ronin Clash

Ronin Clash — a 1v1 canvas fighter ported from the Chris Courses HTML canvas tutorial and rebuilt in React + Phaser. Ronin vs an AI-controlled Kage with three difficulty levels, a 60-second round timer, and full sprite-sheet combat. Playable with keyboard or on-screen controls on mobile.

Phaser 3TypeScriptReactMobile
Play →

Hellcrawl

Doom-style raycasting FPS built from scratch with Phaser 3 — no textures, just a hand-rolled DDA raycaster, billboarded enemy sprites, and a procedurally generated dungeon per level. Eight levels of corridor combat against imps and gunners, ending in a boss fight. Playable with mouse and keyboard, or on-screen controls on mobile.

Phaser 3TypeScriptMobile
Play →