Unity

Unity Nedir? Unity, Unity Technologies tarafından geliştirilen kapalı kaynak kodlu ücretsiz bir oyun motorudur. 2005 yılından beri geliştirilmeye devam etmektedir. Apple'ın WWDC 2006 (Dünya çapındaki geliştiriciler 2006) konferansında tanıtılmıştır. İlk başta yalnızca OS X'e çıktı alabilen Unity, zamanla Android, IOS, PC, Sony Playstation, Xbox desteğini eklemiştir. En büyük artısı 100.000$ gelire kadar ücretsiz kullanılabiliyor olmasıdır. Çok büyük bir kullanıcı kitlesine sahip olan Unity bu sayede birçok araca ve çok geniş bir bilgi havuzuna sahiptir. Zaten Unity'nin çıkış felsefesi de oyun geliştirmeyi "demokratik hale getirme"'dir. Peki Unity'den önce durum nasıldı, buyrun bir sonraki başlığımızda bunu inceleyelim. Unity'den öncesi Unity'den önceki dönemi irdelemek için zannımca kullanıcıları şirketler ve bağımsız oyun geliştiriciler olarak ikiye bölmek gerekir. Oyun geliştiriciler için durum pek de iç açıcı değildi. Bir oyun yapmak istiyorsanız ve cebinizde yüksek miktarda paranız yoksa motoru da kendiniz yazmanız veya açık kaynak kodlu motorlardan birini düzenlemekle uğraşmanız gerekmekteydi. Dolayısıyla zamanınızın büyük bir çoğunluğu buraya ayrılıyor ve bu da oyun geliştirme sürecinizi zorlaştırıyordu. Şirketler için durum biraz daha iyi olsa da yine de mükemmel değildi. Eğer oyun motorunu kendiniz yapacak olursanız bu size maliyet ve zaman kaybı olarak geri dönüyordu. Aynı zamanda bu işi yapacak birilerini bulmak için ayrıca emek sarfetmek gerekiyordu. Eğer oyun motorunu lisanslı bir şekilde başka bir şirketten alacak olursanız da bazen oyun motorunu kendinize göre düzenlemeniz, bazen de karşılaştığınız problemler karşısında sınırlı sayıda insandan yardım almanız gerekebiliyordu. Çünkü o zamanlar en çok kullanılan oyun motorlarından olan RenderWare bile lisansla satılıyordu ve bazen rakiplerinizden yardım dilenmeniz gerekebiliyordu. Peki Unity oyun geliştirme ekosisteminde tam olarak neyi değiştirdi? Şimdi de buna bir göz atalım. Unity Neyi Değiştirdi? Unity çıktıktan bir süre sonra büyük bir kullanıcı kitlesine ulaştı. Böylece karşılaştığınız bir problemin çözümünü bulmak eskisinden daha da kolaylaştı. Aynı zamanda birden fazla platforma çıktı alabilen bir oyun motoru olduğundan oyunları platformlar arasında portlamak daha kolay bir hale geldi. Bağımsız oyun geliştiriciler için çok avantajlı bir kapı açtı çünkü artık oyunu yaparken diğer detaylarla uğraşmanıza gerek kalmıyordu. Unity sürekli olarak güncelleniyordu ve kullanıcı kitlesi giderek büyüyordu. Böylece bir problemle karşılaşsanız veya bir detayla uğraşmanız gerekse bile bunun için diğer kullanıcıların yaptığı araçları kullanabiliyordunuz. Aynı zamanda genel kullanım olan C ve C++ yerine C# ve UnityScript ile geliştirme yapıyordunuz. Aynı zamanda ücret ödemenize de gerek yoktu. 100.000$ gelir elde etmiyorsanız para vermek zorunda değilsiniz. Bunlar sayesinde Unity'nin bağımsız(indie) oyun geliştiriciliğe çok büyük katkısı olmuştur. Aynı zamanda Unreal Engine'in de ücretsiz olmasına ön ayak olmuştur diyebiliriz. Peki Nasıl Çalışır Bu Unity? Unity birden fazla katmanda çalışan bir oyun motorudur. En alt katmanda bir adet soyutlama arayüzü bulunur. Bu soyutlama arayüzü kullanıcının kodlarının, objelerinin, sahnelerinin ve ayarlarının tüm platformlarda sorunsuz çalışmasını sağlar. Bu arayüze ek olarak bir de grafiksel soyutlama arayüzü bulunur. Bu grafiksel soyutlama arayüzü birden fazla grafik kütüphanesini (DirectX, OpenGL, OpenGL ES, Metal, Vulkan vs.) arasındaki soyutlamayı sağlar. Bunun üzerinde fizik ve matematik kütüphaneleri bulunur. Bu katmanda fizik motoru ve matematik kütüphaneleri, bunların içerisindeki derin ve zorlu hesaplamaları yapan fonksiyonlar (çarpışma denetleme, logaritma, karekök) bulunur. Bir üst katmanda ise tercihe göre Mono bulunabilir. Mono için aslında Microsoft'un .NET Framework'ünün açık kaynaklı bir benzetmesi diyebiliriz. C# kodunun bağlanması ve kullanılmasını sağlar. Mono yerine IL2CPP (C# kodunu C++ koduna çeviren program) da seçilerek kullanılabilir. En üst katmanda da editör katmanı bulunur. Bu katman sayesinde kullanıcı direkt olarak oyunda görünecek objeleri ekleyebilir, düzenleyebilir, oyunu hata ayıklamak için çalıştırabilir. Aynı zamanda kullanıcılar editör pencerelerini de düzenleyebilir. Bu sayede Unity üst düzey bir kişiselleştirme ve kolaylık sağlamaktadır.

Image placeholder

Yorumlar

    Yorum Bırak