...

Merhabalar arkadaşlar. Yazıyı okumaya başladığınıza göre, oyunları seviyor ve kendi oyununuzu geliştirmeyi hayal ediyorsunuz. Yazının ilerleyen aşamalarında, bu hayalinize nasıl ulaşabileceğinize dair bir kaç tavsiyem olacak. İyi okumalar.

İngilizce gereksiz canım, Türkiye’de yaşıyoruz.

Eminim artık bu cümleyi kuran bir geliştirici kalmadı. Kalmamalı! İngilizce kaynak okumadan, Stackoverflowda soru sormadan, cevaplamadan oyun geliştirici olacağını düşünmesi bir insanın, kendine söyleyebileceği en zararlı yalan! Eğer İngilizcem kötü diyorsanız, herşeyi bir kenara bırakıp, İngilizcenizi geliştirmelisiniz.

Üç arkadaş bir araya geldik, bir aya kalmaz, DOTA yapacağız!

Bu cümleyi sizleri güldürmek için kurmuyorum. Bu cümle, bu kulakların işittiği gerçek bir cümle! Bir oyun geliştiricinin oyununu sağlıklı bir biçimde geliştirebilmesi için, yüksek bir motivasyona sahip olması gerek. Geliştirici, bu motivasyonu büyük oranda, tamamladığı projelerden elde eder. Demem o ki, uçuk amaçlar alarak çıktığınız yolda, bir türlü sona gelemediğiniz DOTA’ların, sizi oyun geliştirmekten soğutmasına izin vermeyin. İlk adım olarak, seviyenize, kaynaklarınıza ve ekibinize göre hedefler belirleyin. Hayal kırıklığı yaşamamak adına kendinizi tanımanız şart.

Peki benim seviyem ne?

Bir geliştiricinin seviyesini ölçebilmesi, referans seçimi ile doğru orantılıdır. Bana sorarsanız, yolun başında bir geliştirici, Snake, Tetris, Brick Braker, PacMan gibi minik klon oyunlar yaptıktan sonra, en yakın Global Game Jam’e katılmalı ve bilgisini test etmelidir. Eğer Global Game Jam’den bir oyun geliştirerek çıkmışsa, olgunlaşmaya başlamış demektir. Varsayalım ki kendinizi test etmek için girdiğiniz Game Jam kötü geçti. Bu sizin özgüveninizi düşürmemeli, motivasyonunuzu kaybetmenize sebebiyet vermemeli. Bardağın dolu tarafından baktığınızda, günde bir kaç saat daha fazla çalışmanız gerektiğini göreceksiniz.

Hangi programlama dili, hangi oyun motoru?

Forumlarda sürekli “Java mı öğreneyim, C# mı?” sorularını görüyorum. Bunları, ortaokulda dersi kaynatmak için sorduğum sorulara benzetiyorum. Bir yazılımcı elbette bir dilde, bildiği diğer dillere göre daha yetkin olmalı. Ancak, öğreneceği dili ne için ve nerede kullanacağını bilmeden, yani gereksinimlerini belirlemeden bu işe giren biri, tutorial sitelerinin verdiği yavan bilgilerden daha ileri gidemeyecektir. O yüzden tavsiyem, kariyerinizi sürdürmek istediğiniz alandaki iş ilanlarını incelemeniz ve alanınızda hangi teknolojilerin kullanıldığına dair fikir sahibi olmanız. Bugünlerde bir geliştiriciye hangi oyun motorunu kullanayım diye sorarsanız, büyük ihtimal Unity3D diyecektir. Hiç kelime oyunu yapmayacağım. Unity3D kullanmayı öğrenin arkadaşlar. Unity’nin kendi sitesinde onlarca tutorial var, izleyin, deneyin. Bir de bakmışsınız ki kısa sürede çözmüş olacaksınız. Alternatif bir oyun motoru mu istiyorsunuz? O zaman Unreal Engine 4 deneyin. Unity3D vs Unreal Engine yazısını bir başka zamana yazarız ancak, bilin ki Unreal Engine 4′ da bir hayli profesyonel bir oyun motoru. Eğer, AAA oyun yapacaksanız, kesinlikle ilk tercihiniz olmalı. Daha beta zamanında incelediğim ve minik bir kaç ürün çıkardığım bir motoru daha önermek isterim. Defold. Unity’ye göre öğrenmesini daha zor bulabilirsiniz ama, mobil oyun yapmak için gayet uygun görünüyor. Candy Crush’ın yapımcısı King tarafından geliştirilen bir oyun motoru. Lua destekliyor ve performansı temel ilke olarak alıyor. Özellikle performans hakkındaki iddialarını test edip görmeden geçilmemeli.

Ufkum açıldı, bana bir şeyler oluyor.

Ortaokul sıralarındayım ve Visual Basic ile Snake yapmaya çalışıyorum. Ekrana baktığımda, oyun bana Snake’teki tüm karelerin hareket ettiğini söylüyor. Ben de düşünüyorum, bir dizide tutsam bu kareleri, yeni yem aldıkça bir tane daha eklesem… Sonra da elimdeki tüm snake parçalarını bir kare öne, bir kare öne hareket ettirsem. Makul geliyor o zamanlar tabi. Yazıyorum da…

Ama…

Snake’te baş, kuyruk ve gövde kareleri olduğunu biliyoruz. Peki, Snake’in kuyruğunu her bir ilerlemede başın önüne eklesek? Koskoca Snake’te yalnızca tek bir kareyi hareket ettirmiş olmaz mıyız? Oluruz. Bu problemi çözdüğümde, gökyüzüne bakıp koşmaya başlamıştım. Umarım daha önce farkına varmayan dostlarda da aynı etki uyanmıştır.

Mutfağa kadar gidip geldim, film bitmiş.

Önümüzdeki yazı dizilerinde daha çok, Unity3D Oyun Motoru ve yeni başlayanlar için bilinmesi gerekenler üzerinde duracağız. Epigra’yı takipte kalın. Sevgiler.

“Yazmak, geleceği görmektir.” Paul Valéry