Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

oyun programlama


Killer

Öne çıkan mesajlar

Oyun programlama olayını kendi tecrübelerimden bir örnekle açıklayım. Ben oyun geliştirme ile hobi düzeyinde ilgileniyorum şimdilik. Unity3d grafik motorunu kullanarak ufak tefek oyunlar yaptım kendi çapımda. Şu ana kadar yaptığım en büyük proje EVE online 3d modelleri ve texture'ları kullanarak arcade tarzı bir uzay simülasyonu yapıyorum diğer işlerimden zaman kaldıkça. Yapım aşamalarını kısaca anlatayım nerede neler gerektiğini açıklamak için.

Bu topicde de daha önce belirtildiği gibi "oyun geliştirme" sadece programlama değil bir çok dalın bir birleşimi. Mesela kendi projemi gerçekleştirmek için önce 5-6 ay Unity tutorial'llarını takip edip iyice öğrendim ne nasıl yapılır diye.

Sonra kontrol mekanizmasını tasarladım. Bu mekaniza çok yoğun fizik gerektiriyor eğer custom bir kontrol mekanizması yaratmak istiyorsan. Unity forumlarında simülasyon kontrol mekanizması yazmış birini bulup onun kodunu alıp kendi kontrol şemama uyguladım ve geliştirdim (tuş kombinasyonları, mouse ve joystick kontrolleri vs).

Grafik konusunda biraz şanslıydım çünkü CCP EVE Online modellerini ve texturelarını kullanmama izin verdi. Eğer olmasayı gemileri vs kendim modelleyip texture'larını yapmak zorunda kalacaktım. Tabi bu textureları vs almak çok basit bir işlem değil. Önce özel bir program yardımıyla ccp nin model ve texture dosyalarına ulaşıp bunları raw haliyle alıp sonra bunları photoshop ve blender kullanarak model ve texture haline getirip birleştirmem gerekti. Burada genelde sanatsal yetenekler ve photoshop, maya, 3dmax gibi programları kullanmayı öğrenmek gerekiyor.

Animasyon kullanmadığım için animasyon yapmam gerekmedi ama eğer animasyon kullanılacaksa bunların Blender,3dmax, maya gibi programlar kullanarak modellerin animasyonlarının tasarlanması gerekir.

Daha sonra Unity3D'nin default shader'larında 4-5 katlı texture koyabileceğim shader olmadığını gördüm ve gemiler ve gezegenler için unity için yazılmış olarak visual shader editor kullanarak, diffuse,specular, normal ve lightmap olan bir shader tasarladım.Shader tasarımı daha çok kodlama ve grafik bilgisine dayanan bir iş ve baya zor bir iş. Neyseki visual tasarım tool'ları var onlar işi kolaylaştırıyor biraz :).

Daha sonra GUI tasarımı için photoshop kullanarak, interface elemanlarını yaptım. Tabi öyle süper çizim yeteneğim olmadından arkadaşımın tabiriyle "photoshop tutotialı" gibi oldu ama en azından ekrana yazan sayılar ve yazılardan iyi oldu :).

Tüm bunlar bitince oyunun geri kalanını kodlamaya başladım. GUI'yi yerleştirmek, kontrolleri tasarlamak, silahların ateşlenmesi, güdümlü füzelerin kodları, bölümlerin parametreleri vs vs. Burada en önemli olan şey tabi ki AI (yapay zeka). Bunun için baya bir uğraşmam gerekti ama sonunda fizik motorunun fonksionlarını kullanarak ve yüksek lisans ve lisans'daki derslerimden de gelen bilgilerle sonunda yapay zekayı düşmanı 3 boyutlu bir uzayda arayıp bulup yok edip, bu arada da çarpışmalardan kaçabilecek düzeyde yapabildim.

Sırada particle effect'ler vardı. Patlama, duman, lazer vs efektleri için Unity içinde bulunan particle effect sistemini kullanarak ve bu efektler için 2 photoshop'da 2 boyutlu particle'lar tasarladım. Ama tabi particle tasarımı GUI elemanı tasarımından biraz farklı ve daha çok bilgi istiyor.

Ses efektleri ve müzikleri yine EVE dosyalarından aldım. Ancak tabi oyuna göre tasarlanmış ses dosyalarıydı bunlar. Zamanlamaları ve sesler tutmuyordu. Bu yüzden bir audio editing programı olan Audacity kullanarak seslerin zamanlamalarını vs keserek düzelttim ve koda yerleştirdim. Sesler elimde olmasaydı bunların da sıfırdan yapılması gerekecekti.

Tabi son olarak da bir senaryo yazmak ve bu senaryoyu bölümlere ayırmak gerekiyordu. Burayı halen tam olarak bitiremedim ama en azından test olarak ilk bölümün senaryosunu tasarladım.

Ve sonunda yaklaşık 3 aylık bir süreçte(Unity öğrenme aşamaları hariç) ilk ciddi oyunumun ilk bölümü bitti :). Sıra performans testlerine geldi. Bir çok performans düşüklüğü yaratan öğe vardı, bir kaç gün de bunları düzeltmek için uğraştım ve sonunda hazır oldu. Şimdilik işte zamanım oldukça bölümleri tasarlıyorum vs ciddi olarak başına oturacak zamanım şu an yok malesef ama ilerde bitecek umuyorum :).


Wall-o-text yaptım gerçi ama pratikte basit bir oyunun nasıl tasarlanıp kodlandığı hakkında biraz bilgi vermek istedim. Ben elektronik mühendisiyim aslında ama elektronikten nefret ettiğim için yüksek lisansımı bilişim üzerine yapıp daha çok bilgisayar mühendisliğine doğru kaydım. Şu an da zaten yazılım mühendisi olarak çalışıyorum. Demek istediğim hangi üniversiteyi bitirirsen bitir oyun yapmak mümkün. Sadece zaman ayırman ve öğrenmek istemen şart. Yani illa "oyun yapımcığılı" lisans programında öğrenim yapmış olmak filan gerekmez. Ama bilgisayar mühendisliği okursan çok yararı olur programlama dillerini daha kolay anlamak açısından.

Bence eğer oyun yapmakta ciddiysen şimdiden araştırmaya ve öğrenmeye başla.
Link to comment
Sosyal ağlarda paylaş

Yazılanların çoğunu okudum da genellikle wotların çoğu -para kazanmak, kapağı yurtdışına atmak- fikri dahilinde yazılmış. Peki ya hobi olarak ilgileniliyorsa? Ya kişi bir şeyler yapmak, bir ürün ortaya çıkarmak adına kişisel bilgisayarında bir şeyler denemek istiyorsa?

Az çok araştırdım bu konuları. Pek ileriye gidemedim ancak bilgim dahilinde bir çok seçenek de mevcut.

Çok ileri teknikler olmadan =>

Unity3d + javascript + 3D

araçları ile oyunlar yapabilirsin. Veya

Panda3d + python + 3D

ile de oyunlar yapabilirsin. Javascript veya Python'un seni C gibi zorlayacağını sanmam. Yine de tabi programlamaya yatkın olmak gerekiyor.

Ama dersen ki ben oyunlar yapıp bir şeyler yaratmak istiyorum. Game Maker gibi araçları da kullanabilirsin. GameMaker için genellikle "b.ktan" tanımı kullanırlar asıl bu işle ilgilenenler. Sen aldırma. Şahsen gamemaker gibi bir programda şöyle bir oyunu yapan : http://gmc.yoyogames.com/index.php?showtopic=393243 kişiyi görsem ve bir oyun şirketine sahip olsam bu adamı işe alırdım.

Bunun dışında platform vs gibi oyunlar için 2D'ye, 2D için de sanırım bir grafik tablet ve çizim kabiliyetine sahip olman gerekiyor.

Neticede zor iş ama seversen yaparsın işte.
Link to comment
Sosyal ağlarda paylaş

imamizer said:

2 kişilik ekip olarak üzerinde çalıştığımız projeden bir ss.
yakın zamanda bitirip ios için piyasaya sürmeyi düşünüyoruz.

cinnet geçiren bi kuzuyu oynuyoruz.

http://i.imgur.com/b3DSj.png

apple store a ücretli satılmak üzere app yükleyebiliyor musunuz, detaylar nasıl ?
Link to comment
Sosyal ağlarda paylaş

reyou said:

raki nerde?


raki?

@pontipati

henüz hiç bizzat işin o kısmında bulunmadım. zamanı geldiğinde araştırır öğrenilir diye pek umursamadım şimdilik. ama ürünün belli bir seviyede, sorunsuz çalışır olması gerekiyor ve apple store için yıllık 100 dolar mı ne vererek yayıncı hesabı almak gerekiyor diye biliyorum.
Link to comment
Sosyal ağlarda paylaş

  • 1 ay sonra ...
nereye yazsam bilemedim. burada dursun bari;

boş zamanlarımda yaptığım survival/adventure tarzı oyun için senarist bir arkadaşa ihtiyacım var.

para mara vermem. keyif için yapıyorum. benim de bi para beklentim yok. para getiren bi durumda zaten herkes hakkını alır. bizde kimsenin parası kalmaz !!1

yalnız güzel bi fikir, kurgu, senaryo, karakter lazım. hani kendi bulduklarımdan iyi olsun diyorum. ingilizcesi iyi olsun birde metinleri kendisi yazsın.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...