OpenGL ve GLUT İle Oyun Programcılığına Giriş

0
FZ
Bu ay çıkan ve Şerif Gözcü tarafından yazılmış "OpenGL ve GLUT İle Oyun Programcılığına Giriş" isimli eser, Türkçe bilgisayar kitapları dünyasında eksikliği hissedilen bir alanı doldurma iddiasında.
Kitapla ilgili söylenebilecek ilk şey giriş seviyesinde olmakla birlikte önemli bir boşluğu doldurduğu. Bilgiye erişme probleminden ziyade derli toplu ve giriş niteliğinde kılavuzlara erişme sıkıntısı çekilen günümüzde bu tür kitaplar yeni başlayanlar için önemli bir yol gösterici niteliği taşımakta.

Temel olarak başlangıç seviyesinde OpenGL ve GLUT programlamanın anlatıldığı kitap, basit örneklerden yola çıkıp belli karmaşıklıktaki animasyon, kullanıcı ile etkileşim, aydınlatma, ses kullanımı gibi konulara yer veriliyor.

OpenGL ve GLUT kullanım örnekleri için seçilen dil C programlama dili ve kitabın başında bu bağlamda kullanılacak C derleyicileri olarak Microsoft Visual C++ 6.0 ve Dev-C++ derleyicileri tanıtılıyor. GNU/Linux ortamındaki derleyicilere dair hiç bilgi verilmemesi bu bakımdan eksi puan olarak eleştiri hanesine yazılsa da, OpenGL ve GLUT fonksiyonalitesinin platform bağımsız şekilde çalışabilmesi ve verilen örnek kodların, doğru derleyici ayarları ile GNU/Linux ortamında da aynen derlenip çalıştırılabilmesi belki bu eleştiriyi biraz hafifletebilir.

Derleyici ile ilgili temel bilgilerden sonra OpenGL ve GLUT ile etkileşimli grafik programlamaya dair en temel bilgiler sunuluyor. Koordinat sistemleri, çizgi türleri, çokgenler, çember çizimleri üzerine bilgiler örnek C kodları ile birlikte aktarıldıktan sonra grafik programlamadaki en önemli konulardan biri olan dönüşümler konusu ele alınıyor ve ölçekleme, öteleme, döndürme gibi işlevlerin OpenGL fonksiyonları ile nasıl uygulanabilecekleri gösteriliyor.

Ardından 3 boyutlu grafiklerin nasıl gerçekleştirilebileceğini anlatan yazar basit bir kurgusu olan bir oyun programını yavaş yavaş geliştirmeye başlayarak konu anlatımını daha eğlenceli hale getirmeyi başarıyor. Kitabın ilerleyen bölümlerinde kamera hareketleri, kaplama, aydınlatma gibi biraz daha ileri seviyeli konular ele alındıktan sonra yavaş yavaş içinde gezineceğimiz basit bir oyun dünyası somut olarak belirmeye başlıyor.

Kitabın ilk okumada göze çarpan eksi yönlerine gelecek olursak, yazardan ziyade editöre ve yayınevine yüklenebilecek olan imla kusurları, tutarsızlıkları, aynı bilginin farklı yerlerde farklı gösterimleri zaman zaman rahatsız edici bir hal alabiliyor -- buna sayfa düzenlemesinin yeterince iyi olmayışı da dahil edilebilir. Aradığımız şeyi kolayca bulmamızı sağlayan indeks bölümü mevcut değil. Kaynakça kısmında sadece 5 web sitesi adresi mevcut iken OpenGL ile ilgili temel referans kabul edilen hiçbir eserin adı maalesef geçmiyor. Oyun grafikleri bağlamında çok önemli bir yeri olan analitik geometriye daha çok yer verilebilir, işin matematiği çok daha iyi anlatılabilirdi. Ayrıca oyunlarda ses kullanımına dair bilgi beklerken sadece .wav dosyası çalmak ile ilgili bir fonksiyondan bir iki satırla bahsetmek sureti ile konuyu geçiştirmek de bir miktar hayalkırıklığı yaratmıyor değil.

Bu kitap kimler için? Orta seviyede C programlama bilen, matematikten korkmayan, MS Windows ya da GNU/Linux ortamında basitçe OpenGL temellerini ve ilkel animasyonların, grafik efektlerin nasıl yapıldığını deneyerek görmek isteyenler için.

Bu kitabı bitirdikten sonra ne yapabilirsiniz? Dünyayı sarsacak ve grafik kartlarının sınırlarını zorlayacak bir oyun yazamazsınız ama en azından o tür oyunların karmaşıklığına dair az da olsa bir fikir sahibi olur, o tür şeylerde uzmanlaşmak istiyorsanız izlemeniz gereken yolun ilk duraklarını görmüş olursunuz. OpenGL ve GLUT sistemine aşinalık kazanıp daha ileri seviyeli örnekleri kurcalayıp anlayabilmek için basit bir temele kavuşmuş hale gelirsiniz.

Kitap ile ilgili söylemek istediğim son nokta bir uygulama CD eki ile birlikte geldiği. CD'de ücretsiz Dev-C++ derleyicisi, gerekli kütüphane dosyaları ve örnek kodların yanısıra kitapta anlatılmamış yabancı örneklerin de kaynak kodları bulunuyor. Yani hemen kolları sıvayıp denemelerinize başlayabilirsiniz!

OpenGL ve GLUT İle Oyun Programcılığına Giriş, Şerif Gözcü, Seçkin Yayıncılık, Ocak 2006, Ankara. 170 sayfa. 9,90 YTL.

Görüşler

0
bm
Kitabi gormedim, ama elestiri ile ilgili bir iki sey ekleyeyim:

-- Glut + OpenGL hakikaten C derleyicisini calistirmayi bilenler icin platformdan bagimsiz. OpenGL'in hic ilgilenmedigi text yazdirma vs. fonksyonlar var ki, burada GLUT'in yardimindan ziyade ftgl vs. tercih ediliyor. Ama eger yazar WGL fonksyonlarini kullandiysa, o kod windowsa bagli kalir.

-- Ses isi OpenGL'in degil. OpenAL var, eger oyunumsu isler icin OGL benzeri birsey araniyorsa (onda da sentezleme yok yanlis hatirlamiyorsam) Bunlarin hepsi bir kitaba sigmaz bence yazar dogru yapmis.

0
FZ
Görebildiğim kadarı ile WGL fonksiyonu gibi şeyler yok, kodlar olabildiğince platform bağımsız. Metin yazdırma gibi şeylere girmemiş yazar. Belki bu da bir eksiklik kabul edilebilir bir bakıma, yani ekrana basit de olsa bir menü nasıl çizdirilir, vs. gibi.

Ses konusuna gelince, evet anlatmak istendikten sonra 10 cilt anlatılır da konu gene bitmez ama metin içinde hiçbir yönlendirici bilgi vermeksizin bir iki satırla geçiştirmek de doğru olmasa gerek. Başlıkta OpenGL ve GLUT geçiyor olabilir ama oyun programlama lafı da geçiyor, en azından birkaç paragraf yahut sayfa yer ayrılıp durum özetlenebilir, doğru yerlere referans verilebilirdi.
0
bm
Simdi baktim 179 sayfa! Nasil sigacak OpenGL oraya? Herneyse, eger kitapta link yoksa Red Book'un eski basimlari acik: http://www.opengl.org/documentation/red_book_1.0/
0
neurorebel
NeHe Productions Burası da pek çok OpenGL programcısının ilk adımlarını attığı yer. Ben 3 - 5 gün içinde soluksuz ilk 10 - 15 tutorialını bitirmiştim. Pek çok detaya iniyor. Ogre 3d Bu da çok kaliteli bir açık kaynak kodlu 3d motor. Linux ve Windows için kaynak kod ve derlenmiş hali mevcut. Henüz denemedim ama sitede verilen teknik detaylara bakılırsa tekerleği yeniden icad etmenin bir anlamı yok (İnsanın morali bozuluyor yani :D ).
0
darkhunter
Ogre çok sağlam bir motor, temel GL bilginiz varsa birkaç saat içinde birşeyler yapıp içine girmeniz mümkün...

Bizzat denemedim ama 3D Demo hazırlamak için de araçları olduğundan söz edenleri duydum...
0
FZ
Sığmayacak. C kodlarını çıkarırsak zaten 100 sayfa filan. Benim Türk yazarlarına önerim biraz daha uzun soluklu ve daha detaylı araştırmaya dayanan kitaplar yazmaları. Madem kağıt kullanılacak hiç değilse biraz daha kalıcı ve uzun ömürlü metinler üretilsin. Yazılmış olan metinler mümkünse grafik, oyun, etkileşim, geometri, matematik, vs. gibi alanlarda uzman birkaç insana gösterilsin, tekrar düzenlensin ancak ondan sonra basılsın. Anadili Türkçe olan ve henüz iyi seviyede İngilizce bilmeyen bilgisayar heveslilerinin çok daha fazlasını hak ettiğini düşünüyorum.
0
anonim
Süper bir haber. Eksiklikleri olabilir ama ucuz fiyatı ile en azından opengl'e başlangıç yapmak için kaçırılmayacak bir fırsat. Bakalım en kolay neredey alabileceğim?
Aldıktan sonra haber eskimemişse başka bir yorum daha yaparım.
0
mentat
keşke GLUT gibi artık miadını doldurmuş (son sürümü 2001) bir kütüphane değil de en az onun kadar basit ama ses, ağ, vs desteği de olan, açık kaynak kodlu ve sürekli güncellenen SDL üzerinden anlatılsaymış.

GLUT yıllar önce yazılmış, basit ama basit işlerden iki adım ileriye gitmeyi imkansız kılan bir kütüphane. Ben hala %100 işlemci kullanmamasının nasıl sağlandığını bilmiyorum mesela (arka plandayken, ya da GL ekranında hiçbir değişiklik olmamışken). GLUT'un devamı niteliğinde freeGLUT vardı. Bu arada GLUT açık kaynak kodlu değil diye hatırlıyorum. Sadece platform bağımsız ve ücretsiz..

Başlangıç için tavsiyem SDL. Onun da iri kıyımlaşan projelerde patlaması dertleri var GLUT gibi ama o zaman da wxWidgets veya oyun yapıyorsanız, Ogre, Crystal Space, ya da kendi wrapper kodunuzu kullanırsınız zaten.

öyle ya da böyle, raflarda konuyla ilgili türkçe bir kitap bulunması sonuçta iyi birşey tabi..
0
darkhunter
İngilizcesi olanlar http://www.opengl.org/'daki dökümantasyonu okusalar, zamanlarını daha mantıklı kullanmış olurlar...

Bu saatten sonra GLUT öğrenmenin kime ne faydası olur? Bilmiyorum...
0
Tarık
C# ve managed directx ile 3d oyun yapimi kitabı olmasından iyidir. piyasada bırakın open gl i adam gibi temel bilgisayar grafiği kitabı bile bulmak çok güç (türkçe) Uzun süredir oy.org gibi siteleri takip edip, buralarda böyle kitapların çıkması için bayaa dil dökmüş biri olarak bu haberle havalara uçtum desem yalan olmaz.
0
Tarık
OpenGL GLUT bile olsa bu tip kitapların türkiyede türkçe olarak varolmadığını bilen 3d/2d oyun programlama heveslisi gençler için iyi bir haber bence. evet gelişen teknolojiye uygun olarak yeni kütüphaneler için kitaplar yazılabilirdi. ama maalesef o kadar bile altyapımız yok. neyseki birisi kalkıp glut için bir kitap yazdı. okumamış olmamama rağmen bence geç kalınmış gerekli bir kitap.
0
core_eye
Ya bunun DirectX ve C# ile olan versiyonu yokmu? bana o lazım...
Görüş belirtmek için giriş yapın...

İlgili Yazılar

LIDS ile izinsiz girişlerin tespiti

FZ

LIDS (Linux Intrusion Detection System), sistemdeki önemli dosyaları koruyan ve tanımlanan kurallar çerçevesinde süreçleri(process) izleyen bir uygulamadır. Kendisine bir kural tanımlanır ve o kurala göre dosya/dizinleri korur. Örneğin, kendisine eklenen kurallara göre belirlenen süreçler kullanıcıların gözünden saklanabilir. Böylece ps komutunun sonucunda bu süreç, gözlerden saklandığı için ortaya çıkmayacaktır. LIDS bu tür işlemleri yapabilmesi için yazılımla birlikte sunulan kernel yama dosyasını kernele(çekirdek) yamamak gerekmektedir. Kural tanımlama(ekleme/çıkarma) işlemi yazılımın lidstools isimli araçları ile yapılabilmektedir.

Tacettin Karadeniz´in makalesinin devamına ileriseviye.org sitesinden erişebilirsiniz.

HTML, JavaScript ve PHP ile E-Posta Takibi

FZ

Düşünün ki eski bir dostunuza ya da eski sevgilinize e-posta atıyorsunuz ama onun bu iletiyi okuyup okumadığından emin olamıyorsunuz! :)

Ne yapacaksınız? Oturup merak içinde bekleyecek misiniz? Tabii ki hayır! ;)

Peki ne yapmalı?

Önce derdimize çare olacak bir sistem taslağı çizmeli tabii ki...

Değerli FM üyelerinden Gökhan "Crematorium" Olgun´un "gönderdiğiniz e-postanın okunup okunmadığını kolayca takip etme" amaçlı makalesinin devamını bu adreste okuyabilirsiniz.

IBM Özgür Yazılım Dergisi 3. Sayısı Çıktı

FZ

IBM Türk tarafından hazırlanan, Türkiye'nin ilk Özgür Yazılım dergisi yayın hayatına yeni ismiyle devam ediyor. IBM Özgür Yazılım'ın 3. sayısı daha önce talep eden üyelerimize ulaştırılmak üzere yola çıktı. Bir sonraki sayının adresinize gönderilmesini istiyorsanız üyelik bilgilerinizdeki adres bilgilerinizi güncelleyip ve "IBM Özgür Yazılım Dergisinin Adresime Gönderilmesini İstiyorum" seçeneğini işaretlemeniz gerekiyor.

Ruby ile Ağ Programlama ve Web Servisleri

anonim

Mark Watson tarafından yazılan ve devx.com da yayımlanan bu makale Ruby ile ağ programlama ve web servislerine giriş niteliği taşıyor. En yaygın kullanılan 3 tip web servisinin (CGI, XML-RPC, SOAP) Ruby ile gerçekleştiriminin anlatıldığı bu makaleye buradan ulaşabilirsiniz.

Linux Açılış Disketi NASIL

yalcink01

Hep hayalini kurduğum şey, kendi başıma imal ettiğim bir işletim sistemi idi. Baktım ki bu iş oldukça uzun bir zamana mal olacak, ben de hayalimi güncelledim ve kendi birleştirdiğim bir işletim sistemi yapmaya karar verdim. Hani legolar var ya onun gibi bir şey işte. Eh, Linux çekirdeği artı GNU araçları ve bilumum özgür yazılım etrafta cirit atıyor:) Al parçaları birleştirmeye başla dedim ama işte orada tıkandım kaldım. Parçaları bulmak kolay ama bir GNU/Linux İşletim Sistemi nasıl çalışır, temel parçalar nelerdir, kim kimi tetikliyor, kimin eli kimin cebinde konuları biraz karışık. Demokraside çare tükenmez deyip kendi yol planımı yaptım ve işe başladım: Öncelikle "bu sistem nasıl açılır, temel parçalar ve ana hatlar nelerdir?" sorununun yanıtını bulabilmek amacı ile The Linux Bootdisk HOWTO kılavuzunu hatim eyledik. Sırada Çekirdek Çitleme Kılavuzu (tldp tarafından şu an güncelleniyor) ve The Pocket Linux kılavuzu var.

Linux Açılış Disketi NASIL kılavuzu; bir açılış disketi yapımını anlatmakla birlikte -ki bu işin çok daha kolay bir yöntemi de mevcuttur:mkbootdisk- sistemin ilk ateşlemesini ve bu sistemin çalışması için gereken temel araçları açıklaması yönünden bence oldukça önemli bir başlangıç noktasını oluşturmakta. İyi bir başlangıç olmakla birlikte, sistem temellerini anlayabilmek için tek başına yeterli olmasını beklemeyin. Zaten kılavuzun ana hedefi de bu değil. Adı üstünde: açılış disketi nasıl yapılır, onu anlatıyor :)

Her halükarda okunması gereken ve Linux öğrenmeye çalışan benim gibiler için, uygulanması gereken bir kılavuz. Init'in ne olduğunu anlamadan önce, init'in herşeyin atası olduğunu anlamak gerekir, öyle değil mi?

http://www.geocities.com/yalcink01/bootdisk-howto/index.html adresinden belgeye ulaşabilirsiniz. Her zaman olduğu gibi: her türlü geribeslemeye kapımız açıktır