Bu proje oynanabilirlikten çok pratik yapma amacı taşımaktadır.
Proje içerisinde OOP prensipleri (Encapsulation,Inheritance,Polymorphism) kullanılmıştır.
Projede Abstract classlar oluşturulmuş, abstract ve override methodlar kullanılarak çalışma mantığı öğrenilmeye çalışılmıştır.
SOLID prensiplerinin S ve O harflerine olabildiğince uygun bir proje olmuştur.
Pooling sistemi kurularak oyunun performansı arttırılmaya çalışılmıştır.
Singleton Design Pattern kullanılmıştır.