Oyun Nedir? Nasıl Programlanır?
Oyun Nedir? Nasıl Programlanır?
Oyun Nedir?
Çok sayıda aritmetiksel veya mantıksal işlemlerden oluşan, günümüz teknolojisince yapay zekaya sahip, vakit geçirmeye yarayan, belli kuralları olan bilgisayarda eğlenmemizi sağlayan küçük ve büyük çaplı yazılımlardır.
Peki, nasıl geliştirilir? Aslında bu soruya cevap verirken ufak bir çekindiğim nokta var yani herhangi bir oyun geliştirilirken tasarımcıya kesinlikle ihtiyaç yoktur. Evet, yanlış okumadınız. Basit bir konsol uygulaması ile de güzel oyunlar çıkartabiliriz. Bunun en güzel örneği ise yeni neslin bileceğini çok tahmin etmiyorum ama 3310 da oynamış olduğumuz Snake serileridir. Hatırlarsanız yılan dediğimiz uzun bir matris ve yiyecekleri yani diğer kareleri topladıkça boyu uzamaya devam eden, sonunda ekranın tamamını kaplayan dev bir matrise dönüşüyor. Daha sonra işin rengi değişiyor tabi. Siyah bir konsol ekranı insanları tatmin etmemeye başlıyor ve işte bu anda oyunumuzu daha da renkli ve eğlenceli bir hale getirebilmek için tasarımcılara ihtiyaç duymaya başlıyoruz.
Tasarımcılar sadece oyunun oynanacağı alan karakterler ya da bir savaş oyunu ise oyun içerisinde kullanılacak olan silahları yani oyun içerisinde senaryo gereği kullanılacak olan her nesnenin çizilip kodlamaya hazır hale getiren insanlardır. Bu saatten sonra ise tüm iş yazılım geliştirmenindir ve gerektiği şekilde kodlamaya başlar. Tabii bu eski sistemdi büyük firmalar hala başarılı bir şekilde çalışıyorlar tabi ama günümüzde mobil cihazların yaygınlaşması ile bireysel anlamda hem tasarımını hem de kodunu yazdığımız oyun motorları ciddi anlamda kullanılmaya başlandı.
Nedir Bu Oyun Motoru?
Oyun motoru, kişilerin veya şirketlerin oyun yapmak amacıyla kullandığı ücretli veya ücretsiz olan programlara verilen isimdir. Bu program, esasında kütüphanelerden oluşmuş bir yapıdır. Bu kütüphanelerin içinde bilgisayar programlama dilleri ile tanımlanmış fonksiyonlar, sınıflar vb. veriler bulunmaktadır. Kişi oyun motorunu kullandığında, başkası tarafından önceden tanımlanmış olan bu verileri kullanarak oyununu yapar. Bu oyun motoru denilen yapının kişiye sağladığı fayda; kişiyi önceden başkası tarafından kodlanarak tanımlanmış olan bu verileri tekrardan kodlama zahmetinden kurtarması ve bunun sonucunda daha az kod ve bunun getirdiği daha az karmaşıklık ve aynı zamanda, zamandan tasarruf etmesini sağlar. Dünyada ve Türkiye de yazılmış oyun motorları var tabii ki… Unreal Engine, Unity 3D, 3D GameStudio, CryEngine 3, Türk oyun motorları ise Actor, Panda, Zinek Engine gibi oyun motorlarıdır.
Aralarında bir takım farklılıklar da var tabii ki… Bunların en başında da farkı oluşturan ana sebep lisans ücretleri. Biz hangisini kullanıyoruz? Unity 3D oyun motoru…
Neden Unity 3D?
Aslında tartışmasız en iyi oyun motoru Unreal Engine 4 olarak bilinir fakat lisans ve kullanıldığı alanlar düşünüldüğünde bizim gibi küçük oyun geliştiricilerine uygun değildir. Her anlamda bizim için uygun olan oyun motorunun Unity olduğunu düşünüyorum. İlk sebebi tahmin edersiniz ki lisans ücreti. Arkasından ise kullanılabilirlik geliyor. Unity Web Player sayesinde yazmış olduğunuz oyun her işletim sisteminde kusursuz bir şekilde çalışıyor ayrıca yazdığınız oyunu aşağıda ki resmi incelerseniz bırakın Xbox ve Playstation’ı, Wii için bile derleyebiliyorsunuz.
Bu da sizin hitap ettiğiniz yelpazeyi genişletiyor yani 1 platform için yazdığınız basit bir oyunu diğer platformlar için derleyip bir takım prosedürleri tamamladıktan sonra marketler de yayınlayabilirsiniz.
Lisans ve derleyici alanlarından bahsettik diğer bir önemli sebep ise kod ve tasarımın beraber işleyişi. Bizim gibi tek başlarına yani bir tasarımcısı olmadan oyun yazmaya çalışan insanların hem kodlayıp hem de tasarım yapabildiği çok kullanışlı bir alan sunuyor. Kod demişken şunu da unutmadan söyleyelim; Unity içerisinde c#’ın da bulunduğu 3 farklı programlama dilini destekliyor. Diğer iki dil ise JavaScript ve Boo… Unity’nin içerisinde Mono Develop isimli kod yazabileceğimiz bir derleyici de bulunuyor ama “Ben Visual Studio’dan vazgeçemem” diyenler için güzel haberlerim var: Visual Studio desteği de verilmiş, yani c# ile kodlamak istediğimiz de Visual Studio’yu derleyici olarak kullanabiliyoruz.
Size bahsetmek istediğim son Unity tercih sebebi ise minimum sistem gereksinimleri. Minimum sistem gereksinimleri dedim ama Unity’nin çalışması için gerekli olan sistem gereksinimlerinden bahsetmiyorum. Nihayetinde oyun yapıyoruz ve kimin için ne amaçla oyun yaparsak yapalım kullanıcının donanımına uygun bir oyun yapmamız gerekiyor ki sıkılmadan oynayabilsin. İşte bu noktada Unity, 1.6 GHZ işlemciye ve 500MB RAM’e sahip bir cihaza bile oyun yapmanıza olanak sağlıyor. Şu an için gözlemlediğim kadarı ile Unity’deki tek dezavantaj sürüm farklılaşması. Yani Unity 4.6’da yazdığınız bir kod bloğu 5.0’da stabil bir şekilde çalışmayabiliyor. O yüzden incelemeye başlayacağınız sürüm 4.6 olursa sıkıntı çıkarmayan bir sürüm ile başlamış olursunuz.
Bu yazımızın sonuna geldik bir sonra ki yazımız da Unity arayüzünü inceleyip, basit bir oyuna giriş yapmayı planlıyorum. Okuduğunuz için çok teşekkür ederim. Sonra ki yazılarımız da görüşmek üzere, kod ile kalın =)