LinkTr Forumları (Arşiv Ana sayfa) => Oyun Programlama

Konu: Oyun Programlamaya Giriş

Sayfa: [ 1 ]

programmer 10.02.2009 14:11:44
İlgilenenlere merhaba...

Forumun bu kısmını, oyun geliştirme hakkında pek Türkçe kaynak bulunmayışından ve meraklı kişilerin de meraklarıyla baş başa kalmalarından ötürü, yardımcı olsun diye rica minnet kurdurdum Sırıtan Faydalı olması dileklerimle...

OYUN GELİŞTİRMEYE GİRİŞ
Neler Gerekiyor?
Oyun geliştirmek, yanlış anlamayın ama, öyle her insanın kalkışabileceği bir dert değil. Oyun programlamayla ilgilenecek kişilerde bulunmasını gerekli gördüğüm şeyleri kendimce 2 alanda topladım (şimdi topladım, valla bak): Kişisel Özellikler ve Programlama Becerileri.

Kişisel özellikler olarak Sabır, Gayret, Sâkinlik, Heyecan (istek yani) gibi şeyler sayılabilir. Neden bunlar? Çünkü oyun geliştirme ciddi bir iş. Kafanızdaki birşeyi kodlara döktüğünüzde ilk anda gerçekleşmeyebilir. İşte bu durumda "Bu ne ya? Başlarım lan bu işe" diyip bırakmamak lazım (Bende çok oldu bu). Ayrıca içinizde bu işle alakalı bir heyecan olması şart. Yeni şeyler öğrenip başarıyla uyguladığınızda daha fazlasını öğrenme heyecanı duymuyorsanız, başardığınız şey sayesinde kendinizle gurur duymuyorsanız, iş çok zor.

Programlama Becerileri olarak da aslında Matematik Zekâ, Problem Çözme, Hızlı Düşünme ve Sonuç Üretme, Nesne Yönelimli dil(ler)le ilgilenmiş olma gibi şeyler sayılabilir. Oyun geliştirmede herşey matematik üzerine kurulu. Bu açıdan Trigonometri, Fonksiyonlar, 3B analiz (koordinat sistemleri, vektörler vs.), Doğrusal Cebir (matrisler, matris işlemleri) gibi konulara (Son 2 alan Lise 3 te gösterilir) ihtiyaç var. Buna mukabil, en az bir nesne yönelimli programlama dili ile ilgilenmiş olmak iyi sonuç getirir; bu açıdan önerdiğim dil tabi ki C++ tır. C++ ta da genel kültür düzeyinde bilgiler yetersiz; çünkü her C kodu yazan kendini C++ programcısı sanıyor. Bilinmesi gerektiğini düşündüğüm konular: İşaretçiler (pointers), Sınıflar (Classes) ve Windows tabanlı uygulama geliştirmeye giriş kısmı (pencere oluşturma, mesaj döngüsüne girme vs.) şart; buna mukabil Operatör Overloading, STL ve std de bence bilinmeli.

Gereken Araçlar
Oyun geliştirmek için bir bilgisayara ihtiyaç var. Bilgisayarınız DirectX 9.0c destekli olmalı (Counter-Strike oynayanlar için söylüyorum, sXe Injected çalışıyorken yazdığınız kodlar çalışmayabilir, lânet program engelliyor çünkü. O açıdan kod yazarken sXe yi kapalı tutun). DirectX temelli uygulamalar geliştirmeyi öğreneceğimiz için DirectX SDK ve Visual C++ tümleşik geliştirme ortamı(IDE) lazım.

Visual C++ 2008 Express Edition işimizi görür (3 küsür MB, internetten kurulum):
http://www.microsoft.com/express/vc/

DirectX 9.0c SDK'yi indirmek için (400 küsür MB):
http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&displaylang=en

Önce VC++ yı indirin, kurun. Sonra DX9 SDK yı indirip kurun. Bu aşamadan sonra VC++ IDE de yapılacak birkaç ayar var. Onlara değinelim.

1-) Tools->Options menü hareketiyle ulaşacağınız "Options" penceresinde sol taraftan Projects and Solutions->VC++ Directories öğesine ulaşın:


DirectX SDK yı C:\DXSDK klasörüne kurduğunuzu varsayalım (sizinki nereye kuruluysa artık). Sağ üstteki açılır listede seçilenlere göre şu işlemleri yapın:
 * Executables'ı seçin ve altındaki listeye yeni bir eleman ekleyin (bunun için listenin üstünde klasör oluşturma simgeli düğmeyi kullanabilirsiniz). Eklediğiniz elemanın içeriği C:\DXSDK\Utilities\Bin\x86 olmalı.
 * Include'u seçin ve altındaki listeye yeni bir eleman ekleyin. Elemanın içeriği C:\DXSDK\Include şeklinde olmalı.
 * Library Files'ı seçin ve altındaki listeye yeni bir eleman ekleyin. Elemanın içeriği C:\DXSDK\Lib\x86 şeklinde olmalı.

2-) Her DirectX uygulaması yazacağınız zaman yeni bir proje oluşturuyorsanız şu adımları da izlemelisiniz.
 * Project-> XXX Properties (burada XXX sizin projenizin adıdır, aşağıdaki örnekte bu ad PhongShading olarak belirlediğim addır) menü öğesine ulaşın:


 * Açılan XXX Property Pages başlıklı pencerede soldaki listeden Configuration Properties->Linker->Input öğesine ulaşın. Sağda oluşan kısımda Additional Dependencies elemana tıklayın ve yanında beliren, üzerinde (...) bulunan düğmeye tıklayarak listeyi açın:

Ve bu pencerede üst taraftaki listeyi, resimde gördüğünüz elemanlarla doldurun. Ayrıca, Project->XXX Properties menü öğesiyle açılan XXX Property Pages penceresinde Configuration Properties->General öğesine ulaşıp yandaki Character Set elemanını Unicode veya Multi-Byte'tan biri olarak seçin.

Ben şahsen Unicode kullanıyorum; çünkü elim ona alıştı. Diyeceksiniz ki "Bu ne?". Kod içerisinde stringler kullanmanız gerektiğinde, eğer Character Set'iniz Unicode ise bu stringlerin başına L koymalısınız. Örneğin pencerenizin adı İlk DirectX Uygulamam şeklinde olacaksa CreateWindow fonksiyonunda ilgili parametreyi L"İlk DirectX Uygulamam" şeklinde doldurmalısınız. Bu tarz bir yazının, değişken olarak düşünüldüğünde, tipi LPCWSTR olacaktır.
Örnek:
LPCWSTR ad;
ad = L"İlk DirectX Uygulamam"
;

Ama eğer Unicode değil de Multi-Byte kullanacaksanız bu içeriğin başına L koyma zorunluluğu kalkıyor. Bu tarz bir yazının da tipi LPCSTR olur (Yani yukarıdakinden farkı bir W harfi, o da WideString'ten gelir).
Örnek:
LPCSTR ad;
ad = "İlk DirectX Uygulamam"
;

Şimdilik bu kadar ön bilgi yeter. Gelecek konuda görüşmek üzere falan...

reptile 10.02.2009 22:38:55
Wooww süper bir başlangıç Göz kırpan Ellerine sağlık


Sayfa: [ 1 ]