23 Temmuz 2012 Pazartesi

Oyun yapımı hakkında güzel bir makale

Evet arkadaşlar gezerken çok güzel bir makaleye rastladım ve bunu sizlerle paylaşmak istedim :). Biraz birşeyler öğrenmek istiyorsanız bence sonuna kadar okuyun :)

Günümüzden oyun yapmak bir hobi haline dönüşmüştür.Genellikle yazılım şirketleri ve mühendislikte okuyan öğrenciler oyun yapımı ile uğraş verirdi.Artık internette oyun yapımı hakkında çok döküman var ve bundan dolayı oyun yapımı artık eskisi gibi zor uraşı veren konu değildir. Ceida Software ailesi olarak bizde sizlere oyun yapmaya nasıl başlanır, kullanılan programlama dilleri ve kütüphaneleri nelerdir, oyun programlamaya ilk adımınız, bir 2D & 3D ekrana nasıl çizdirilir basıl boyutlandırlır, müzik ve ses dosayalarını nasıl projemize ekleyebiliriz, multiplayer ve network giriş, fizik ve matematik kuralları, yapay zekayı oyunumuza nasıl adepte ederiz bunları teker teker uygulamalı olarak sizlere göstereceğiz. İlk başta oyun programlamaya geçmeden önce bu işi sevmelisiniz ve gece gündüz bu işle uraşacaksınız belki, kimi zaman gelecek zorlandığınız içinden çıkamadığınız konular olacak ama yılmayacaksınız hiçbir zaman.

Nedir bu oyun programlama sizlere bunu anlatacağım.Simdi bunları teker teker ele alalım.

1) Senaryo
2) Araçlar
3)Programlama Dili
4)API arayüz yardımcılar
5)Yapay Zeka
6)Yapım zamanı
SENARYO
Senaryo sürekli değişen bir yapıdadır ve esnek olaması gerekir.Oyun senaryosu nedir yani bir oyun dizaynı nasıl yapılır ve bunları gösterecem. Oyun taslağını ele alırsak

* Oyunumuzdaki karekterler kimlerdir ve kim nekadar büyüktür?

* Oyunumuzdaki karekterlerimiz neye benziyorlar. İnsanmı, yaratıkmı, hayvanmı, yoksam bir arabamı, veya bir tank, belki bir uçakda olabilir.

* Oyunumuzda karekterler, karşı bir karekterle karşılaştığında nasıl bir tepkime verecekler?

* Oyunumuzdaki karşı karekterler nereye neye göre hareket edecekler?

* Oyunumuzdaki Alan nekadar büyük olmalıdır?

* Oyunumuzun Grafikleri 2 boyutlumu yoksam 3 boyutlumu olacak?

* Oyunumuzda Kotrolü ne ile sağlıyacağız maus, klavye ?

* Oyunumuzda nasıl leveller olacak?

* Oyunumuzun pualaması nasıl olacak?

* Oyunumuzdaki karekterlerin bir hızı varmı ve nekadar olacak?

* Oyunumuzda nasıl bir yapay zeka kullanacağız?

* Oyunumuzun ismi neolacak? Oyununuz bittikten sonrada bir isim verebilirsiniz.

Bunları oyun programlamaya geçmeden önce hayal gücünüzle düşünerek ve gerekirse not alarak çalışın. Bu senaryo’ ya bir örnek verelim. Bir 2 dünya savaş oyunu yaptığımızı düşünelim. Oyunumuzun baş karekteri hangi devletir, hangi silahlarımız, hangi cephanelerimiz, hangi araçlarımız ve nekadar bulunmaktadır.Oyun esnasın kiminle iftifakız kiminle düşmanız ve kime saldırmalıyız.Oyunumuz 2 boyutlumu, yoksam 3 boyutlumu olsun. Oyunun süresi nekadardır. Oyunda kontrollerimizi klavye ilemi maus ilemi yapacağız? … Bu senerio böyle sürer gider, yani amacımız oyunumuzun nasıl oluşacağını tasarlamak.

Oyun Kontrolleri ve Ekran detayları
Bir oyunumuzun ekranda çözünürlüğü nasıl olmalıdır veya oyun esnasında ayarlanmalımı olmalıdır. Oyunumuzun giriş menüleri nelerdir? Oyun sırasında ekran butonları olacakmı? Oyun sırasında hızlı çıkış olacak mı (ESC) tuşu gibi? Oyunumuzda kayıt(save) kısmı olacakmı? Oyunumuz multiplayer olacaksa, başka kişilerle irtibat kurabileceklermi? Bu olayları teker teker ele almamız gerekiyor.

ARAÇLAR
Oyun yapımı esnasında bir çok araçlara ihtiyacımız var.

* Bunlardan biri photoshop. Texture(DESEN) nesnelerini photosop gibi resim aracı ile yaparız.

* Oyun modellemelerini yapmak için bir 3D çizim aracına ihtiyacımız vardır.3D max studio, maya, blender, XSI, cinemada4D… bu araclarla oyumuzdaki kerekterler, odalar, duvarlar, nesneler ve oyunda bir çok görsel nesnemizi bu programlar ile yaparız.

* Oyunumuzda bir muzik ve ses efekleri olacakmı. Bunun için gerekli araçlarımız olması gerekir.

Araçlar kısmında başka aklıma gelen bir şey yok.geçiyorum bu konuyu

Programlama Dili
Oyunumuzu hangi programlama dili ile yapacağımız çok önemlidir. Bunlardan başlıcaları:

* C/C++ (tavsiyem)

* C#

* Visual Basic

* Delphi / Pascal

* JAVA

* Diğer diller…

Seçeceğimiz dil çok önemlidir. Dilde şu unsurlara dikkat etmemiz gerekir; Güç, Hız, OOP, Kullanabilirlik, Taşınabilirlik ve İngilizce & Türkçe Dökümanlar.





Görüyorsunuzki programlama dilinde C++ bir adım önde.Neden C++ dersenizki, kütüphaneleri, türkçe & ingilizce dökümanları bol miktarda ve güçlü bir programlama dilirdir. Büyük firmalar’ da C++ programlama dilini önermektedir. Birde programlama dilinde platformda önemlidir. Uygulamanızı Windows & UNIX ortamlarda yapacaksanız ona göre bir programlama dili ve ona görede kullnacağınız api’ ler seçmeniz gerekir.Mesala Directx API micsoroftun yapıtığı bir çalışma olup sadece windows ortamında çalışmaktadır.

API ARAYÜZ YARDIMCILAR
API’ nin açılımı “application Program Interface” dir. Önemli noktalardan biridir. Bir çok dalda ve ona bağlı bir çok API bulunmakta.

GRAFİK API
Nedir Bu API buradan bakabilirsiniz.Grafik apileri programlama içinde entegrelenmiş bir biçimde kullanılır. Sizin araçlarla yaptığınız modellemeleri veya API üzerinden programlayarak yapacağınız modellemeleri ekran çıktısı verdirmeye yarayan bir kütüphanedir. DirectX ve OpenGL iki çeşit Güçlü API vardır. Directx sadece windows ortamında çalışmakta olup, opengl windows ve unıx işletim sisteminde çalışmaktadır.Benim tercihim directx’ tir. Hem görsel açıtan iyidir, hemde DirectX Audio, DirectInput, DirectPlay… gibi kütüphaneleride içine barındırmaktadır. Directx ile bundan sonraki konuları CeidaSoftware.com Dersler kısımından inceleyebilirsiniz.

YAPAY ZEKA
Bir oyun ortamında sizin kontrolünüz dışındaki karekterlerin bir duvara toslaması veya yapılmayacak bi işi yapması ve buna benzer olayları engellemek için yapılan programlamaya yapay zeka denir.Hangi karekterler nasıl tepki vermelidir, hedefleri nasıl olmalıdır, yapacakları işi ne ile sınırlıdır, bunlar oyunumuz için önemli bir kavramdır. Günümüzde Yapay zeka kütühanelerinide çıkardılar artık bunlar nekadar istedeğimizi sağlar bilemeyiz denemek gerekir, internetten araçtırabilirsiniz.

YAPIM ZAMANI
Günümüzde oyun yapımı: seneryosunu hazırlamak, programlamak, test aşamasından geçirmek ve cdlerinin basılması ortalama 2 yıl ile 4 yıl arası bir vakit alabilir. Hobi olarak uraşacağız bizler derseniz 3 gün ile 1 sene arasında oyununuzu tamamlamak mümkündür.Bir tetris oyunu yaparsanız 3 gününüzü alır. Bir savaş oyunu yaparsınız 1 senenizi alır. Tamamen kişinin senaryosuna bağlıdır.

 Kaynakça:Bilinmiyor

Hiç yorum yok:

Yorum Gönder