Project: CARD is a Unity Project which provides functionality to sort playing cards such as Shuffle, Straight, Same Kind, and Smart in a very efficient way.
The project architecture is separated into three layers. The first layer is the Core, which contains the sorting algorithms and session management. The layer has been designed with pure C#, and there isn't any Unity Engine library usage in the layer.
The second layer is the Game which contains the required gameplay implementation such as Level Management, Transition, Safe Area, TransformLayout, Managers, Asset Container, and so on.
The last layer is the Test which contains unit tests with Unity Test Framework.
The project also aims to achieve the best possible optimization. At this point;
๐ Used Sprite Atlas to reduce batch counts.
๐ Used struct class as much as possible instead of class to use stack memory and avoid heap memory usage.
๐ Less new and Instantiate keywords usages for object creation to avoid Garbage Collection.
๐ Avoided complex nested algorithms and Linq usages for efficient CPU usage.
๐ Avoided object re-instantiation and destroy, used the instantiated objects efficiently.
๐ Used String Builder for string concatenations to avoid Garbage Collection.
๐ MainScene Batch Count : 4 ๐
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ๐ GameScene Batch Count : 5 ๐
๐ Unity3D v2021.3.5f1
๐ C# 9.0
๐ DOTween v1.2.632
๐ TestFramework v1.1.33
๐ TextMeshPro v3.0.6
๐ SafeAreaHelper v1.0.6
๐ Memory Profiler v0.7.1-preview
๐ Unity Editor
๐ IOS
๐ Android
๐ macOS
๐ Windows