Zindanlar ve Arayüz
Genel Bakış
- Önceki bölümde, oyun geliştirmede yaygın olarak kullanılan varlık-bileşen-sistem (ECS) mimari desenini ve meta dil programlama paradigmasını inceledik.
- Bu kez bu teknikleri kullanarak dungeon crawler türünde küçük bir oyun yapacak ve bunun üzerinden gerçek bir oyun uygulamasının sistem tasarımına bakacağız.
Hazırlık Çalışmaları
- Common Lisp ortamı kuruluyor ve gerekli paketler güncelleniyor.
- Proje
cookiecutter şablonu kullanılarak başlatılıyor ve oyun penceresi boyutu 1280x800 olarak ayarlanıyor.
Zindan
- Oyuncunun zindanı keşfedebilmesi için bir zindan haritası gerekiyor.
- Açık kaynak harita editörü Tiled kullanılarak zindan haritası oluşturuluyor ve bunu Lisp nesnelerine yüklemek için
cl-tiled kütüphanesi kullanılıyor.
- Harita dosyası hazırlandıktan sonra, oyunda yüklenip kullanılabilmesi için bazı hazırlık işlemleri yapılıyor.
ECS Deseninin Uygulanması
- Performansı artırmak için harita döşemesi verileri ECS deposuna taşınıyor.
cl-fast-ecs çatısı projeye ekleniyor ve ECS sistemleri başlatılıyor.
- Harita döşemeleri ayrı varlıklar olarak saklanıyor ve bunları işleyen sistemler tanımlanıyor.
Animasyon
- Tiled animasyonlu döşemeleri destekliyor; bu sayede oyuna canlılık katılabiliyor.
- Animasyonu uygulamak için kod yapısı genişletiliyor ve yeniden düzenleniyor.
- Animasyon durumunu yönetmek için
animation-frame ve animation-state bileşenleri tanımlanıyor.
- Uygun zamanda animasyon karelerini değiştirmek için
update-animations sistemi tanımlanıyor.
GN⁺ Özeti
- Bu yazı, ECS deseninin oyun geliştirmeyi nasıl daha verimli hale getirebileceğini açıklıyor.
- Tiled gibi araçlarla haritaların kolayca nasıl oluşturulup yönetilebileceğini gösteriyor.
- Animasyonla oyuna nasıl canlılık katılacağını anlatıyor.
- ECS deseni kullanıldığında performans optimize edilirken kod yapısı da sade tutulabiliyor.
- Benzer işlevlere sahip diğer projeler arasında Unity'nin ECS sistemi ve Unreal Engine'in Blueprint sistemi bulunuyor.
Henüz yorum yok.