A Match-3 game built from scratch with Java Swing.
Features smooth animations and online multiplayer mode.
📖 Language: English | 中文
| 基础交互 | 多种动画 |
|---|---|
![]() |
![]() |
The project was completed during the 23-24 fall and received a full score of 110. It was developed by a two-person team without using any demo provided by the school. The purpose is for learning and exchange, and it is not intended for direct replication. Hope this could help you!
The project was completed during the 23-24 Fall Semester for the SUSTech CS109 course and received a full score of 110+ (100 + Bonus). We actually get more than 110, but the limit for bouns is 10 points.
It was developed by a two-person team. We implemented the game logic and UI from scratch, without using the demo framework provided by the school. The purpose of open-sourcing this is for learning and exchange.
Note: This project is for reference only and is not intended for direct replication in your coursework.
- IDE: IntelliJ IDEA (Recommended)
- JDK Version: Java 8 (1.8) is strongly recommended.
- Dev Environment: Java 1.8.0_281.
- Compatibility Note: If you use higher versions of Java (e.g., JDK 11/17/21), you might face minor imperfections with images or animation timing (too fast/slow) due to Swing internal changes. However, the game logic remains playable.
Please make sure to open the project correctly to load assets:
- Open IntelliJ IDEA.
- Select
File->Open. - If you clone this repo:Simply open it as a IDEA project.
- If you download using releases: Select the
Projectfolder (the directory containingsrc) as the project path.- Path check: If the game launches but images are missing, please double-check your working directory.
What can you learn from this project?
- Pure Swing Animation: We built fluent animations fully based on JFrame. You don't need extra game engines or knowledge beyond the JavaA course to achieve smooth visuals.
- Visual Design: We designed an exquisite game appearance, which might give you ideas on how to make your UI look better.
- Online Multiplayer: We implemented a primitive online mode using Java Sockets. It demonstrates how to synchronize game states between two clients, which is a good way to earn extra points.
- Demo Video: Bilibili Link (In Chinese)
- Contact: If you want further discussion, you could email
12312710@mail.sustech.edu.cn. (Please note that a reply is not guaranteed).
If this helps you, please don't hesitate to give me a star!

