Ever arkadaşlar, bir süre önce sizlerle oyun motorları ile ilgili aşağıdaki yazıyı paylaşmıştım.
https://www.yazilimperver.com/index.php/2019/07/04/oyun-motorlarina-hizli-bir-bakis/
İlk olarak kendimi C++ ve SDL kullanarak SFML’e çok benzeyen bir 2B oyun motoru üzerine çalıştım ve basit bir iki oyun geliştirmiştim. Daha sonra da sizlerle de paylaştığım, ve SDL kullanarak geliştirdiğim bir tetris klonu üzerinde çalışmıştım.
Elbette bunlar bana çok şey kattı fakat, daha hızlı oyun geliştirebilmek, daha fazla platforma ulaşabilmek için bir yandan da, oyun fikirlerini daha hızlı hayata geçirmek adına diğer oyun motorlarına göz atmaya başladıydım. Daha önce ağırlıklı olarak Unity ve az da olsa Construct 2 ile uğraşmıştım. Fakat Unity, her ne kadar çok güçlü ve işlevsellik anlamında zengin olsa da, ben daha basit ve bedava bir oyun motoruna yönelmek istedim. İlk olarak, Construct 2 ile karşılaştım, bu da HTML5 tabanlı, basit ve yeni bir oyun motoru, fakat o da ücretli ne yazik ki hem de C++ ve benzeri diller için sunduğu destekten çok emin olamadım. Yine de, öğrenmek adına, basit bir pong geliştirdim fakat bir yandan arayışıma devam ettim. Daha sonra Corona 2B oyun motoruna denk geldim. Corona, diğerlerinin aksine bedava, bir çok platforma destek sunuyor, LUA/C++ desteği güçlü, araçlar ve dokümantasyon da fena değildi. Fakat, ondan da android 64 bit desteği henüz sunmamasından ötürü soğudum açıkçası, en sona baktığımda halen bu konuda çalışmaları devam ediyordu. Google bir süredir, playstore’a yüklenecek olan uygulamalar için 64 bit desteğini zorunlu kılacağını ifade etmekte ve bu da açıkçası uzun vadede sıkıntı yaratabilecek bir konu gibi geldi bana. Bu konu ile ilgili daha detaylı bilgi için şu adrese bir göz atabilirsiniz: https://coronalabs.com/blog/2019/07/04/corona-android-64-bit-update-july-4-2019/
Son olarak, GODOT oyun motoruna denk geldim ve şu ana kadar her şey çok güzel 🙂 Yaklaşık iki üç hafta önce bu motoru kurcalamaya başladım.
Şimdi neden Godot’u seçtiğime ilişkin görüşlerimi çok kısa bir şekilde sizler ile paylaşacağım. Daha sonra inşallah bu motor ile ilgili de ayrıca bir yazı yazacağım.
- Öncelikli olarak açık kaynak ve bedava 🙂
- Ufak tefek bazı sıkıntılar olsa da, kendi dokümantasyonu oldukça yeterli ama bir çok farklı kaynak bulmak da mümkün,
- Programlama için kullanılan ve sadece bu motor için geliştirilen GDScript, geliştirme süresini gerçekten çok kısaltıyor ve oldukça kolay. Python biliyorsanız, çok hızlı bir şekilde kullanmaya başlayabilirsiniz. Bu arada, QT bilen takipçilerim, Godotta da bulunan sinyal mekanizmasına hemen vakıf olacaklardır 😉
- Kendi editörü var ve oldukça kullanışlı geldi (ki bu da sanırım Godot ile geliştirilmiş) bana. Tabi ayrıca açılan bir komut satırına takılmazsanız 🙂
- Özellikle android’e uygulamanız taşımanız çok kolay, diğer motorlarda (unity hariç), bu konu baze biraz uğraştırabiliyor,
- GDScript yanında, C++, C#’a da destek var,
- Sahne ve düğüm (“node”) yapısı Unity (GameObject) ve benzeri motorlara benzese de, biraz farklı ama dokümantasyonunda bu konu güzel anlatılıyor. Bu konuya da ayrı bir yazıda değinebiliriz,
- Hem 2B hem de 3B desteği var,
- Motor için herhangi bir kurulum yapmanıza gerek yok, .exe yi indirip hem kullanmaya başlayabilirsiniz.
Evet durum bu. Motora ilişkin dokümanları okurken, daha iyi öğrenmek için neden bir oyun yapmayayım dedim 🙂 ve bu yazımızın müsebbibi olan oyunumuz ortaya çıktı. Şimdi biraz da, bu oyuna bakalım.
Oyunu tamamen Godot’u kullanarak geliştirdim. Oyun için çıkış noktam aslında, çocuklar için, ardışık sayma konusunu daha eğlenceli hale getirmekti. Ne yapabilirim diye düşünürken, bu işe Schulte Tabloları (“Schulte Table”) nı da katarak, hem çocuklar hem de yetişkinler için kullanılabilir bir oyun geliştirmeye karar verdim.
Nedir peki bu Schulte tabloları? Bu tablolar, genellikle, hızlı okuma, dikkat ve aktif görüş alanını geliştirmek isteyenler için bir alman doktor tarafından geliştirilmiş. Burada, farklı boyutlarda tabloya (benim oyun için 5×5), sayı ya da harfler, rastgele yerleştirilmekte, katılımcıdan, tablonun ortasına odaklanarak ve gözünü hareket ettirmede, ilgili sayıları bulması istenmektedir. Ben buna biraz daha çeşitlilik katman adına ileri/geri, artış miktarı ve sayı aralığı gibi opsiyonlar da ekledim ve bunları da aşağıdaki gibi görseller ile desteklemeye çalıştım.
Oyun ile ilgili her türlü görüş ve öneriniz için aşağıdaki playstore sayfası ya da bu yazımın yorum kısmını kullanabilirsiniz. Belki yakında web tabanlı halini de sunucuya koyarım.
Haydi bakalım, şimdi oyunu kurup, oynamaya 🙂
https://play.google.com/store/apps/details?id=com.mightyhouse.numberadventure