21 Şubat 2013 Perşembe

Bağımsız Oyun Yapımcısı, Hüseyin Uslu


Türkiye'de amatör oyun sektörü konulu yazımda söz verdiğim gibi Hüseyin Uslu'nun kendini ve oyunlarını tanıttığı, en sonunda da yeni başlayanlara ve başlamak isteyenlere birkaç tavsiye verdiği yazıyı yayınlıyorum. Buyurun okuyun.

Adım Hüseyin Uslu, Başkent Üniversitesi Bilgisayar Mühendisliği mezunuyum ve indie yani bağımsız oyun geliştiricisiyim. Atari 2600 ile oyunlarla tanışdığım ilk günlerden beri kendimi sıkı bir oyuncu olarak niteleyebilirim. 

Bağımsız geliştirici olarak oyun geliştirmeye başlamamın temel sebebi olarak ise oyun programcılığının, ilgi duyduğum gerçek zamanlı sistemlere ve alt-seviye programlamaya yakın bir profil çiziyor olması diyebilirim. Global Game Jam'lere katılarak birkaç basit oyunla sürece ısındıktan sonra, ilk olarak Minecraft tarzı bir block motoru üzerinde çalışmaya başlayarak oyun geliştirmeye ilk adımımı attım.

Minecraft ve benzeri block tabanlı oyunlar, yapıları itibari oldukça basit olsadalar da işin mutfağında,
tatmin edici performans alabilmek için bir çok püf noktasına dikkat edilmesi gereken yapımlar. Ayrıca grafiksel malzeme gereksinimlerin oldukça az olması nedeniyle, yeni başlayan bir oyun programcısının, tek başına "programmer-art" olarak tabir ettiğimiz temel materyallerle üzerinde çalışabileceği ve ihtiyaç duyacağı bütün teknikleri tatbik edebileceği bir tür. İşte bu yüzden ilk projem, geçen bir kaç ay içerisinde açık kaynak olarak yayınladığım Voxeliq adlı block motoru (https://github.com/raistlinthewiz/voxeliq) oldu.

Devamında büyük ölçüde tamamlanmış ArchStone adlı (http://www.int6.org/games/archstone/) bir şanş-oyunu geliştirdim ve yakın zamanda Unity3D'nin platformu desteklemesi ile birlikte Windows 8 Store'da yayınlamayı planlıyorum.

Şu anda aktif olarak da Frenzied adlı (http://www.int6.org/category/frenzied/) bir puzzle oyunu geliştirmekteyim. MonoGame ve C# kullanarak geliştirmekte olduğum Frenzied, Windows 8 Store, Windows Phone 7 & 8, Android ve IOS gibi birçok platformu desteklemekte ve yakın zamanda sırasıyla bu platformlarda yerini alacak.

Ek olarak XNA'nın varisi olan ve Mono tarafından desteklenen C# tabanlı MonoGame (http://monogame.net/) projesini aktif olarak takip ediyor ve katkıda bulunuyorum. 

Yeni başlayanlara vereceğim nacizane tavsiyem ise, herşeyden önce bu işe küçük adımlar atarak başlamaları gerektiğini söylemek olacaktır. Genellikle oyun geliştirmeye yeni başlayanların en büyük hatası, altından kalkabileceklerinden daha büyük proje ve fikirlerlerle başlangıç yapmaya çalışmalarıdır. 

Programlama, oyun geliştiriciliği açısıdan temel taşlardan biri olsa da, oyun geliştiriciliği çok disiplinli bir süreç olarak karşımıza çıkmakta. İşte bu yüzden geniş çaplı projelerde, tek bir geliştirici için bütün bu süreçler bir noktadan sonra ağır bir yük haline gelebilmekte ve motivasyon kaybının en önemli nedeni olmakta. Mümkün mertebe, küçük çaplı projelerle yola çıkmak ve her şeyden önce basit bile olsa birkaç oyunu A'dan Z'ye bitirerek bütün süreci deneyimlemekte fayda görüyorum. Bu noktada GGJ (Global Game Jam) ve Ludum Dare gibi kısıtlı sürede oyun geliştirmeniz gereken ve süreci görebileceğiniz Jam'lere katılmakta oldukça yararlı olacaktır.

Ek olarak oyun geliştiriciliğine yeni başlayanlar, genelde hangi dili tercih etmelerini gerektiği konusunda karar vermekte zorlanmaktalar. C++ gibi bir dili bilmek / öğrenmek, bir oyun programcısı açısından oldukça önemli olsa da, şu unutulmamalı ki, muhtemelen yeni başladığınızda geliştereceğiniz oyunlar, C++ ve C# gibi managed bir dil arasındaki performans farkının çok önemli bir faktör olmadığı oyunlar olacak. İşte bu yüzden C# gibi harika bir dili taban alan ve Windows, MacOS, Linux, Android, IOS, Windows Phone 7, Windows Phone 8 ve Ouya gibi birçok platformda çalışabilen MonoGame (http://monogame.net/) projesini şiddetle tavsiye ediyorum. Tabi ki kullanacağınız dil veya framework, hiç bir zaman amaç olmamalı, sadece bir araç olarak kalmalı ve her projeye en uygun dili / platformu tercih etmeliyiz.

Son olarak da sürekli olarak takip ettiğim ve yeni başlayanlara yararlı olacağını düşündüğüm bir kaç kaynağı paylaşmak istiyorum;
* http://reddit.com/r/gamedev - reddit'in oyun programcıları için olan oldukça faydalı alt-bölümü.
* http://gamedev.stackexchange.com/ - oyun programlama ile alakalı teknik soru ve cevapları bulabileceğiniz bir kaynak.
* http://www.pixelprospector.com/ - Bir bağımsız oyun geliştiricisinin ihtiyacı olabileceği bütün kaynakları bir araya toplayan bir site.
* https://www.facebook.com/groups/gamedevturkey/ - Diğer Türk oyun geliştiricilerle bir araya gelip paylaşımda bulunabileceğiniz grup.
* http://www.oyungelistirici.org/ - Oyun geliştirme hakkında bulabileceğiniz nadir Türkçe kaynaklardan.

Hiç yorum yok:

Yorum Gönder