Oyun Motorları ve Oyun GeliştirmekWANNART
Ana sayfa WannaGate Teknoloji Oyun Motorları ve Oyun Geliştirmek
Merhaba sevgili Wannart okuyucuları, bugün sizlere her zaman oynadığımız oyunların geliştirme aşamalarını, tek başımıza oyun geliştirmenin zorluklarını ve oyun motorlarını anlatmaya çalışacağız.
İlk önce oyun motorlarına değinelim. En çok kullanılan 2 oyun motoru olan Unreal Engine ve Unity dışında CryEngine ve Frostbite Engine gibi daha birçok oyun motoru mevcut. Bunların yanında bir de fizik motorları mevcut. En bilineni olan Havok fizik motoru cisimlerle diğer karakterlerin gerçek zamanlı etkileşimini sağlamak için tasarlanmıştır. Büyük oyun şirketleri genelde kendi oyun motorlarını yazıp onun üstünden oyununu geliştirmeyi tercih ederler.
Unreal Engine ile başlayalım isterseniz. Unreal Engine Epic Games tarafından çıkartılan C++ temelli bir oyun motorudur. Özellikle grafik açısından çok övülen Unreal Engine bugüne kadar birçok oyun tarafından da kullanıldı. UE kullanılarak geliştirilmiş bazı oyunlar şu şekilde:
Unreal Engine’ın bir diğer güzel yanı ise Blueprint. Blueprint görsel programlamadır ve programlama mantığı ile aynı şekilde çalışmaktadır. Görsel öğelerin birbirine bağlanması ile beraber bir kod bloğu ortaya çıkar. Blueprint ile oyun içerisinde yer alacak karakterlerimizi hareket ettirebilir, koşullu durumlarda (bir yerden geçince jumpscare ortaya çıkması gibi) kullanılabilir. Ancak her ne kadar C++ kodlama zorluğunun olduğu yerlerde kullanılsa da Blueprint bir scriptir. Yani C++ gibi motorun gücünden tamamen faydalanamayız.
Diğer yandan Unity, Unreal Engine’den sonra piyasaya çıkmasına rağmen çıktığı yıldan itibaren hızlı bir şekilde yükseldi. Bu yükselişinin arkasında yatan neden ise Unity’nin her özelliğini ücretsiz sunması ve C# dilini kullanması diyebiliriz. Buna karşı 2015 yılına geldiğimizde ise Unreal Engine 4’de ücretsiz olmuştu. Unity’nin bir diğer avantajı ise geliştirilen bir oyunun herhangi bir altyapı değişikliğine gerek olmadan farklı platformlara uygun olarak derlenebilmesidir. Unity’de UE4’e göre daha fazla tutorial’e ulaşabiliriz. Ayrıca daha fazla ücretsiz içerik olduğunu da söyleyelim. Unity ile yapılmış bazı oyunlar ise:
Rockstar Games, EA Games, Valve gibi şirketlerin kullandığı motorlar ise farklı. Rockstar Games kendi geliştirdiği Rockstar Advanced Game Engine(RAGE)’i kullanırken, EA ise kendi geliştirdiği Frostbite Engine’ı kullanıyor. Valve ise Source Engine’ı kullanıyor. (Yani eskiden kullanıyordu şu an oyunla uğraşmadıkları için…)
Peki bu kadar büyük oyunlar nasıl geliştiriliyor? Nasıl bir iş bölümü yapılıyor? Oyunların sonlarında gördüğümüz Credit sayfalarındaki yüzlerce binlerce ismin hepsi nasıl koordineli bir şekilde çalışıyor? Bu soruların cevaplarını araştırmaya çalıştık. Araştırmaya ilk başladığımızda karşımıza çıkan ilk madde maliyetler oldu. Bu kadar büyük oyunların geliştirilmesi ve piyasaya sunulması sırasında maliyeti epey bir yüksek oluyor. Ancak sonrasında tabii ki oyundan kazanılan gelirler bu maliyetleri kat ve kat aşıyor. Peki bu kadar büyük oyunların hiç yaşadığı sıkıntı yok mu tabii ki var. Günümüz oyunlarının yaşadığı en büyük sıkıntı ise optimizasyon.
Optimizasyon kavramı oyunların programlanması sırasında bilgisayar donanımları için gözden geçirilmesi ve uyumlu hale getirilmesidir. Optimizasyon sorunlarının nedenleri oyunun sistemi tam olarak kullanamamasından kaynaklıdır. Bu da programlama hatalarından, texture kullanımının doğru yapılmamasından, yüksek çözünürlüklü dokuların yanlış sıkıştırılmasından ve modelleme hatalarından meydana gelir. Son teknoloji bir sisteminiz olsa bile optimizasyon sorunu olan bir oyunda ani fps düşüşleri ya da sürekli düşük fps problemi yaşayabilirsiniz. Bunun son yıllardaki en büyük örneği sanırız ki GTA IV. O büyük optimizasyon sorunundan sonra Rockstar Games akıllanmış olacak ki GTA V için baya bir uğraştı. Hatırlayacak olursak GTA V Pc’ye Playstation’dan yaklaşık 1.5 yıl sonra çıkmıştı.
Büyük oyunların geliştirilmesi sırasında birçok grup mevcut. Bunlar tasarım grubu, bölüm tasarım(level design) grubu, programlama grubu, ses ve müzik grubu, modelleme grubu gibi gruplara bölünür. Her grubun başında birisi bulunur ve alt bölümlere doğru dallanır. Tasarım grubu oyunun oynanışını tasarlar. Oyunun kullanacağı motor ve onla birlikte gelen motorun fiziği ile oynanışı şekillendirirler. Bölüm tasarım grubu ise hikaye, görev ve diyalogları yazan kısım. Programlama da ise oyunun temel kodlarını yazarlar ve tasarım grubu ile birlikte ilerlerler. Öte yandan modelleme grubu ise oyunun geçeceği çevreyi ve oyundaki nesneleri oluşturur. Ses grubu ise müzik ve konuşmaları zamana göre entegre edilmesini sağlar. Bütün bu büyük gruplar birbirleriyle sürekli iletişim halindedir. Bu gruplar büyük bir çatı altında geliştirdiği kısımları birleştirirler ve oyunun gelişme aşaması bu şekilde ilerler.
Kısaca oyunun geliştirilmesi sırasında en önemli konu başlıkları:
Oyunun fiziği ve kullanılan oyun motorunun programlanması
Ortam tasarımı ve nesne modellemeleri
Peki bu kadar büyük oyunlar bu kadar çok insanla yapılıyorsa biz kendi başımıza nasıl yapabiliriz diyoruz haliyle. Öncelikle unutulmaması gereken nokta şu tabii ki tek başımıza bu kadar büyük oyunlar yapamayız. Ancak tek başımıza orta çaplı bilgisayar oyunları geliştirme şansımız var. Bu uzun bir süreç olduğu için önce sabır gerekiyor. İlk önce kafamızda nasıl bir oyun istediğimizi belirlememiz lazım. Oyunun nasıl bir bakış açısına sahip olacağı(First Person, Third Person, Side, Top Down vs), oyunun hikayesinin ne olacağı ve hangi oyun motorunu kullanacağımıza karar vermemiz gerekiyor. Bunlara karar verdikten sonra oyunu geliştirmeye başlamadan önce kullanacağımız oyun motorunu öğrenmemiz ve hakim olmamız şart. Bunun yanı sıra motorun kullandığı dili de bilmemiz lazım. Oyun motorunun yanı sıra model tasarımı yapmak için başka programlara da ihtiyacımız olacak. Autodesk 3dsmax,Blender ve Adobe programları gibi.. Bizim burada o büyük grupların yaptığı her işi kendi başımıza yapmamız gerekiyor.
Oyunun ses ve müziklerini de yine doğru zamanda doğru yerde olması için optimize edilmesi gerekiyor. Geçmiş yıllarda tek başına oyun geliştiren biriyle olan sohbetimde sorun yaşadığı tek konunun ses olduğunu ve bir ses firmasıyla çalıştığını söylemişti. O yüzden ses efektleri ve müzik gerçekten önemli bir nokta. Diğer konu ise oyunu geliştirme sırasında test edilmesi de önemli. Oyun ışıklandırması, gölgeler, modellemeler ve daha birçok şeyin fps’e çok büyük bir etkisinin olacağını düşünürsek bunların test edilip sisteme göre optimize edilmesi büyük önem taşıyor. Oyunun geliştirilip her şeyi bittikten sonra reklamı ve pazarlaması kalıyor. Yazıyı bitirirken tek başına geliştirilen yerli ve yabancı oyunlara da bakalım.
Gerçekten sabır ve uğraş gerektiren bir alan oyun geliştirmek, ister tek başınıza ister bağımsız bir grup halinde olması fark etmez. Şunu da unutmayın eğer oyun geliştirmek istiyorsanız düzgün bir çalışma ile bu mümkün! Hayallerinizi gerçekleştirmeniz dileğiyle..
Önceki YazıEdebiyat Testi-1
Sonraki YazıChristopher Nolan Filmlerine Ne Kadar Hakimsin?
Ahmet 13 Temmuz 2019 at 04:37
Başarılı ve güzel bir yazı olmuş eline sağlık