/ middleware

Ses Middleware'leri nedir, neden önemlidir?

Oyunlarda ses ve müzik, diğer çoğu medyada olduğu gibi genellikle post-prodüksiyon denen en son safhaya bırakılan parçalardandır. Size bunun neden çok kötü bir fikir olduğunu anlatmak isterim, ama o başka bir yazının konusu olsun ve aktif pratik üzerinden gidelim.

Oyunlarda ses ve müzik en sona bırakılan parçalardan biridir. Sesin genellikle aktif bir eleman değil tamamlayıcı bir katman olarak görülmesi, sese ayrılacak iş gücünün kısılmasına, hatta prodüksiyon planlaması sırasında görmezden gelinmesine yol açıyor. Bunun yanında custom-built bir ses altyapısı hazırlamanın zahmetli ve eğlencesiz bir iş olması, genellikle bu kısımla ilgilenecek yazılımcıların işleri üstünkörü halletmek istemesiyle sonuçlanıyor. Ama kim size kendi ses altyapınızı sıfırdan yaratın diyor ki? Buna hiç gerek yok.

Audio Middleware'ler tam da bu ihtiyacı gidermek ve ses tasarımının oyun geliştirme sürecine aktif olarak katılımını kolaylaştırmak için yaratılmış araçlar.

Peki bu middleware'ler işinizi ne kadar kolaylaştırabilir? Bu, bizi asıl konumuza getiriyor:

Middleware nedir, nasıl çalışır?

Ses Middleware'leri genel olarak kod kütüphanesi ve bir Design Tool'dan oluşan yapılardır. Kütüphaneler, Design Tool'lardan aldıkları çıktı dosyasının oyunda çalışmasını sağlayacak "include" kodlarından oluşur. Design Tool'lar ise Digital Audio Workstation'lara benzer, ses altyapısının bütün gücünü tasarımcıya veren araçlardır. Grafik alanına kaba bir benzetme ile, seslerin "texture" olduğu bir dünyada, bu tool'lar sesçilerin 3DSMax'leridir.

Bir middleware'de sıradan bir gün.

Bir design tool'da sıradan bir gün.

Ses Tasarımcılar, bu araçlar ile yarattıkları Ses "Event"lerini ve miks düzenlerini genellikle middleware'e özel bir formatta çıktı alıp oyun geliştiricilere teslim eder.

Peki, ses tasarımcının işine yaradığını anladık. Ama asıl sizin ne işinize yarayabilir?

Avantajları

  • Ses efektlerinin yükünü yazılımcıların omuzlarından tamamen alıp, ses tasarımcıya verirler. Böyle bir iş akışında yazılımcının tek sorumluluğu doğru event'i doğru yerde tetiklemek olur.
  • Memory management'ı otomatik yapar ya da çok büyük kolaylıklar sağlarlar.
  • 2D panning, 3D positioning, Sidechaining, DSP işlemleri, Randomizasyon ve Sequence ayarları, Bus yönetimi, Ses filtreleme gibi onlarca işlemi otomatik yaparak çok büyük bir iş yükünü ortadan kaldırırlar.
  • Yaygın olarak 32 ya da 16 kanala limitli olan ses donanımı kanal sayısını, sanal kanallar ile destekleyerek teoride limitsiz sayılabilecek kanal sayısına çıkarabilir, aynı anda sınırsız ses çalabilirler.
  • Multiplatform için optimize edilmişlerdir. Yani PC, Linux, Android, iOs, PS3/4, XBox 360/One, Wii/NDS gibi üzerinde oyun oynanabilen tüm platformlara kodda hiç bir değişiklik yapmadan Build alabilirsiniz.
  • Kulağa çok büyük bir iş gibi gelen dinamik müziğin önünü açar, kolaylaştırırlar. Bu ister layered, ister snippet-bazlı, ister prosedüral olsun, yazılım tarafında yine tetikleme dışında bir şey gerekmez.
  • Ses tasarımcının dinamizmi ve çeşitliliği artırmasına büyük ölçüde yardımcı olurlar. Bir middleware ile çalışan bir ses tasarımcı, zamandan ve paradan kâr etmenizi sağladığı sırada oyununuzun prodüksiyon kalitesini ikiye, üçe, dörde katlayabilir.
  • Stabilite sıkıntınız olmaz.

Dezavantajları

  • Belki, büyük projeler için talep ettikleri, bir aylık yazılımcı maaşı kadar olan lisans ücretleri olabilir. Ama küçük projeleriniz için hiç bir ücret ödemenize gerek yok.
  • Aklınıza esen her an ses tasarımcınızın işine karışamazsınız.

Ses implementasyonu ile ilgili bir diğer yanlış bilgi, ortalıkta hiç ücretsiz ve iyi bir kütüphane bulunmadığıdır.

Aksine, şu anda ses tasarımcılar ve müzisyenler arasında en yaygın kullanılan üç Middleware, multiplatform FMod ve Wwise, ve Unity için Fabric'in üçü de, küçük ve orta çaplı projeler için yukarıda belirttiğim gibi ücretsizdir. Bunlar dışında, bir Design Tool'ları olmasa da OpenAL, Cricket Audio, irrKlang gibi açık kaynaklı seçenekler de işinizi görebilir.

Bu middleware'leri gelecek yazılarda detaylı olarak anlatmayı planlıyorum.

Evet, middleware rant'ım şimdilik bu kadar. Aklınıza takılan bir soru varsa, örneğin middleware kullanmanın basit bir oyunda bile ne kadar çok değişikliğe yol açabileceğinden emin değilseniz, aşağıdaki Disqus alanından düşüncelerinizi iletmeniz yeterli.