Skip to content

MetinKagit/SpaceSwipe-Unity-Match3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Space Swipe: Mobile Match-3 Puzzle Game

Space Swipe is a modern, Unity-based Match-3 puzzle game developed as an undergraduate graduation project for the Computer Engineering Department at Fatih Sultan Mehmet Vakıf University.

🎥 Gameplay Video:

Movie_001.mp4

🔊 Turn up the volume.

About the Project

This project aims to offer players an immersive and strategic experience by adding innovative mechanics and modern software architecture approaches to the popular "Match-3" genre. The primary motivation behind the project is to put the theoretical knowledge acquired during undergraduate education into practice.

The foundations of this project were laid by following a tutorial series (Make a Match-Three Puzzle Game in Unity by Wilmer Lin on Udemy) to enhance my skills in game development. Comprehensive and original systems were built upon the basic structure provided by the course.

Core Structures from the Course

  • Basic game board (grid) creation and piece placement logic.
  • A fundamental algorithm for detecting classic vertical/horizontal 3-piece, T, L, and 5-piece matches using a swap mechanic.
  • Basic obstacle logic.
  • VFX explosion effects.

Original Features and Improvements

  • Modern Architecture: The project features a ScriptableObject-based level management system and a performance-oriented object pooling pattern.
  • Square Match: Implemented a 2x2 square matching mechanic.
  • Special Pieces Logic Change: Special pieces were decoupled from the color-matching logic, making them activatable by swapping or clicking on them directly.
  • Schrodinger's Box & Gold Mechanic: It is a special piece formed as a result of a square match. When it explodes, it clears the area in a “+” shape. Also, there is a 50% chance of earning one gold when it explodes. If combined with a special object, there is a 20% chance of earning one gold from the cleared tiles. If two Schrödinger Boxes combine, you will earn three gold with 100% certainty.
  • Boosters: Four boosters have been added: clear a selected piece, clear a row, clear a column, and swap two selected pieces.
  • Code Organization: Complex classes like Board have been split into separate files based on their responsibilities using partial class, enhancing maintainability.
  • Original Content: All game assets, user interface elements, and level designs were created from scratch for this project, with the exception of the "Message Box" and sounds.
  • Performance Optimization (Object Pooling): An object pooling system was implemented for frequently instantiated objects like GamePiece and Gold. This approach minimizes runtime memory allocations and reduces garbage collection spikes, ensuring a consistent and smooth gameplay experience even during particle-heavy visual effects on low-end devices.

Special Pieces

Special game pieces are pieces that can be created by matching specific combinations of basic objects and have special effects. In the project, the special game pieces are:

  • Row Bomb: Clears all pieces in its row when activated. Created by a 4-piece match on a column.
  • Column Bomb: Clears all pieces in its Column when activated. Created by a 4-piece match on a row.
  • Square Bomb: It clears all tiles in a 3x3 area centered on the tile it is on when activated. Created by a T or L match.
  • Schrodinger's Box: When activated, it clears the area in a “+” shape. Additionally, when it explodes, there is a 50% chance of earning a gold coin. When combined with a special item, there is a 20% chance of earning a gold coin from the cleared tiles. If two Schrödinger Boxes combine, you will earn minimum three gold coins with a chance of 100%. Created by a square match.

    This piece is named after the famous Schrödinger's cat paradox due to its probabilistic nature; there is a 50% chance of receiving a gold coin when it is cleared, representing a state of uncertainty until the moment of observation (explosion).

  • UFO: When activated by swapping with a base piece, it clears all pieces on the board that have the same colour as the swapped piece. Created by a 5-piece match on a row or column.

Special Pieces Combinations

  • Row/Column Bomb + Row/Column Bomb: Clears all pieces in the row and column at the point where they intersect.
  • Row/Column Bomb + Square Bomb: Clears all pieces in the three rows and three columns centered on the intersection tile.
  • Square Bomb + Square Bomb: Clears a 7x7 area.
  • Schrodinger's Box + Schrodinger's Box: Guarantees at least three gold coins (100% chance).
  • Schrodinger's Box + Other Special Piece: Has a 20% chance to drop a gold coin from the cleared tiles.
  • UFO + UFO: Clears the entire board.
  • UFO + Any Other Special Piece: Transforms base pieces into that special piece and then activates them.

Boosters

boostersGif

  • Clear Selected Piece: Removes the selected piece.
  • Clear Row: Clears the selected row.
  • Clear Column: Clears the selected column.
  • Swap/Teleport: Swaps the positions of two selected pieces.

Obstacles

  • Ice: Cleared when a match is made on it.
  • Thick (Dark) Ice: Cleared after two matches are made on it. It requires two matches to be completely removed.
  • Rock: Cleared when a match is made on an adjacent tile. It requires two matches to be completely removed.
  • Constellation: Cleared after three matches are made on adjacent tiles.

Dynamic Goal System and HUD

boostersGif

  • Dynamic Goal System and HUD: Each level has its own unique objectives. The progress of these objectives, the remaining moves, and the collected gold amount are displayed in real time on the in-game top panel (HUD).

Level Editor

Designed a scalable level management system using ScriptableObjects to decouple level data from scene logic, enabling rapid iteration and design changes without recompiling code.

Steps to create a new level:

  1. In the Project window, right-click inside the Assets folder.
  2. Select Create → Match3 → LevelData.
  3. In the Inspector, set up the level configurations (board size, objectives, obstacles, goals, etc.).
  4. In the Hierarchy, locate MainMenuUI and assign the new LevelData asset by dragging and dropping it into the "All Levels" array.

Technologies Used

  • Game Engine: Unity 6000.2.6f2
  • Programming Language: C#
  • Version Control: Plastic SCM
  • UI & HUD: Figma
  • Game Assets: ChatGPT & Layer AI

Getting Started

To get a local copy up and running, follow these simple steps.

Prerequisites

Make sure you have the following software installed on your system:

  • Git: To clone the repository.
  • Unity Hub: To manage Unity Editor versions and projects.
  • Unity Editor 6000.2.6f2: The project was developed using this specific version of Unity. Unity Hub can automatically download and install it for you.

Installation & Setup

  1. Clone the repository to your local machine:

    git clone [https://github.com/MetinKagit/SpaceSwipe.git](https://github.com/MetinKagit/SpaceSwipe.git)
  2. Open Unity Hub and click on the "Open" button.

  3. Select "Add project from disk" from the dropdown menu and navigate to the folder where you cloned the repository.

  4. The project will now appear in your Unity Hub projects list. If you do not have Unity version 6000.2.6f2 installed, Unity Hub will provide a prompt to install it. Proceed with the installation.

  5. Once the correct version is set, click on the project name to open it in the Unity Editor. This might take a few minutes the first time as Unity imports all the assets.

  6. In the Unity Editor's Project window, navigate to the Assets/Scenes/ folder and open the MainMenu.unity scene by double-clicking it.

  7. Press the Play button at the top-center of the Editor to run the game.

Important Note on Audio Files

The audio files used in the project are not included in this repository due to potential copyright ambiguity. These assets are part of the paid Udemy course mentioned in the project description. You will need to provide your own sound files to avoid potential errors and enable audio functionality.

Academic Information

  • Project Owner: Metin Kağıt
  • University: Fatih Sultan Mehmet Vakıf University
  • Department: Computer Engineering
  • Course: Undergraduate Graduation Project
  • Advisor: Asst. Prof. Dr. Sultan ZEYBEK
  • Date: May 2025

Acknowledgments

I would like to extend my sincerest thanks to my advisor, Asst. Prof. Dr. Sultan ZEYBEK, for her valuable guidance and support throughout the project.

About

Mobile match-3 puzzle game developed with Unity/C#.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published