Oyun Mekanizması 5

Bu yazıda 2003 yılında yazmış olduğum yazıdan alıntı bir yazıdır.

OpenGL ile İlgili Kütüphaneler

OpenGL tüm bu komutlar yanında windowing sistemin alt yapısını oluşturan değişik kütüphanelere sahiptir. The OpenGL Utility Library (GLU): Özel viewpoint oriantation ve projeksiyonlar, tesselation ve rendering surface ile ilgili low — level komutlar içermektedir. NURBS interface de bu kütüphanede bulunmakta

GLX : X window Graphics Library Extension

WGL: Windows Graphics Library Extension

PGL: IBM Graphics library Extension

AGL: Apple Graphics library Extension

The OpenGL Utility Toolkit(GLUT): bağımsız system toolkiti Bu toolkit sayesinde windowing ile karşılaşılacak kompleks yapılardan kurtulmanızı sağlar.

The Fahrenheit Scene Graph (FSG): OpenGL üzerine object-oriented tabanlı yüksek seviyeli uygulamalar için geliştirilimiş grafik paketi

GLUT, the OpenGL Utility Toolkit

OpenGL renderleme komutları içermesine rağmen window systemlerinden ve operating systemlerinden bağımsız olarak dezayn edilmiştir. Bunun sonucunda window açma keyboard ve mouse ile ilgili eventler hakkında hiçbir komut içermez ama bu işlemler yapılmadanda renderleme ve interaktiflik sağlanmaz. İşte GLUT kütüphaneside bu tarz işleri arka planda gerçekleşmesini sağlar. Artı olarak OpenGL sadece nokta, çizgi ve polygon çizgi çizme gibi basic çizim özelliklerine sahipken GLUT complex üç boyutlu nesneleri(sphere, torus, teapot) çizme yeteneklerine sahiptir(OpenGL Utility Library, GLU kütüphaneside quadraticsler gibi komplex nesneleri(sphere, cylinder, cone) çizim yeteneklerine sahiptir.

Yardımcı Yazılım Paketleri

Yardımcı yazılım paketlerinden kast ettiğim oyun için gerekli grafik, ses, müzik ve level dosyalarının hazırlanmasında kullanılan programlar. Ben burada grafik ile ilgili olanları üzerinde durdum. Müzik için SoundForge, Cakewalk, GitarPro, Quake Level Editor, oyun karakterleri için MilkShape gibi yazılımlarda bulunmaktadır.

AdobePrimiere: Non-linear video editing yani video görüntülerini parçalayarak onlar üzerinde değişiklik yapmanızı ve tekrar istediğiniz şekilde birleştirmenizi sağlayan bir grafik yazılımıdır.

AdobeAfterEffects: Video ve resimler üzerinde değişik efektler uygulayabilmenizi sağlayacak yardımcı araçları olan bir grafik paketidir.

CorelDraw: Vektörel çizim programıdır. matbaacılar tarafından sıkça kullanılmaktadır.

AdobePhotoshop: Resim işlemek(raster işlemler) için kullanılan grafik paketidir.

3D StudioMax: 3D modelleme ve kaplama, karakter animasyonu, animasyon ve film oluşturmanızı sağlayan grafik paketidir.

Lightwave: 3D modelleme ve kaplama, karakter Animasyonu, animasyon ve film oluşturmanızı sağlayan grafik paketidir.

SoftImage: 3D modelleme ve kaplama, karakter animasyonu, animasyon ve film oluşturmanızı sağlayan grafik paketidir.

Maya: 3D modelleme ve kaplama, karakter animasyonu, animasyon ve film oluşturmanızı sağlayan grafik paketidir.

Poser: İnsan ve yaratık kütüphanesi ile hızlı bir biçimde karakter ve karekter animasyonu gerçekleştirmeye yarayacak grafik paketidir.

Byruce3D: Doğa, çevre ve gökyüzü görüntüleri oluşturmaya yarayan bir grafik paketidir.

Ben Ne Kullanacağım ? , Neden ?

  • İşletim Sistemi: Windows98,XP,2000
  • Yorumlayıcı ve Editör: VC++
  • Api: OpenGL, Glut, Glu, Fmod
  • Grafik Paketi: Lightwave 7.0, photoshop 5.0
  • Ses Paketi: SoundForge

Win32, DirectInput Yerine GLUT Kütüphanesi

Temelde windows üzerinde oyun geliştirmek istiyorsanız kesinlikle win32 apisine çok iyi şekilde hakim olmanız gerekiyor. Bunun için size önerim Programming Windows Charles Petzold’un kitabını bulup okumanız. Ama benim gerek tutorialları anlatmam, gerekse input işlemlerini kolayca halledebilmem açısından GLUT apisi’ni tercih etmem gerekiyordu. Peki Glut Api’si ne işe yarar ve nerelerde kullanılır ?

Adında belli olduğu gibi OpenGL Utulity Toolkit, OpenGL Grafik Api’sine destek olması için Mark J. Kilgard tarafından yazılmıştır. OpenGL Grafik Api’si içerisinde işletim sistemine dair hiç bir fonksiyon içermez (nedenini, işletim sistemi bağımsız ve taşınabilir olmasında arayabilirsiniz) buna rağmen işletim sistemi ile ilişkide de bulunması gerekir. Mesela inputları dinlemesi, pencere için işletim sisteminin numara alması vb….. Biz bunları glut kütüphanesi olmadan win32 ile gerçekleştirebiliriz. Aşağıdaki linkteki kodlar Win32 Apisi ve GLUT kütüphanesi kullanılarak yazılmıştır. İncelemenizi tavsiye ederim !

Direct3D Yerine OpenGL Kütüphanesi

  • Direct3D OpenGL’e göre çok karmaşık (hem yazılım geliştirmede hem de mimarinin anlaşılmasında) Örnek Kodlar
  • Direct3D’nin başından beri Sofware Rendering yukarılara taşıma isteği ve üzerinde aşırı çalışmalarına rağmen Hardware Rendering’in inanılmaz gücü ve sadeliği ve bundan OpenGL Apisinin faydalanması (extensionlar sayesinde)
  • DirectX’in gelişimi sadece Microsofta bağlı iken, OpenGL’in 3D Labs, SGI, Apple, nVidia, ATI, Intel, id Software, ve Microsoft gibi devasa şirketlere bağlı olması
  • DirectX taşınamaz iken OpenGL Api’sinin taşınabilir olması

Not: Network ve Yapay Zeka konuları için şu anda bir seçim yapmak istemiyorum. Zaten fazla bir bilgimde yok Ama ileride bu konulara ayrıntılı olarak anlatmaya çalışacağım.