HyperCasual Games Pack #3

Games #21 through #30 — 10 fully functional mobile puzzle game templates with level editors and core systems.

This pack is part of the HyperCasual Game Engine – Mobile Puzzle Templates.

The full engine includes this and other packs, with more game templates and level editors.

View the Full Engine on the Asset Store

Technical Overview

Toolkit The Hypercasual Game Engine is a modular framework designed for rapid development of puzzle and arcade mechanics. It provides a standardized architecture where game-specific logic is decoupled from core engine systems.

Architecture Philosophy: Every game is treated as a "Module". The Core provides the services (Audio, UI, Camera, Persistence), and the Games folder contains the implementation of specific mechanics.

Core Design Patterns:

Getting Started

Opening the Main Scene

The primary game scene is located at:

Assets/Hypercasual Game Engine/Core/Scenes/HC-Games-Pack-3.unity

Open this scene to access all game modules included in this pack.

Where to Find Level Editors

All level editor tools are located under the Unity Tools menu in the top menu bar. There is no separate "Hypercasual" tab. To open any level editor, go to:

Tools > #{number} {Game Name} Level Editor

For example: Tools > #21 CatBlockSlide Level Editor, etc.

Important - Resizing Level Editor Windows: When you first open any level editor tool, the popup window may appear very small by default. You will need to manually resize the window by dragging its right edge and bottom edge to expand it until you can see the full tool layout (typically a left-side control panel and a right-side grid/preview area). This applies to all level editors in the toolkit.

Project Structure

Understanding the directory layout is crucial for extending the engine.

Global Core (Assets/Hypercasual Game Engine/Core)

SoundManager.cs Handles global SFX and Music. Supports muting and volume scaling.
LevelManager.cs Base class for all game managers. Handles Win/Loss logic and UI triggers.
ColorManager.cs Centralized color palette management for blocks and UI.
AnimationPlayer.cs A helper to trigger common animations (Scale, Rotate, Move) via code.

Game Modules (Assets/Hypercasual Game Engine/Games)

Each game folder is self-contained, including its own Scripts, Editor, Prefabs, and Resources/Levels. The folder naming convention is #{number}_{GameName}, for example: #21_CatBlockSlidePuzzle, #27_ColorTileFlow.

Scenes (Assets/Hypercasual Game Engine/Core/Scenes)

The current main scene is HC-Games-Pack-3. This is the scene you should open to play or test any of the game modules in this pack.

#21 Cat Block Slide Puzzle

A sliding-block puzzle where players drag colored blocks across a grid to fill goal targets within a time limit. Blocks are constrained by walls and other blocks; sliding stops on collision. Match the goal counts for every color before the countdown runs out to win the level.

Main Scripts:

CatBlockLevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/CatBlockSlidePuzzle/ at runtime and tracks progression via PlayerPrefs.
GridManager.cs Initializes the grid, spawns blocks from level data, manages block movement, runs the countdown timer, and evaluates win/lose conditions.
InputManager.cs Handles mouse/touch drag input, block selection, wall-sliding physics during drag, and snap-to-grid on release.
GoalManger.cs Tracks goal indicators per block color and triggers the win event when all goal counts reach zero.
Block.cs Draggable block entity with color, sprite, and collision/occupancy tracking on the grid.
LevelData.cs Serializable level definition: grid size, time limit, block data (size, color, sprite), and per-block piece layouts.

Key Mechanics:

Cat Block Slide Puzzle Level Editor

Script: LevelEditorWindow.cs

Open via: Tools > #21 CatBlockSlide Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser, grid editor, and properties panels.

How to use:

  1. Open via Tools > #21 CatBlockSlide Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, reorder, or delete levels.
  3. Set the Grid Size and Time Limit for the current level.
  4. Paint walls and blocks onto the grid by selecting a color from the palette and clicking cells. Blocks can span multiple cells via piece data.
  5. Configure goal targets per color (the counts that must be reached to win).

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Hypercasual Game Engine/Games/#21_CatBlockSlidePuzzle/Resources/Levels/CatBlockSlidePuzzle/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/CatBlockSlidePuzzle/ using Unity's Resources.Load system.

#22 Sorty Cars

A color-sorting puzzle where colored cars are stacked in vertical parking lines. Players drag cars between lines to consolidate matching colors. Win when every line is filled with cars of a single color.

Main Scripts:

LevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/SortyCars/ at runtime and provides save/delete for editor use.
GridManager.cs Initializes the grid of parking lines, spawns cars from level data, handles drag/snap movement, conveyor cycling, and win/lose checks.
GameLevel.cs Scene entry point. Loads the active level via LevelManager and initializes GridManager.
InputManager.cs Detects car selection via raycast, handles drag with smooth movement, and snaps cars into valid line slots on release.
Car.cs Colored car entity with drag state and parent line tracking.
LevelData.cs Serializable level definition: grid dimensions and per-line car color configurations.

Key Mechanics:

Sorty Cars Level Editor

Script: LevelEditorWindow.cs

Open via: Tools > #22 SortyCars Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser and grid editor panels.

How to use:

  1. Open via Tools > #22 SortyCars Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, reorder, or delete levels.
  3. Set Grid Width and Grid Height to define the number of parking lines and slots per line.
  4. Paint the line cars: select a color and click cells to assign cars to specific positions.

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Resources/Levels/SortyCars/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/SortyCars/ using Unity's Resources.Load system.

#23 Foodie Sort

A fast-paced food sorting puzzle where players drag food items into matching color trays. Multiple food lines feed items in rotation, and trays must be filled before queues overflow. Win by clearing every tray; lose when any food line piles up beyond its capacity.

Main Scripts:

LevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/FoodieSort/ at runtime and provides save/delete for editor use.
GridManager.cs Spawns food trays and items, drives food rotation per line, detects matches and queue overflow, and manages win/lose evaluation.
GameLevel.cs Scene entry point. Loads the level via LevelManager and initializes GridManager.
InputManager.cs Detects food item selection, handles drag-to-tray placement, and triggers visual feedback on release.
Food.cs Draggable food item with a type enum and scale animations during pickup/drop.
LevelData.cs Serializable level definition: grid dimensions and per-line food turn sequences.

Key Mechanics:

Foodie Sort Level Editor

Script: LevelEditorWindow.cs

Open via: Tools > #23 FoodieSort Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser and editor panels.

How to use:

  1. Open via Tools > #23 FoodieSort Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, or delete levels.
  3. Set Grid Width and Grid Height to define line layout.
  4. Edit per-line food turn sequences: each turn defines which food types appear and in what order.

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Resources/Levels/FoodieSort/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/FoodieSort/ using Unity's Resources.Load system.

#24 Fit Blast

A Tetris-style block-fitting puzzle where players drag shaped blocks into pedestals on a grid. Each pedestal accepts only blocks of a specific shape and size. Win by filling every pedestal; lose when no remaining block can fit any open pedestal.

Main Scripts:

LevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/FitBlast/ at runtime.
GameLevel.cs Scene controller. Loads the level, spawns blocks from the queue, builds grid pedestals, and evaluates win/lose conditions.
InputManager.cs Detects block selection, handles drag movement across the screen, and validates pedestal placement on release.
Block.cs Draggable block with assigned color, shape, and fitted-state tracking.
BlockData.cs ScriptableObject defining available block shapes and colors for spawn sequences.
LevelData.cs Serializable level definition: grid pedestals (position and size constraints) and the ordered block spawn queue.

Key Mechanics:

Fit Blast Level Editor

Script: LevelEditorWindow.cs (with custom BlockDataEditor.cs inspector)

Open via: Tools > #24 FitBlast Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser and pedestal editor panels.

How to use:

  1. Open via Tools > #24 FitBlast Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, or delete levels.
  3. Edit grid pedestals: place each pedestal with its position, width, and height.
  4. Define the block spawn queue by referencing entries from BlockData.

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Resources/Levels/FitBlast/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/FitBlast/ using Unity's Resources.Load system.

#25 Slide Block

A column-stacking puzzle where players tap blocks to move them between vertical columns. Blocks fall and stack within columns, and grid pedestals show target colors that must be filled. Win by satisfying every pedestal; lose when no further valid moves are possible.

Main Scripts:

LevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/SlideBlock/ at runtime.
GameLevel.cs Scene controller. Spawns blocks in columns, builds grid pedestals, plays spawn animations, and evaluates win/lose conditions.
InputManager.cs Detects block taps, validates move legality (column capacity / block type), and triggers move animations.
Block.cs Stackable block entity with color, parent column, and fill-state tracking.
ColorData.cs ScriptableObject mapping color enums to Unity Materials for block rendering.
LevelData.cs Serializable level definition: column configurations (block stacks) and grid target positions.

Key Mechanics:

Slide Block Level Editor

Script: LevelEditorWindow.cs

Open via: Tools > #25 SlideBlock Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser and grid editor panels.

How to use:

  1. Open via Tools > #25 SlideBlock Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, or delete levels.
  3. Edit columns: assign starting block stacks per column with color and order.
  4. Edit grid pedestals: choose target colors for each grid cell that must be satisfied.

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Resources/Levels/SlideBlock/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/SlideBlock/ using Unity's Resources.Load system.

#26 Parking Slot Match

A car-parking matching puzzle where colored cars are dragged into grid-aligned parking slots. Each slot accepts a specific color; cars must be sorted into their matching slots. Win when every car is parked in its correct color slot.

Main Scripts:

LevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/ParkingSlotMatch/ at runtime.
GridManager.cs Initializes parking lines and slots, spawns cars from level data, processes drag movement, and handles match/collision detection.
GameLevel.cs Scene entry point. Loads the level via LevelManager and initializes GridManager.
InputManager.cs Detects car selection via raycast, handles drag with smooth movement, and snaps cars onto valid grid positions on release.
Car.cs Colored car entity with drag state and parent parking-line tracking.
LevelData.cs Serializable level definition: grid dimensions and per-line parking slot color configurations.

Key Mechanics:

Parking Slot Match Level Editor

Script: LevelEditorWindow.cs

Open via: Tools > #26 ParkingSlotMatch Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser and grid editor panels.

How to use:

  1. Open via Tools > #26 ParkingSlotMatch Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, reorder, or delete levels.
  3. Set Grid Width and Grid Height for your parking layout.
  4. Paint parking-slot colors and place cars in starting positions using the color palette.

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Resources/Levels/ParkingSlotMatch/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/ParkingSlotMatch/ using Unity's Resources.Load system.

#27 Color Tile Flow

A conveyor-routing puzzle where colored tiles flow through a grid guided by directional arrows. Players place arrows so that tiles are routed into their matching color docks. Win by filling all docks with correct colors; lose if tiles overflow the grid.

Main Scripts:

LevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/ColorTileFlow/ at runtime.
GameLevel.cs Scene controller. Spawns tiles, arrows, and docks from level data; manages tile routing and overflow detection.
InputManager.cs Detects arrow/tile selection, validates rotation/placement, and handles drag-to-grid placement.
Arrow.cs Directional tile guiding tile flow. Tracks grid position and current direction (Up/Down/Left/Right).
Tile.cs Colored tile that travels through the conveyor system following arrows toward docks.
Dock.cs Color-coded outlet that consumes matching tiles. Levels track per-dock progress for win evaluation.
LevelData.cs Serializable level definition: grid dimensions, arrow layouts, dock positions, and tile spawn sources.

Key Mechanics:

Color Tile Flow Level Editor

Script: LevelEditorWindow.cs

Open via: Tools > #27 ColorTileFlow Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser, grid editor, and dock configuration panels.

How to use:

  1. Open via Tools > #27 ColorTileFlow Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, or delete levels.
  3. Set Grid Width and Grid Height for your playfield.
  4. Paint Arrows by selecting a direction and clicking grid cells.
  5. Place Docks at grid edges and assign target colors.
  6. Define tile spawn sources with color and timing.

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Resources/Levels/ColorTileFlow/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/ColorTileFlow/ using Unity's Resources.Load system.

#28 Color Pixel Crush

A cannon-based block-matching game where colored fill items are launched into a grid. Three or more matching items in a row crush each other; remaining items cascade with gravity. Win by crushing all required colors; lose if the grid overflows.

Main Scripts:

LevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/ColorPixelCrush/ at runtime.
GameLevel.cs Scene controller. Manages the fill grid, cannon, item spawn, gravity physics, and crush detection.
InputManager.cs Detects cannon angle input, fires the cannon, and tracks projectile trajectories.
Cannon.cs The aimable cannon that launches colored items into the playfield. Tracks angle and fire rate.
FillItem.cs Crushable colored item with gravity/collision physics that settles into grid cells.
LevelData.cs Serializable level definition: grid dimensions (fill and tap-out), cannon spawn sequences, and per-color crush targets.

Key Mechanics:

Color Pixel Crush Level Editor

Script: LevelEditorWindow.cs

Open via: Tools > #28 ColorPixelCrush Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser, grid editor, and target panels.

How to use:

  1. Open via Tools > #28 ColorPixelCrush Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, or delete levels.
  3. Set Fill Grid and Tap-Out Grid dimensions.
  4. Define the cannon spawn sequence — the ordered colors that the cannon will fire.
  5. Define crush targets — the per-color crush counts required to win.

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Resources/Levels/ColorPixelCrush/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/ColorPixelCrush/ using Unity's Resources.Load system.

#29 Jig Sort

A jigsaw-matching puzzle where players drag shaped blocks into pedestals of the same outline (L, T, I, etc.). Each pedestal accepts only its specific shape and color. Win by filling every pedestal; lose when no remaining block can fit any open pedestal.

Main Scripts:

LevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/JigSort/ at runtime.
GameLevel.cs Scene controller. Spawns blocks from the queue, builds grid pedestals, and evaluates shape-fit completion.
InputManager.cs Detects block selection via raycast, handles drag across the grid, and validates shape-fit on release.
Block.cs Shaped, draggable block with assigned color and fit-state tracking.
BlockData.cs ScriptableObject defining the available block shapes and colors used in spawn sequences.
LevelData.cs Serializable level definition: grid pedestals (shape and color constraints) and the ordered block spawn queue.

Key Mechanics:

Jig Sort Level Editor

Script: LevelEditorWindow.cs (with custom BlockDataEditor.cs inspector)

Open via: Tools > #29 JigSort Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser and pedestal editor panels.

How to use:

  1. Open via Tools > #29 JigSort Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, or delete levels.
  3. Place pedestals on the grid by selecting a shape and color from the palette.
  4. Configure the block spawn queue using shapes from BlockData.

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Resources/Levels/JigSort/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/JigSort/ using Unity's Resources.Load system.

#30 Charge Out Puzzle

A block-sliding puzzle on an irregular grid where players drag colored blocks into matching color conveyor zones. Blocks slide until they hit a wall, an obstacle, or the edge. Win by routing every block onto its matching conveyor before time expires.

Main Scripts:

LevelManager.cs Static utility for JSON-based level persistence. Loads levels from Resources/Levels/ChargeOutPuzzle/ at runtime.
GridManager.cs Initializes the irregular grid, manages block movement, wall/obstacle detection, conveyor tracking, and the countdown timer.
InputManager.cs Detects block selection via raycast, handles drag-to-push movement, and validates slide paths.
Block.cs Draggable colored block with grid-position tracking.
Shape.cs Wall and obstacle entity that blocks block movement and shapes the playfield outline.
Convenyor.cs Conveyor zone that consumes blocks of a matching color when they slide onto it.
LevelData.cs Serializable level definition: grid width/height, time limit, block/obstacle/conveyor placements.

Key Mechanics:

Charge Out Puzzle Level Editor

Script: LevelEditorWindow.cs

Open via: Tools > #30 ChargeOutPuzzle Level Editor

Window Size: When you first open this editor, the window may appear small. Drag the right edge and bottom edge of the window to expand it and see the full level browser, grid painter, and properties panels.

How to use:

  1. Open via Tools > #30 ChargeOutPuzzle Level Editor.
  2. Use the Level Browser (left panel) to create, load, duplicate, reorder, or delete levels.
  3. Set Grid Width, Grid Height, and Time Limit.
  4. Use the paint modes to place walls/obstacles, blocks, and conveyor zones with assigned colors.

Saving & Loading Levels

  • Save: Levels are written as .json files to Assets/Resources/Levels/ChargeOutPuzzle/.
  • Load: Use the Level Browser in the left panel to see and load existing levels.
  • At runtime, levels are loaded from Resources/Levels/ChargeOutPuzzle/ using Unity's Resources.Load system.

Core Systems & Utilities

Core Editor Tools

These tools are available globally to assist with general project development:

  • DragSnapWithoutPlaymodeEditor.cs:
    Usage: Attach the DragSnapWithoutPlaymode component to any GameObject. In the Scene view, a custom handle will appear. Moving this handle will snap the object to the grid defined in the inspector. It also draws a visual grid around the object for reference.
  • ImportAudioIcon.cs:
    Usage: Automatically assigns a custom icon to audio files in the Project window, making them easier to distinguish from other assets.

LoseWinPanelManager

A global UI controller. It listens for events from any LevelManager and triggers the appropriate overlay. It is designed to be "Plug and Play" — just drop the prefab into your scene's Canvas.

Animation System

The engine includes a lightweight animation system (PositionAnimation.cs, ScaleAnimation.cs, RotationAnimation.cs) that allows for tween-like behavior without external dependencies.

Development Guide

Creating a New Game Module:

  1. Folder Setup: Create Assets/Hypercasual Game Engine/Games/#X_Name.
  2. Manager: Create a script inheriting from LevelManager.
    public class MyGameManager : LevelManager { ... }
  3. UI Integration: Ensure your scene has an EventSystem and a Canvas with the LoseWinPanel prefab.
  4. Namespace: Wrap all code in namespace HypercasualGameEngine.YourGameName { ... } or a dedicated namespace like namespace YourGameName { ... }.
Important: When moving assets, always use the AssetDatabase API or the Unity Project window to preserve .meta files and references.

Support

Need help with the engine? Have questions about a specific mechanic or want to report a bug?

Contact Email: ragendom@gmail.com

We aim to respond to all support inquiries within 24-48 hours. Please include your order number and a detailed description of your issue for faster assistance.