Mazing is a dynamic maze game that combines procedural maze generation with realistic physics-based movement. Built as a demonstration of modern web development capabilities, the game challenges players to navigate through increasingly complex mazes across 20 stages spanning four difficulty levels - Easy, Medium, Hard, and Super Hard.
Each stage features a unique maze generated using recursive backtracking algorithms, ensuring no two playthroughs are the same. Players control a ball using arrow keys, leveraging Matter.js physics engine for realistic movement and collision detection. The game includes a complete timer system to track stage completion times, pause/resume functionality, and stage restart options, all wrapped in a responsive design optimized for desktop gameplay.
The game utilizes a state-driven architecture with five core states (initializing, ready, running, paused, and finished) to manage the gameplay flow seamlessly. Progressive difficulty scaling keeps players engaged as they advance through stages, with each level presenting larger, more intricate mazes that test navigation skills and strategic thinking.
Main responsibilities
- Architected and implemented state-driven game architecture with five core states (initializing, ready, running, paused, finished) to manage gameplay flow and user interactions.
- Developed procedural maze generation system using recursive backtracking algorithm, creating unique, solvable mazes for each stage with configurable complexity based on difficulty levels.
- Integrated Matter.js 2D physics engine for realistic ball movement, collision detection, and boundary constraints, implementing custom physics body configurations for walls, player, and goals.
- Built complete game logic with Next.js 15 App Router and React 19, implementing custom hooks (useMaze, useTimer) for maze physics management and timer functionality with pause/resume capabilities.
- Designed and implemented progressive difficulty system with 20 stages across 4 difficulty levels, scaling maze complexity and size to provide engaging gameplay progression.
- Created responsive UI components with Tailwind CSS 4.x, implementing game controls, difficulty selection interface, stage restart functionality, and real-time timer display with Day.js integration.
- Established TypeScript type definitions for game states, maze configurations, and physics interactions, ensuring type safety throughout the application architecture.


