← Back to selected work

EARLY UNITY PROJECT

Candy CrushRemake

My first larger Unity/C# gameplay exercise: a state-driven match-three loop with dynamic grid management, swapping, combo detection and refill logic.

UnityC#State MachineGrid SystemScriptableObjectMatch-3
STATE-DRIVEN MATCH-THREE
RoleSolo Developer
EngineUnity
Duration3 weeks
TypeSchool Exam

This project is useful in my portfolio because it shows the point where I started separating gameplay into explicit states and managers instead of putting everything into one controller.

The biggest challenges were building the grid for the first time, keeping logical positions aligned with visual movement and making state transitions reliable.

STATE 01

SwapCandyState

Handles player input, performs swaps and validates whether the move can proceed.

STATE 02

CheckCombosState

Searches the board for valid matches and processes the result.

STATE 03

ReFillState

Fills empty grid positions and restores a playable board.

MANAGER

StateManager

Owns transitions between gameplay states and keeps the loop explicit.

Dynamic match-three grid
Dynamic match-three grid
  • GridControllerManager: Tracks the logical board and updates candy positions after actions.
  • GridManager: Creates the grid using configurable dimensions.
  • RefillManager: Spawns replacements into empty cells after matches.
  • CheckComboManager: Finds and processes valid matches and cascades.
  • CandySpawner: Uses ScriptableObjects to define the available candy types.
ScriptableObject-driven candy configuration
ScriptableObject-driven candy configuration