Flutter ve Oyun Kütüphaneleri

Selamlar! Bu yazımda Flutter ekosisteminde yer alan oyun yazmanıza yardımcı olacak, animasyonlar oluşturmanıza imkan verecek kütüphanelerden ve oyun motorlarından bahsedeceğim. Bunun yanında Flutter framework’ü bir mobil/desktop oyununu sunmak için ne kadar uygun bunu tartışacağız. 🙂

Güncelleme (14.04.2023)

Flutter ile yapılmış, Github üzerinde açık kaynak biçimde yer alan projelere aşağıdan ulaşabilirsiniz:

Flutter’da kullanıma hazır oyun kütüphanelerinden bahsedelim önce:

SpriteWidget

SpriteWidget, Flutter için oluşturulmuş 2D animasyonlar oluşturmanıza yardımcı bir kütüphanedir. 2D animasyonların yanında sunduğu texture, particle, sprite gibi objeleri eklemenize yardımcı olacak ve bunları yönetmenizi sağlayacak fonksiyonları ile 2D oyunlar geliştirmeniz için gayet yeterli. Beta sürümünde olan SpriteWidget ile geliştirme yapmak istiyorsanız Github adresine bir göz atmalısınız.


Flame

Flame, Flutter için oluşturulmuş 2D oyunlar yapabilmenizi sağlayan bir kütüphane. Basit düzeyde Rive desteği sunuyor olması bir avantaj. Eğer Flutter’ın yapısına ve Dart diline hakimseniz kısa sürede istediğiniz oyunu yayınlamanızı sağlayacak bir kütüphane. Fakat SpriteWidget gibi beta sürümünde olmamasına rağmen hala gelişmesi gerekiyor. Github adresinde geliştiricinin yazdığı dökümanlara ve örnek uygulamalara göz atabilirsiniz.


Flutter Unity Widget

Flutter Unity Widget ile yazdığınız Unity oyunlarını Flutter projesi üzerinde çalıştırabiliyorsunuz. Flutter üzerinde 3D oyunlar çalıştırmanıza imkan sağlayan bu kütüphane ile Unity projelerinizi 60 FPS hızında mobil uygulamalarda çalıştırabiliyorsunuz.


Flutter’da Oyun Yazmak – Avantajları ve Dezavantajları

Dart programlama dili ve Flutter Framework’u ile farklı platformlara oyun yazmanın bazı avantajları ve dezavantajları var. Avantajlarından ve pozitif yanlarından bahsedecek olursak:

  • 60 FPS hızında animasyonlar ile yüksek performans ve kalitede çıktılar alabilirsiniz.
  • İş hayatında da Flutter kullanıyorsanız, Flame ve SpriteWidget gibi kütüphaneleri çözmek sizin için daha kolay olacaktır.
  • Tek bir platform koduyla birden çok ( iOS, Android, Web, MacOS, Windows, Linux) platforma oyununuzu sunabilirsiniz.

Dezavantajları ve zor yanlarından bahsedecek olursak:

  • Henüz geliştirilmiş büyük ve tam destek sağlayabilen, Unity’deki gibi komplike oyun geliştirmenize yardımcı olacak kütüphane yok.
  • Unity ve Godot gibi oyun kütüphanelerini öğrenerek de mobil platformlara uygulama çıkartabilirsiniz.
  • Yeterli kaynak yok.
  • Birçok konsepti ve widget’ı kendiniz yazıp oyuna implemente etmeniz gerekecek. Bu yüzden de hızlı bir şekilde oyununuzu geliştirmeyi beklerken worldManager.dart isimli bir sınıfta tıkanıp kalma ihtimaliniz yüksek. 🙂


Evet bu yazının neredeyse sonuna geldik. Kişisel tavsiyem, eğer oyun geliştirmeye doğru bir merakınız var ve aynı zamanda Flutter ile bir şeyler yapmak istiyorsanız, Swift öğrenerek SpriteKit gibi çözümlere başvurabilirsiniz. Eğer Android üzerinde Java veya Kotlin ile oyun geliştirmek istiyorsanız, Google’ın eğitimlerine başvurabilirsiniz. Böyle yapmanız durumunda, aynı anda hem Flutter öğrenirken hem de native mobil uygulama geliştirme yeteneklerinizi geliştiriyor olacaksınız. Seçim tamamıyla size kalmış. 🙂

Flutter üzerinde geliştirilen popüler bazı oyunlara göz atmak isterseniz:

Grim Quest – Old School RPG

GhostRigger

Batufo