Push the blocks and clear the way for the mouse!
Square Mouse is a fun and challenging sliding puzzle game! Push, slide, and unlock the path to let the mouse escape! Move the blocks strategically to find the best route and complete each puzzle in as few moves as possible.
Role - Game Programmer and Game Design
Game Structure Planning
Mechanics Programming
Team Size: 6
Time frame: 1.5 Month
Engine: Unity
Platform: Android
This project focuses on player-centred design: every interaction must give the right feeling. The primary goal was to build movement and feedback systems that are smooth and satisfying so that every interaction with the game shows the consequences and the rewards to the player immediately.
The project has also other learning goals. Build a similar and playable clone of a simple mobile puzzle game: Push Sushi. And learn how to write documentation about your work for the others team members.
Blocks don’t simply move at one constant speed. Instead, they move based on interpolation curves: the block starts slowly, accelerates toward the middle of the move, and then decelerates into the stop.
This makes movement feel satisfying and immediate, just smooth transitions that match the visuals and audio feedback.
Blocks can move only horizontally or vertically along the grid. You are free to drag them in any direction along that axis, and when you release them or, they collide with an obstacle, they will snap cleanly into the nearest grid position.
The game scans the levels folder at startup and automatically discovers each level file.
Each level’s JSON has information about the objects such as position and type. When the level loads the system spawns prefabs accordingly to the JSON.
All levels live in the same scene: the loader instantiates and parents objects at runtime, and cleans them up when switching levels.
During the game, the hint system reads the current position of the blocks and keeps track of progress.
When a player requests a hint:
The system checks the current position of the blocks.
The target object receives a temporary highlight to suggest the next move.
The system checks if the move matches the hint and advances the sequence.
A visual schedule we used to map tasks with their deadlines and dependencies. Keeping the chart updated was crucial for delivery the project on time.