Programlamada Yeni Eğilimler Dersi 5. Ünite Sorularla Öğrenelim
Oyun Programlama
- Özet
- Sorularla Öğrenelim
Oyun bir aktivite olarak düşünüldüğünde, bu aktivitenin sahip olması gereken özellikler neler olmalıdır?
Oyun aslında bir aktivite olarak nitelendirilebilir. Oyun, bir faaliyete ilişkin düşünce ve duyguları ortaya çıkaran, eğlence odaklı bir aktivitedir. Bu aktivite içerisinde bir kurallar bütünü bulunması ve temel olarak bir nesne belirtilmiş olması gerekmektedir.
Dijital oyun türleri nelerdir?
Kısaca dijital oyun türlerini şu şekilde sıralamak mümkündür:
• Aksiyon oyunları,
• Birinci şahıs nişancı oyunları (First Person Shooter – FPS),
• Macera oyunları,
• Dövüş oyunları,
• Platform oyunları,
• Bilmece oyunları,
• Bulmaca / Zekâ oyunları,
• Rol yapma oyunları,
• Simulasyon oyunları,
• Strateji oyunları,
• Spor oyunları,
• Mantıksal oyunlar,
• Matematik oyunları,
• Eğitsel oyunlar,
• Çevrimiçi oyunlar
Dijital oyun geliştirme aşamaları nelerdir?
Dijital oyun geliştirme aşamaları; fikir ve senaryo belirleme, hedef kitle, hikaye, oynanabilirlik, rekabet ortamı ve donanım kaynakları tüketimi olarak ifade edilebilir.
Oynanabilirlik nedir?
Oynanabilirlik, bir oyunu rahat ve kolay bir biçimde oynayabilmektir. Oyunun nasıl oynandığını sade ve çok az sayıda görselle anlatmak en ideal olanıdır.
Kullanıcı arayüzü nedir?
Kullanıcı Arayüzü (User Interface – UI), aslında arayüz tasarımı olarak bilinir. Örneğin, bir televizyon kumandasının üzerindeki tuşlar bir arayüz tasarımı örneğidir. Tuşların yerleri, büyüklükleri, renkleri tasarımcıların verdiği kararlar sonucu uygulanır.
Kullanıcı deneyimi nedir?
Kullanıcı Deneyimi (User Experience – UX) ise nasıl göründüğü ile ilgili değil kullanıcının nasıl hissettiğiyle ilgilenmektedir. Kullanıcı deneyiminin amacı yapılmak istenilen işlemin basit, sorunsuz ve kolay bir şekilde yapılmasını sağlamaktır.
Oyun motoru nedir?
Oyun motoru, kişilerin veya şirketlerin oyun yapımında kullandıkları ücretli veya ücretsiz yazılımlara verilen genel bir isimdir. Bu yazılımlar, çok sayıda kütüphane dosyalarını içeren yapılardan oluşmaktadır. Kütüphanelerin içerisinde programlama dilleriyle tanımlanmış fonksiyonlar ve sınıflar gibi çok sayıda yapı bulunmaktadır.
Basit düzey oyun geliştirme süreci nasıl ilerlemektedir?
Basit düzey olarak düşünülen süreçte modeller, kaplamalar, ses dosyaları ve oyun motorunun programlama dilinde hazırlanan kodlar bölüm editöründe birleştirilir. Hazırlanan bölümler grafiksel kodlarla desteklenerek oyun tamamlanma aşamasına getirilmektedir.
İleri düzey oyun geliştirme süreci nasıl işlemektedir?
İleri düzey oyun geliştirme sürecinde ise detaylanmış modeller, kod kütüphaneleri, bölüm editörü, model editörü, kaplama ve kod editörlerinde düzenlenerek programlanır. Tamamlanmış bölümlere uyarlanacak grafik ve sistem kodları kullanılabilecek hale getirilir. Bu süreç son olarak, ek grafik kodlarının eklenmesi, harici kütüphanelerin oluşturulması ve oyun motoruna eklenmesiyle tamamlanmaktadır.
Oyunlar için oluşturulan modellerde detay seviyesi ne anlama gelmektedir?
Oluşturulan modeller, detay seviyesi (“level of detail – LOD”) olarak ifade edilen biçimdedir. Detay seviyesi, kameraya yakın modellerin daha detaylı görünmesi, uzakta olan modellerin detay seviyesinin daha düşük olması mantığına dayanmaktadır. Farklı donanım gücü seviyelerine sahip sistemlerde, uygun görüntünün elde edilmesi için, ekran kartlarının farklılıklarına göre ayar yapmak gerekmektedir.
Oyun tasarımı ve programlama yapısını oluşturan aşamalar nelerdir?
Oyun tasarımı ve programlama yapısını kısaca dört kısımda toplamak mümkündür:
• Modelleme (modeling),
• Kaplama (texturing),
• Animasyon (animation),
• Programlama (programming)
Dijital oyun geliştirme sürecinde İyileştirme (Optimization) ne anlama gelmektedir?
Bu terim en uygun hale getirme olarak tanımlanabilir. Oyunun daha az bellek ve işlem gücü kullanması için yapılan tüm işlemlere verilen addır.
Dijital oyun tasarımı sürecinde kullanılan Doku Çözünürlüğü (Texture resolution) ne anlama gelmektedir?
Bir dokunun piksel cinsinden boyutlarını ifade etmektedir.
Oyunlarda yapay zeka nedir?
Yapay Zekâ (AI): Cihazın oyundaki karakter ve sistemleri yönettiği karar alma mekanizmasıdır.
Unity oyun geliştirme motorunun tercih edilme nedenleri nelerdir?
C# ve JavaScript gibi yüksek seviyeli programlama dillerini desteklemesi, kolay kullanışlı arayüzü, çabuk öğrenme eğrisiyle Unity, bağımsız yapımcıların ve küçük çaplı şirketlerin ilk tercihi konumuna yerleşmiştir. İki boyut (2D) desteği, yenilenen kullanıcı arayüzüyle her geçen gün popülaritesini arttırmaktadır.
CryEngine oyun motorunun avantaj ve dezavantajları nelerdir?
Üç Türk kardeşin kurduğu Crytek adlı firma tarafından geliştirilmiş oyun motorudur. Yüksek grafik kalitesini sağlarken dışarıdan fizik motoru veya kütüphane ihtiyacının duyulmaması CryEngine motorunu popüler yapan özelliklerindendir. Öte yandan dezavantaj olarak, geliştirilen dijital oyunların yüksek kapasiteli donanım gereksinimi olması gösterilebilir. CryEngine 4 ile bu optimizasyon sorunları indirgenmiş olsa da hala piyasada donanım altyapısı açısından yüksek gereksinim isteyen oyun motorlarından biridir.
CopperCube oyun motorunun piyasadaki diğer oyun motorlarından ayrılan özelliği nedir?
Ambiera firması tarafından geliştirilen oldukça yeni grafik editörü ve oyun motorudur. Piyasadakilerden farklı olarak hiçbir teknik kodlama ve profesyonel üç boyut bilgisi gerektirmeden üç boyutlu dijital oyunlar oluşturulabilmesini sağlamaktadır. İçerisinde birçok üç boyutlu model, kamera setleri, malzemeler, yapay zekâ davranışları ve daha pek çok yapı bulunmaktadır.
".Net Çatısı" nedir?
Microsoft tarafından geliştirilen, açık internet protokolleri ve standartları üzerine kurulmuş bir uygulama geliştirme çatısıdır. Bu yapı, ortak bir yürütme ortamı, ortak bir değişken tür sistemi ve devingen bağlantılı kütüphanelerden oluşmaktadır.
XNA çatısı altında geliştirilen uygulamalar hangi platformlarda çalıştırılabilir?
XNA çatısı altında geliştirilen uygulamalar Windows, XBOX, Windows Phone platformlarında çalıştırılabilmektedir.
Günümüzde popüler olan oyun motorları nelerdir?
Bu oyun motorlarından bazıları şöyle sıralanabilir:
- Unity
- Unreal Engine
- CryEngine
- CopperCube
- Microsoft XNA