Skip to content Skip to sidebar Skip to footer

Widget HTML #1

Unity Hyper Casual Game - Exploring Hexa Sort Mechanics


Unity Hyper Casual Game - Exploring Hexa Sort Mechanics

In this course, you will learn how to recreate various mechanics and effects from Hexa Sort, a famous and trending hypercasual mobile game.

Enroll Now

Hyper-casual games have taken the mobile gaming industry by storm with their simple yet addictive gameplay mechanics. These games are characterized by their minimalist design, easy-to-learn controls, and engaging gameplay loops that can hook players within seconds. One such captivating mechanic is the "Hexa Sort," which combines elements of puzzle and strategy games to create an enjoyable and challenging experience. In this exploration, we'll delve into the Hexa Sort mechanics, understand their appeal, and see how they can be implemented in Unity, one of the most popular game development engines.

What is Hexa Sort?

Hexa Sort is a puzzle mechanic where players sort or organize hexagonal tiles on a grid. The primary objective is to match tiles based on color, shape, or number, creating specific patterns or clearing the board. The hexagonal grid adds an extra layer of complexity compared to traditional square grids, as each tile can have up to six adjacent neighbors instead of four. This mechanic requires players to think strategically about their moves, often planning several steps ahead.

The Appeal of Hexa Sort Mechanics

Hexa Sort mechanics are appealing for several reasons:

  1. Simple Controls: The game typically uses intuitive drag-and-drop or tap controls, making it accessible to players of all ages.

  2. Challenging Gameplay: The hexagonal grid and the need to match tiles in various patterns present a challenging puzzle that engages the player's problem-solving skills.

  3. Quick Sessions: Hyper-casual games are designed for short play sessions, and Hexa Sort fits perfectly into this model with puzzles that can be completed in a few minutes.

  4. Visual Satisfaction: Matching tiles and clearing the board provides visual and mental satisfaction, encouraging players to continue playing.

Implementing Hexa Sort in Unity

To implement a Hexa Sort game in Unity, we need to follow several steps, from setting up the grid to handling player interactions and ensuring smooth gameplay. Here's a high-level overview of the process:

1. Setting Up the Hexagonal Grid

The first step is to create the hexagonal grid. Unlike square grids, hexagonal grids require careful positioning to ensure that each tile fits perfectly with its neighbors.

  • Hexagon Tile: Create a hexagon tile prefab with a sprite renderer to display the tile image.

  • Grid Layout: Implement a script to generate a hexagonal grid. The coordinates for placing hexagonal tiles can be calculated using axial or cubic coordinates.

Here's a simple example of generating a hexagonal grid:

public class HexGrid : MonoBehaviour { public GameObject hexTilePrefab; public int gridWidth = 10; public int gridHeight = 10; public float tileSpacing = 1.1f; void Start() { GenerateGrid(); } void GenerateGrid() { for (int x = 0; x < gridWidth; x++) { for (int y = 0; y < gridHeight; y++) { float xPos = x * tileSpacing; float yPos = y * tileSpacing * Mathf.Sqrt(3) / 2; if (y % 2 != 0) { xPos += tileSpacing / 2; } Vector3 pos = new Vector3(xPos, yPos, 0); Instantiate(hexTilePrefab, pos, Quaternion.identity, transform); } } } }

2. Handling Player Interactions

Players need to interact with the tiles to sort them. This can be achieved through simple touch or mouse input handling.

  • Dragging Tiles: Implement a script to handle dragging and dropping tiles. Ensure the tiles snap to the grid after being moved.

  • Swapping Tiles: Allow players to swap tiles by dragging one tile onto another, ensuring that the swap adheres to the game rules.

Example of handling tile dragging:

public class HexTile : MonoBehaviour { private Vector3 offset; private Vector3 initialPosition; void OnMouseDown() { offset = transform.position - GetMouseWorldPosition(); initialPosition = transform.position; } void OnMouseDrag() { transform.position = GetMouseWorldPosition() + offset; } void OnMouseUp() { // Snap to grid or swap logic here } Vector3 GetMouseWorldPosition() { Vector3 mousePoint = Input.mousePosition; mousePoint.z = Camera.main.nearClipPlane; return Camera.main.ScreenToWorldPoint(mousePoint); } }

3. Implementing Game Logic

The core game logic involves checking for matches and handling the sorting mechanism.

  • Matching Logic: Implement a function to check for matches of tiles based on color, shape, or number.

  • Clearing Matches: When a match is found, remove the matched tiles from the grid and possibly generate new tiles to fill the gaps.

Example of match checking:

public class MatchChecker : MonoBehaviour { public void CheckMatches(HexTile tile) { // Check for matches around the given tile List<HexTile> matchedTiles = new List<HexTile>(); // Add logic to find matching tiles // ... if (matchedTiles.Count >= 3) { foreach (HexTile matchedTile in matchedTiles) { Destroy(matchedTile.gameObject); } } } }

4. Enhancing the Game

To keep players engaged, consider adding additional features:

  • Power-Ups: Introduce power-ups that can clear multiple tiles or change tile colors.

  • Levels and Challenges: Create multiple levels with increasing difficulty and specific challenges to keep the gameplay fresh.

  • Visual and Audio Feedback: Enhance the game with satisfying visual and audio feedback for matches and tile movements.


Hexa Sort mechanics provide an excellent foundation for a hyper-casual game. Their simplicity and depth offer an engaging experience that can captivate players. By implementing these mechanics in Unity, developers can create a visually appealing and addictive puzzle game that aligns perfectly with the hyper-casual genre. Whether it's through simple tile matching or more complex strategic challenges, Hexa Sort games have the potential to entertain and challenge players, making them a valuable addition to the mobile gaming landscape.