Classic games rebuilt for the modern web. Play on any device — mobile swipe gestures and desktop keyboard controls both work perfectly.
All games on this page are written from scratch using pure HTML, CSS, and JavaScript — no frameworks, no third-party game engines, no trackers. They run entirely in your browser, load in under a second, and work offline once cached.
Each game is optimized for both touch (mobile/tablet) and pointer (desktop/laptop) input. Snake features a D-pad overlay and canvas swipe support. 2048 uses touch swipe with double-tap-to-undo. Memory Match and Tic Tac Toe are fully tap/click driven. Tetris and Breakout support keyboard, mouse, and on-screen mobile buttons.
Every game on this page is built on two browser-native APIs: the HTML5 Canvas API for rendering game graphics, and the requestAnimationFrame loop for smooth, 60fps animation that synchronises with the display refresh rate. This combination produces game loops that are efficient, battery-friendly on mobile, and automatically pause when the browser tab is hidden — saving resources when the player switches away.
The Canvas API gives JavaScript direct access to a 2D pixel buffer. Every frame, the game clears the canvas and redraws all game objects — the snake's body segments, the falling Tetrimino, the ball and bricks in Breakout — from scratch. This immediate-mode rendering model is simpler than retained-mode DOM manipulation and performs well for fast-moving games where most of the screen changes every frame.
These games collectively illustrate the core concepts of browser game development:
localStorage. This is the simplest form of game save data in a browser context.These games collect no personal data. There are no accounts, no analytics on gameplay, and no data transmitted to any server. High scores are stored in your browser's localStorage and remain on your device. Neon Clash's online multiplayer uses WebSockets only to relay control inputs between players in real time — no gameplay data is stored after a session ends.
All game assets (code, fonts, graphics) are loaded from this domain or from Google Fonts, which is a CDN request for stylesheet data only. No third-party trackers, social pixels, or advertising SDKs are embedded in the game pages.
Every game page is a single self-contained HTML file with inlined CSS and JavaScript. There are no external JavaScript dependencies. Page weight is kept minimal — the Snake page is under 30KB total before font loading. Once cached by your browser, all games except Neon Clash's online multiplayer mode work fully offline with no internet connection required.
Rendering is optimised to avoid unnecessary canvas redraws. Snake only redraws the head and tail cells that changed since the last frame, rather than clearing the entire canvas. Tetris caches the static portion of the board (settled pieces) separately from the active falling piece, reducing per-frame work at high piece counts.