15 yaşında – İlk oyun programlama deneyimleri…

Oyunumun görsellerini dijital ortamda çizmek ciddi anlamda zamanımı alsa da bir şekilde tamamlayıp oyuna aktarmaya hazır hale getirmiştim. Tabi ki görseller istediğim kadar kaliteli olmadı, fakat kötü grafikli berbat bir oyun bile tamamlanmamış oyundan daha iyidir diye düşünerek devam ettim. Bunu kodlar üzerinde çalışırken de aklımdan çıkarmamaya özen gösteriyorum. Bir oynanış dinamiği istediğim gibi çalışmıyor ise ona en yakın hale getirmeye çabalıyorum. Bu prensip bana “başarısız olabilme” ihtimalini unutturuyor, o an üzerinde uğraştığım konuya odaklanmamı sağlıyor.

Minik oyunum Happy GUM GUM’ı geliştirirken, bölümlerin içinden çağırmak üzere oyundaki her dekor ve engel için ayrı bir sınıf oluşturdum. İlk hazırladığım şablonlara bakarak bölümleri yazmaya başladım, fakat engelleri konumlandırırken çok fazla zaman kaybediyordum. Görsel bir arayüz kullanmadığımdan göz kararı ile bir yere yerleştirip daha sonra tekrar düzenliyordum. Kendime bir bölüm editörü yazarak durumu çözmek yerine tüm bölümleri manuel olarak düzenledim. Bunun sebebi o zamanlar bunu yapabilecek tecrübeye sahip olmayışımdı. Ama bunu kafamın bir köşesine yazdım, bir sonraki oyunuma bir bölüm editörü yapacaktım. (Şu anda bu hayalimi gerçekleştirmiş olmanın mutluluğunu yaşıyorum, yeni oyunumun haritasını tamamen kendi yazdığım bir editör yardımıyla tasarlamaktayım)

Happy GUM GUM’ı yazmak bana okuduğum tüm kitaplardan çok daha fazla şey öğretti. Oyunum üzerinde çalışırken en ibret aldığım olaylardan birisi, oyuna bir yükleme ekranı eklemem oldu. Açılışta yaklaşık 5 saniyelik bekleme süresi oluyordu, oyuncunun bu süreyi beklerken bir yükleme ekranı görmesi gerektiğine karar verdim. Durumu çözmek için yükleme ekranı hazırlarken her açılışta oyunun tüm görsellerini cihaza 8 kere yüklediğimi fark ettim. Bunun sebebi resimleri kullanmak isteyen her sınıfın, görselleri yükleyen sınıfa nesne oluşturmasıydı. 5 saniye çok uzun bir süre değil, yükleme ekranı durumu çözebilirdi ama bu benim için büyük bir kayıp olurdu. Yeni üzerinde çalıştığım oyunda böyle bir hata, kabul edilemez bekleme sürelerine yol açabilirdi. Sorunu çözdükten sonra yükleme ekranına gerek bile kalmadı.

Oyunun geliştirme aşamasının sonlarına yaklaşırken yaşadığım stresli bir sorunu da paylaşmak isterim. Normal şartlarda oyunumu 800×480 ekran çözünürlüğüne göre ayarlamıştım, tüm bölümler, arayüz vs buna göre düzenlenmişti. Birbirinden farklı çözünürlüklere sahip birçok tablet ve telefon bulunduğundan, çözünürlüğü değiştirip oyunu açmayı denedim. Ne olsa beğenirsiniz, tüm konumlandırmalarım kaydı! Oyun oynanamaz hale geldi. Acaba ben en baştan yanlış mı yapmıştım? O gün yaşadığım ciddi korkuyu hala hatırlıyorum. Bu sorunu çözmek için yaptığım araştırmalar sonucu, kullandığım framework’un Viewport sınıfıyla karşılaştım. Neyse ki tüm konumlandırmayı tekrar yapmama gerek kalmadan oyun tüm çözünürlüklerde çalışır hale geldi.

Ana menü ve bölüm seçme ekranını da ayarladıktan sonra oyunum yayınlanmaya hazır hale gelmişti. İlk oyunumu tamamlamış olmak bana ciddi bir motivasyon sağladı. Saatlerce basit bir hatayı çözemediğimde ihtiyacım olan en önemli şeyin biraz sakinleşmek olduğunu fark ettim, birkaç saat mola verip devam etmek soruna farklı açılardan bakılmasını ciddi anlamda kolaylaştırıyor.

Tüm bu uzun uğraşlarım sonucu tamamladığım oyunumu bir umutla yayınladım (Deneme amaçlı (!) Admob reklamlarına yer verdiğim doğrudur hakim bey). Arkadaşlarımın da desteğiyle oyunum ilk günden yaklaşık 200 kere indirildi, pazarlama faktörü hakkında hiç bilgi sahibi olmadığımdan dolayı bu çok normal bir durum. Tabi ilk olarak buna odaklanmadım, oyunumu oynayan insanları görmek beni çok mutlu ediyordu, oyun yapmaya devam etmem gerektiğini düşündüm ve yeni oyunum için hayal kurmaya başladım.

CEVAP VER

Please enter your comment!
Please enter your name here