SDL Multimedya Kütüphanesine Giriş
SDL yazılım geliştirme platformundan bağımsız bir biçimde kod yazılabilmesine olanak veren, içinde ses, görüntü, girdi/çıktı ve daha birçok alanda programcıya kolaylık sağlayan yordamlar barındıran bir multimedya kütüphanesidir.

SDL kütüphanesi serbest yazılım statüsünde geliştirilmektedir. Hiçbir ücret ödemeksizin biz yazılım geliştiricilerin kullanımına açıktır. Bu kütüphaneyi kullanarak oluşturduğumuz yazılımları, üzerinde kaynak kodu değişikliği yapmadan Windows, Linux, Macintosh, BeOS gibi çok çeşitli işletim ortamlarında sadece yeniden derleyerek kullanabilmekteyiz. Birçok Windows oyununun Linux sürümlerini yazmış olan Loki Games firması ürünlerini hazırlarken SDL kütüphanesini kullanmaktadır. Sanırım bu örnek kütüphanenin ne kadar güçlü ve hızlı olduğunun en açık göstergesini oluşturmakta.

SDL birçok hazır rutin içermekle birlikte tüm yazılım geliştirme ihtiyaçlarımızı karşılayacak bir kütüphane değildir. Geliştiriciler SDL kütüphanesini oluştururlarken oyun programlamada çok önemli bir yere sahip olan hız faktörünü ilk planda tutmuşlar, bu düşünce doğrultusunda olabildiğince temel rutinler içeren, fazla karışık ve hantal olmayan bir kütüphane ortaya çıkarmışlar. Fakat SDL için geliştirilmiş olan birçok ek kütüphaneler bulunmaktadır. Bu kütüphanelerle birlikte kullanıldığında, SDL neredeyse tüm isteklerimize cevap veren bir hale gelmektedir.

SDL, grafik belleğine direk olarak (hızlı) erişmemize olanak tanıyan fonksiyonelliktedir. Bu şekilde en hızlı bir biçimde çizim, kopyalama, tazeleme gibi işlemler yapılabilmektedir. SDL kullanarak klavye, mouse, joystick gibi birimlerden girdi alabilmekte, istersek kendi event lerimizi oluşturabilmekteyiz. SDL kullanarak multithreaded programlamada yapılabilmektedir. Örneğin bir thread oyunun ana döngüsünü çalıştırırken, diğer bir thread başka bilgisayar sistemleri ile haberleşme işlevini yerine getirebilir. SDL kütüphanesinin ayrıca ses çalma ve CD-ROM desteği de bulunmakta, kütüphane programlanabilir zamanlayıcı (Timer) kullanımına da destek vermektedir. Bütün bu genel özelliklerin yanı sıra kütüphane içerisinde yerleşik olarak OpenGL kullanımına da tam destek bulunmaktadır.

Sonuç olarak, SDL kullanmanız halinde birçok platformda çalışabilen, performansı üst seviyede multimedya yazılımları oluşturabilirsiniz. Temel fonksiyonları grafik kütüphanesine yükleyip, yazılımın ayrıntıları ile daha rahat uğraşabilir, eğer isterseniz de ek kütüphaneleri kullanarak üst seviyede programlama yapabilirsiniz.

[Yazarın Notu]
SDL ile bundan yaklaşık 2 sene önce tanıştım. O zamanlar Win32 API ve VC++ kullanarak OpenGL ile uygulamalar yapıyordum. WinAPI karmaşık yapısı nedeniyle zaten baştan beri içime sinmemişti, üst seviyeli bir oyun yapımı ya da grafik kütüphanesi kullanmaya da açıkçası çok sıcak bakmıyordum. İncelediğim alternatifler oldukça çok şey vadederken doğal olarak karışık ve öğrenilmesi zordular. GLUT kullanma fikri ise orta büyüklükteki bir proje için pek uygun gözükmüyordu (çok basit bir kütüphane). Şimdi SDL + OpenGL ve VC++ kullanıyorum, ve açıkçası iyi bir tercih yaptığımı düşünüyorum. SDL bana ses , girdi/çıktı ve OpenGL kullanımı için bir ekran sağlıyor, bende geri kalan kısımda kendi OpenGL kodumu kullanarak oyun projemi geliştirmeyi sürdürüyorum. En azından birkez denemenizi şiddetle tavsiye ederim. Üstelik SDL sitesinde NeHe ‘nin OpenGL dökümanlarının SDL sürümleri de bulunmakta. OpenGL ve 3B programlamaya yeni başlayan arkadaşlar için bu örnekleri incelemek çok faydalı olacaktır. Ve inanınki bu örneklerin SDL sürümleri orjinal WinAPI sürümlerinden kat kat anlaşılır durumda.

[İlgili WWW Linkleri]
SDL resmi sitesi: www.libsdl.org



Bu yazının bulunduğu site: OyunYapimi.org
http://www.oyunyapimi.org

Bu yazı için adres:
http://www.oyunyapimi.org/modules.php?name=Sections&op=viewarticle&artid=1