{"repo":"oddmax/match3-mvc-ecs-example","free":true,"listed":false,"github":"https://github.com/oddmax/match3-mvc-ecs-example","clone":"git clone https://github.com/oddmax/match3-mvc-ecs-example.git","description":"A simple match-3 game made in Unity demonstrating hybrid architecture (Zenject-based MVC and DOTS ECS)","language":"C#","stars":70,"topics":["dots","unity","mvc","zenject"],"license":"Apache-2.0","category":"game-templates","readme_excerpt":"Match3 example game How to test Open MainScene.scene and press 'Play'. Game was optimized for mobile portait mode so it will look best with a landscape aspect ratio. Description A simple game to demonstraite a clean and robust architecture for the match-3 game which can be easily extended with any extra functionality. Uses a hybrid architecture - as foundation I use MVC-like architecture based on Zenject with Command pattern, but for match3 mechanics I used Unity DOTS Entity Component System as it works very well with this kind of logic. Built with Unity 6000.1.6f1 Funcionality Has base match-3 mechanics and different levels. All levels and settings could be setup as Scriptable Objects. General structure Uses very simple MVC/MVP architecture and Command pattern for main application logic Uses Unity DOTS Entity Component System for match-3 gameplay mechanics. Uses Zenject of inversion of control and dependencies injections Uses SignalBus from Zenject to decouple communication between different classes Implemented a custom State Machine to switch between global states (Boot - LevelMap - GameBoard) with a support of more complex State Charts Same State Chart is used to flow through match-3 states with a State pattern (PlyaerTurn - Swap - MatchesDestuction - etc) Implemented a simple Pooling class for optimizing board gems usage Scripts/Core folder holds all core funtionality (Main state machine, Main Context installer) Scripts/Features folder holds feature related logic Main cla","default_branch":null,"files":null,"tree":[],"storefront":"/r/oddmax","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/oddmax/match3-mvc-ecs-example/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}