# Oyun Yapımı Hakkında Bilgiler # T3RMiN4TOR

T3RMiN4TOR

Kıdemli Üye
19 Haz 2013
4,998
7
İstanbul
Nedir bu oyun programlama sizlere bunu anlatacağım.Simdi bunları teker teker ele alalım.


* Senaryo
* Araçlar
* Programlama Dili
* API arayüz yardımcılar
* Yapay Zeka
* Yapım zamanı

SENARYO

Senaryo sürekli değişen bir yapıdadır ve esnek olması 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ı, yoksa 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 photoshop 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.

NOT: 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.

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.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.