Daha önce yaptığım ve yayınladığım Java 2D oyunların üzerine bir şey eklememiştim uzun süredir. GitHub sayfamda zaten daha önceden yaptığım 2D oyunları paylaşmıştım. Yani isteyen herkes gidip kaynak kodunu görebilir, değiştirebilir, üzerine bir şeyler ekleyebilir, kendi oyununu yapabilir.
Pek ilgilenen olmadı tabii bunlarla, insanlar onun yerine “harika bir fikrim var, paranın bir tarafına koyacağım, ama oyun programlamaya nereden başlanır bilmiyorum” deyip bana nereden başlamaları gerektiğini soruyorlar. Böyle böyle başlanıyor işte.
Feeding Frenzy oyunlarını bilmeyenler için, şöyle bir video inceleme mevcut:
Tabii ki bu oyun 3 boyutlu filan değil, ses eklemeye filan da kasmadım açık konuşmak gerekirse. Üniversitede dönem projesi olan bir arkadşama yardım amaçlı yazdığım bir oyundu bu, birkaç gün akşamları vakit ayırarak yaptım. O dönem artık çok geride kaldığı için zannedersem başkalarının da faydalanabilmesi için buradan paylaşmamda bir sakınca yoktur.
Kaynak kodun bulunduğu GitHub Sayfası.
Özellikler şöyle:
- Nesne Yönelimli programlama, yani ekrandaki tüm nesneler birer obje.
- Uyduruktan bir MVC frameworkü var.
- Uyduruktan bir highscore sistemi var. Dosyaya filan kaydediyor. Pang Pang gibi online değil.
- Uyduruktan bir settings (ayar) sistemi var. Ayarları da kaydediyor.
- Grafiklerin hepsi internetten araklama. Genellikle “free to use” bulmaya çalıştım. Ama kaynak kodu alıp kullanacaksanız resimleri bi zahmet elden geçirin. Zaten resim boyutları dinamik olarak okunuyor.
- Şimdilik sadece 3 adet oynanabilir level mevcut. Daha fazla level eklemek isterseniz backgrounds klasörüne level_background_4.png diye bir dosya eklediğinizde 4. leveli koymuş oluyorsunuz. Öyle öyle istediğiniz kadar koyabilirsiniz.
Oyunun kendisi de eğlenceli. Ben bunu indirip oynarım hacı diyenler için de oynanabilir jar dosyası burada mevcut.
Bunu buraya belki birilerinin işine yarar diye koyuyorum. Kodun çok kaliteli olacağının garantisi olmasa da, bunun üzerine yapacağınız proje ile dönemi geçeceğinizin garantisini verebilirim, zira tüm object oriented derslerinde istenen minimumları sağlıyor.
Proje için kod araklamaya değil de, bir şeyler öğrenmeye çalışıyorsanız eğer, açıp kodları incelemenizi ve neyin ne yaptığını anlamaya çalışmanızı öneririm. Elbette ki alışkanlık gereği tüm kodu dokümante ettim; ama anlamadığınız kısım olursa bir e-posta atarsanız açıklamaya çalışırım.
Yeri gelmişken, sanırım diğer oyunları da GitHub’a taşıyıp oynanabilir Jar dosyalarını release kategorisine eklemem gerekecek.