Add README.md
This commit is contained in:
57
README.md
Normal file
57
README.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Unity Match-3: VContainer Edition
|
||||
|
||||
A modern Match-3 puzzle game built in Unity, focusing on clean architecture, dependency injection, and data-driven design. This project serves as a template for scalable mobile game development.
|
||||
|
||||
## 🏗 Architecture & Patterns
|
||||
|
||||
### Dependency Injection with VContainer
|
||||
This project utilizes **VContainer** for high-performance dependency injection. By using a `LifetimeScope`, we decouple our game logic (Grid Management, Scoring, Input) from the Unity Lifecycle, making the codebase more modular and easier to test.
|
||||
|
||||
|
||||
### Data-Driven Gameplay
|
||||
All balancing and configuration parameters are centralized in a **ScriptableObject** called `GameVariables`. This allows designers to tweak the game feel in real-time without touching code.
|
||||
|
||||
**Adjustable Parameters include:**
|
||||
* Debug Mode
|
||||
* Tile prefabs
|
||||
* Spawnable object
|
||||
* Spawnable explosion prefab animation
|
||||
* Sprite
|
||||
* Score value
|
||||
* Grid Dimensions
|
||||
* Audio SFX
|
||||
* Special Tiles
|
||||
* Animation speed and delays
|
||||
|
||||
---
|
||||
|
||||
## 🎮 Features
|
||||
|
||||
* **Grid Logic:** Efficient recursive algorithms for detecting matches and handling "gravity" (falling tiles).
|
||||
* **Decoupled Systems:** UI, Sound, and Gameplay systems communicate via injected interfaces.
|
||||
* **Scriptable Configuration:** Easily swap between "Easy" and "Hard" mode by swapping the `GameVariables` asset.
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🛠 Tech Stack
|
||||
|
||||
* **Engine:** Unity 2022.3+
|
||||
* **DI Framework:** [VContainer](https://vcontainer.hadashikakeru.jp/)
|
||||
* **UniTask:** C# (Task-based async for animations)
|
||||
* **Data:** ScriptableObjects
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
### Prerequisites
|
||||
* Unity Hub & Unity 2022.3 LTS or newer.
|
||||
* VContainer package.
|
||||
* UniTask package.
|
||||
|
||||
### Installation
|
||||
1. Open the project in Unity.
|
||||
2. Navigate to Assets/Scenes/ and open `Scene_Submission`
|
||||
3. Locate `GameVariables` asset in `Assets` to modify gameplay values.
|
||||
Reference in New Issue
Block a user