Mar
2
2012

Oyun Programlamaya Giriş

Merhaba arkadaşlar  :)

En son gitmiş olduğum oyun programlama seminerinden sonra bu konu ile ilgili küçük çapta bir yazı hazırlamak istedim.Bu benim ilk yazım olduğu için benim için ayrı bir yeri var  umarım yararlı bilgiler verebilirim..Aranızda hangi alanda ilerlemek istediğine karar veremeyenlere de bi fikir vermiş olurum.

Yazımı şu şekilde sınıflandırdım:

-Oyun programlamanın kısa bir tarihsel gelişimi
-Oyun programlama da kullanılan motorlar
– Oyun programlamaya nasıl başlamalı
-Gideros mobile hakkında kısa tanıtım
-İnceleyebileceğiniz siteler

TARİHSEL GELİŞİMİ

Yaratılan İlk Oyun

İlk oyunun adı Tennis for Two 1958 yılında,Amerikalı fizikçi William Higinbotham tarafından yaratıldı.Higinbotham bu oyunu osiloskop ve analog bilgisayar kullanarak geliştirdi.

Yaratılan ikinci oyun ise; Spacewar’dır.

Spacewar , MIT‘de aralarında  Steve Russell’ın da olduğu bir grup öğrencinin o dönemin yeni bilgisayarlarından olan DEC PDP-1 üzerinde  yaratmış olduğu 2D bir oyundur. Oyunda 2 kullanıcı uzay mekiklerini kullanarak rakip gemiyi yok etmeye çalışır.

Oyun hız, doğrultu, yön ve yıldızların ve güneşin çekim kuvveti gibi parametrelerle kontrol ediliyordu.Oyun aslında uzay araştırmaları için kullanılan bir bilgisayarda geliştirildi.Oyunun o zamanlar ticari bir amacı olamazdı,çünkü bilgisayarların maliyeti ve evlere giremeyecek kadar büyük olması sebebi ile satılması imkansızdı.

İlk Ticari Oyun 

1972 yılında üretilen  ilk ticari oyun olan Pong, Atari firması tarafından tanıtılmıştır.Pong oyunu televizyona bağlanıp,oynanılabiliyordu.

1980 yılında,Packman Japonya’da piyasaya sürüldü. Atari efsanevi oyunlarından “Missile Command”ı piyasaya sürdü.

Oyun programlama da kullanılan motorlar

  • 3D GameStudio
  • CryEngine 3
  • Frostbite Engine
  • OpenSceneGraph
  • M.U.G.E.N
  • RAGE
  • Refractor Engine
  • Source Engine
  • Truevision3D

 

Türkiye’de geliştirilen bazı oyun motorları 

  • Actor
  • CPAGE
  • Yogurt3D
  • Zinek Engine
  • Piyodix

 

Oyun programlamaya nasıl başlamalı

Oyun programlamanın temel adımları;

  • Senaryo
  • Oyun Kontrolleri ve Ekran Detayları
  • Programlama dili
  • Araçlar


SENARYO

Senaryo sürekli değişen bir yapıdadır . Oyun taslağını ele alırsak:

 

  1. Oyunumuzdaki karakterler kimlerdir v?
  2. Oyunumuzdaki karakterlerimiz neye benziyorlar. İnsan mı, yaratık mı, hayvan mı, yoksa bir araba mı, veya bir tank, belki bir uçak da olabilir.
  3. Oyunumuzda karakterler, karşı bir karakterle karşılaştığında nasıl bir tepkime verecekler?
  4. Oyunumuzdaki karşı karakterler nereye neye göre hareket edecekler?
  5. Oyunumuzdaki Alan ne kadar büyük olmalıdır?
  6. Oyunumuzun Grafikleri 2 boyutlumu yoksa 3 boyutlumu olacak?
  7. Oyunumuzda Kontrolü ne ile sağlayacağız mouse, klavye ?
  8. Oyunumuzda nasıl leveller olacak?
  9. Oyunumuzun puanlaması nasıl olacak?
  10. Oyunumuzdaki karakterlerin bir hızı var mı ve ne kadar olacak?
  11. Oyunumuzda nasıl bir yapay zeka kullanacağız?
  12. Oyunumuzun ismi ne olacak?

Bunları oyun programlamaya geçmeden önce kendi hayal dünyamızda canlandırıp, kağıt üzerinde tasarımını yapabiliriz.

  • Oyun Kontrolleri ve Ekran Detayları

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

  • Araçlar

Grafik, oyun yapımında önemli bir yere sahiptir. Birçok grafik programı vardır. Piksel tabanlılar; Adobe Photoshop, Corel Painter, Gimp… Vektör tabanlılar; Adobe Illustrator, Corel Draw… 3D Modeling; Blender, BRL_CAD, 3D Studio MAX, Cinema 4D gibi araçlarla oyunumuzdaki karakterleri, odalar, duvarlar, nesneler ve oyunda birçok görsel nesnemizi bu programlar ile yaparız. Font araçları (bitmap fontlarına ihtiyaç vardır); bfontmaker, bitmap font generator… Screenshot/video capture araçları; BB FlashBack, ScreenCap…

Audio araçları, program özel sesleri oluşturmak için kullanılır. Sound Effects; Audition, ReZound…

Müzik programları; Neo Sounds, Beast, Sound Tracker gibi.

  • Programlama Dili

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

* C/C++

* JAVA

* C#

* Visual Basic

* Delphi / Pascal

* 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. Java daha çok online oyunlarda kullanılıyor.

  • Grafik Api

Grafik apileri programlama içinde entegrelenmiş bir biçimde kullanılır. Araçlarla yapılan modellemeleri veya API üzerinden programlayarak yapılan modellemeleri ekran çıktısı verdirmeye yarayan bir kütüphanedir. DirectX ve OpenGL olmak üzere 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.

  • Yapay Zeka

Bir oyun ortamında kontrol dışındaki karakterlerin bir duvara toslaması veya yapılmayacak bir işi yapması ve buna benzer olayları engellemek için yapılan programlamaya yapay zeka denir. Hangi karakterler nasıl tepki vermelidir, hedefleri nasıl olmalıdır, yapacakları iş ne ile sınırlıdır, bunlar oyun için önemli kavramlardır.

Sonuç olarak olması gerekenler;

Oyunları ve oyun oynamayı sevmek

C/C++ ya da java Programlama Dili (İleri düzeyde)

İyi derecede Matematik bilgisi

Oyun Mekanizması, Bilgisayar Grafikleri, Yapay Zeka ve Müzik Programlama

OpenGL veya DirectX gibi Apileri kullanabilme özelliğin olması gerekir.

oyun

Türkiye’de olan projelerden bir tanesi de GİDEROS MOBİLE

Türkiye’de son yıllarda yenilik ve katma değer sunan pek çok proje çıkmaya başladı. Bunlardan birisi de, bundan yaklaşık 4-5 ay kadar önce e-tohum’dan destek alan Gideros Mobile firmasının geliştirdiği Gideros Studio. Aslında bu çalışma proje olmaktan çoktan çıkmış bir ürün. Gideros Studio, kısaca anlatmak gerekirse, hızlı bir şekilde Android ve iOS uygulamaları geliştirmeye imkan veriyor. Genellikle oyunlar, grafik ağırlıklı uygulamalar, e-kitaplar, Gideros Studio ile geliştirilebilecek uygulamalardan en önemlileri.

Gideros Studio’nun özellikleri arasında şunlar sayılabilir:

  • Android ve iOS desteği
  • iOS için eklenti (plugin) desteği
  • 2 boyutlu grafikler
  • Fizik motoru (box2D)
  • Flurry analizi
  • Ses motoru
  • İvmeölçer, gyroscope
  • 32 bit desenler
  • 30 farklı geçiş fonksiyon (tweening)
  • Kolay font kullanımı
  • Movieclip desteği
  • Gamecenter
  • 30′dan fazla örnek

Gideros Studio ile oldukça kaliteli oyunlar yapılmış ve Appstore ile Android Market’e gönderilmiş. Bunlar arasında Tim the Timber, iPhoneTurkey’in incelediği Bir Kar Masalı, Joustin Beaver ve Elephant’s Bath de var. Joustin Beaver, Gideros Studio ile bir seferde yazıp hem iPhone, hem de Android için geliştirmenin mümkün olduğunun güzel bir örneğidir.

İnceleyebileceğiniz siteler

http://www.youtube.com/watch?v=V2J44jYUAYQ&feature=related

http://www.giderosmobile.com/

http://www.oyunyapim.com/

http://zibumi.com/tr

http://www.gametutorials.com/

http://zaman.com.tr/haber.do?haberno=1250882&title=oyun-pazari-2015te-bir-milyar-lira-buyukluge-ulasacak

 

 

Yazar Hakkında

5 adet yazısı bulunuyor..

Print Friendly