Yazılım,

Oyun Motoru UNITY 3D İncelemesi

Oyun dünyasının, geliştirme boyutuyla az çok ilgilenen herkesin karşısına çıkmıştır Unity. Karşısına çıkan herkes de kıyısından köşesinden de olsa Unity’e bir göz atmıştır. Bu yazıdaki amacımız; Unity nedir, ne değildir, neleri yapabilir, neleri yapamaz; gibi noktalara ufak da olsa değinmek ve böylece oyun geliştirmeye veya Unity ile uğraşmaya yeni başlayanlara biraz bile olsa satır arası bilgiler verebilmek.

 

Ufak Bir Tanım

Unity, en iyi; “Unity, bir oyun motorudur.” şeklinde özetlenebilir. Bilgisayarınıza kurduğunuzda temelde, oyun motorunun kendisi ve editörü MonoDevelop ile gelir. Unity, ile 2D projeler geliştirilebilecek olsa da asıl amacı kendine has bir dünyası (fiziği) olan 3D projeler geliştirmektir. “oyun”, yerine “proje”yi kullanmamız boşa değil. Çünkü Unity, sadece oyun geliştirmek için kullanılan bir motor değil. Özellikle, bilgisayar ya da MAC ortamı için projelerin, Unity’e hiç para harcamadan geliştirilebiliyor olunması Unity’nin 3D içeren her şeyde kullanılabilmesinin önünü açmıştır.

Unity’nin, temelde iki tane sürümü vardır. Bunlar, Unity’nin “free” ve “pro” sürümlerinden oluşur. Unity’nin ücretsiz sürümü, indie grupların veya bireysel geliştiricilerin Windows ve MAC ortamına oyun geliştirebilmesi için gereken her şeyi sağlar. Daha büyük işler düşünenlerin ise, “pro” sürüme geçmesi gerekir.

Unity’nin “pro full” sürümü; kalabalık simülasyonu, geliştiricinin işini kolaylaştıracak hazır algoritmalar, ses filtreleme, multiplayer network için kolaylıklar, gerçek zamanlı gölgeler ve performansa yönelik daha iyi sonuçlar içerir. Tabii yukarıda bahsedilenler “pro” sürümün kazandırdığı birkaç satırbaşından ibaret.

Android ve iOS’a yönelik projeleri olanların ise zaten bunlara yönelik lisansları satın almaları gerekir. Flash’a yönelik “pro” sürüm de daha sorunsuz çalışmaktadır. Konsollarla ilgili lisansların alınabilmesi içinse Unity ile iletişime geçilmesi gerekmektedir.

 

Artılar

Unity’nin, diğer oyun motorlarına göre en büyük artısı bir kez geliştirilen projenin –belki sadece birkaç ufak değişiklikler yapılarak-  bilgisayar ortamından PlayStation’a, iOS’a, Wii’ye kadar sekiz ayrı platformda aynı anda piyasaya sürülebilmesidir. Bu özellik, büyük oyun motorlarında bile şu an mevcut değildir. Bu da Unity’nin sektörde öne çıkmasına büyük katkı sağlamaktadır.

Unity’i öne çıkaran bir diğer özelliği ise programlama dili olarak neredeyse her programcı tarafından bilinen C# ve JavaScript’in kullanılabiliyor olmasıdır.  Bu durum, özellikle C++’a antipatisi olan geliştiriciler ve oyun programlamaya yeni karar vermiş programcılar için avantaj sağlamaktadır.

Unity’i diğer oyun motorlarından ayıran bir başka güçlü yan fiyatı! Özellikle, sekiz ayrı platforma, aynı anda oyun geliştirmenizi sağlayan bir oyun motorunu satın almaksa size sadece birkaç bin dolara mal olacaktır. Unreal, CryEngine gibi oyun motorları için birkaç milyon dolar ödemek gerektiği düşünülürse; Unity’nin bu fiyatı “bedava”ymış gibi duruyor. Üstelik 100 bin dolarlık bir kazanç sağlamadığınız sürece Unity; kazandığınız paraya ortak olmuyor, hiçbir yüzde almıyor.

Ayrıca Unity, geniş bir Asset Store’a da sahip. Asset Store, geliştirici ve tasarımcılara para kazanma imkânı sunarken, işinizi kolaylaştıracak toollar bulmanızda da kolaylık sağlıyor.

 

Eksiler

Başlangıç seviyesinde, Unity’nin en büyük eksiği performansıymış gibi gözüküyor. Unity’nin kendiliğinden sağladığı performans; CryEngine, Unreal gibi oyun motorları ile karşılaştırıldığında yetersiz gözüküyor. Ancak bunu çözmek de zor değil. Biraz tecrübe ve refactoring, belki biraz da Unity üzerine alınacak uzmanlık eğitimi, performans sorununu çözmenizde yeterli oluyor. Unity ile ilgili ufak hileler öğrenildiğinde, projenin performansı fazlaca arttırılabiliyor. Ayrıca Unity’nin “pro” sürümü de performans konusunda destek sağlıyor.

Visual Studio, Eclipse gibi IDElerde program geliştirmeye alışmış kişilerin sorun yaşayacağı bir diğer nokta da muhtemelen MonoDevelop’un performansı olacaktır. Zira MonoDevelop’un performansı büyük IDElere oranla düşük ve dilden dile de (özellikle C# ile JavaScript arasında) farklılık gösterebiliyor. Ancak ücretli de olsa Unity için daha iyi bir IDE, Asset Store’dan edinilebilir.

Ayrıca, Unity’e yeni başlamış kişiler muhtemelen kaynak veya takıldıkları noktalarda yardım bulmada zorluk çekeceklerdir. Unity ile ilgili kaynakların sayısı CryEngine gibi oyun motorlarıyla karşılaştırıldığında daha fazla olsa da Flash oyun geliştirmeyle ilgili kaynaklardan çok daha az.

 

Son Söz

Sonuç olarak, hayalinde 3D oyunlar geliştirmek olan kişiler için Unity; hem 3D ortamı anlama, tecrübe edinme hem de Türkiye’de çalışacak/staj yapacak yerler bulma konusunda iyi bir başlangıç olacaktır. Ayrıca Unreal ve CryEngine’in büyük ve güçlü dünyasına dalmadan önce, Unity ile ısınmak da yararınıza olabilir.