About this project

Mobile Gaming is a collection of browser-based puzzle, arcade and simulation games whose concepts are drawn from the style of mobile game advertisements. Everything runs on the open web using Phaser 3 for 2D gameplay and Three.js for 3D rendering. A live build is published at mobile-gaming.pages.dev, and a game selector hub page acts as the lobby from which each title is launched. The set currently covers thirteen games across three rough groupings. Puzzle games: - Brain Teaser — lateral-thinking puzzles including sorting items by weight, navigating mazes and logic problems, with more than 10 handcrafted levels. - Water Sort — sorting colored liquids by pouring between tubes, with difficulty increasing through more colors and tubes. - Parking Escape — an unblock-style puzzle where vehicles are slid aside to clear a path for the red car. - Pull the Pin — physics-based pin puzzles where balls are guided to a goal while avoiding hazards and collecting rewards. - Save the Character — multiple-choice survival scenarios that test judgement and reflexes. - Bus Jam — a color-matching puzzle in which passengers are sorted onto matching buses, with route planning and filling buses to capacity. - Merge Games — merging matching tiles to reach a goal tier, with planning required for efficient merges. Arcade games: - Crowd Runner — an auto-runner where the crowd grows through math gates and must defeat a boss while dodging obstacles. - Bridge Race — a 3D auto-runner with bridge-building mechanics, collecting blocks and racing AI competitors. - Giant Runner — a 3D growth-focused runner where matching orbs are collected to power up for boss battles. - Jelly Shift — a shape-shifting 3D runner in which a jelly blob is reshaped to fit through walls. - Makeover Run — a fashion-themed 3D auto-runner with upgrade stations, style items and a runway finale. Simulation: - Satisfying Clean — a swipe-to-clean ASMR-style relaxation game. Running locally requires Node and npm. The documented commands are npm ci to install dependencies, npm run dev to start the development server, npm run build for a production build and npm run preview to preview that build. Tests are run with npm test for Vitest unit tests, npm run test:e2e for Playwright end-to-end tests and npm run test:levels for level validation. The dev server listens on http://localhost:5173/ and auto-discovers games from src/games/*/. The project structure places each game in its own directory under src/games, with files for index.html, game.js, state.js, renderer.js, input.js, styles.css and levels.json. A src/hub directory holds the main lobby and selector, and src/shared contains shared utilities for audio, scoring and lifecycle handling. Separate levels/, public/, tests/ and docs/ directories hold level JSON files, static assets such as the manifest, service worker and redirects, the test suites and project documentation. On testing, the README states there are 121 unit test files covering game logic, state management and scoring, plus Playwright E2E tests run against mobile Chrome and Safari. Bundle size is enforced against budgets of 3000KB for JavaScript and 150KB for CSS, and a level validation step requires every game to have at least three levels. Deployment targets Cloudflare Pages at the production URL, with CI/CD driven by Argo Workflows on an iad-ci cluster. Builds trigger automatically on pushes to the main branch and run npm ci, npm test, npm run test:levels and npm run build in sequence. The reusable build and deployment definitions live in a separate public GitOps repository, jedarden/declarative-config. Technology choices listed are Phaser 3 for the 2D puzzle games, Three.js for 3D arcade runners, Vite as the build tool with hot module replacement, Vitest for unit testing and Playwright for cross-browser end-to-end testing. The project is also a progressive web app: it can be installed on mobile devices for offline play through a service worker for offline caching and an app manifest, with a responsive design intended for all screen sizes. It is released under the MIT License.