paradigma
Bu cevabın yazıldığı tarihte, burada yayınlanan diğer cevapların hepsi yanlış.
Etki Alanına Dayalı Tasarım'ın oyunlar için iyi olup olmadığını sormak yerine. "Alan Adı Modelleme" nin oyunlar için iyi olup olmadığını sormalısınız.
Alan adı modellemesi oyunlar için iyi mi?
Cevap: bazen kesinlikle harika. Ancak, bir platform oyunu ya da FPS gibi gerçek zamanlı bir oyun ya da her türlü oyun (MANY MANY çeşit oyun) oluşturuyorsanız, o zaman hayır. Bu sistemler için uygun olmayabilir. Bununla birlikte, etki alanı model modelini uygulamanın etkili olduğu oyunlarda sistemler olabilir.
Diğerlerinin burada belirttiği gibi, bileşen-varlık çerçeveleri çok popüler ve iyi bir nedenden dolayıdır. Bununla birlikte, oyun geliştirme kültüründe katmanlı mimarilerin belirgin bir eksikliği var gibi görünüyor. Yine, bu, insanların geliştireceği çoğu oyunun varlıklar üzerinde sadece mutasyon durumunu geliştireceği ve ortaya çıkan sonuçların oyun olmasına izin vereceği için iyi bir nedendir.
TÜM YAZILIM YAZMADIĞINIZ YAZILIM DEĞİLDİR. Bazıları diğerlerinden oldukça farklıdır.
Etki alanı modellemesinin iyi çalıştığı alanlara örnek olarak kart oyunları, masa oyunları ve olaya dayalı diğer sistem türleri verilebilir.
Çekirdek etki alanı kavramları olarak zaman deltaları tarafından belirlenen hareket vs ile X kare hızında çalışan oyunlar büyük olasılıkla çok uygun değildir. Bu durumda, "alanımız" genellikle o kadar basittir ki alan modellemeye gerek yoktur. Çarpışma tespiti, yeni varlıkların ortaya çıkması, kuvvetlerin mevcut varlıklar üzerindeki etkisi vb. Çoğu oyunu kapsamaktadır.
Ancak, işler karmaşıklaştıkça, belirli davranış ve hesaplama türlerini ele almak için geliştiricilerin varlıkları içinde etki alanı modelleri uyguladıklarını görmeye başlarsınız.
Oyun mimarilerinde alan modeli modeli
Oyun motorunuz (örneğin, Unity3D) genellikle bileşen-varlık yönelimlidir. Platformda karakteriniz için bir varlığınız olabilir ve durumu, konumu güncellemek için sürekli olarak değiştirilir.
Bununla birlikte, daha olay odaklı bir oyunda, bileşen-varlık çerçevesinin rolünün sadece Kullanıcı Arayüzü olarak bulunması daha olasıdır. Sonunda katmanlı bir mimari elde edersiniz.
Kullanıcı arabirimi, oyun durumunu kullanıcıya sunar. Kullanıcı, kullanıcı arayüzüyle etkileşime girerek hizmet katmanındaki komutları tetikler. Hizmet katmanı etki alanı nesneleriyle etkileşime giriyor. Etki alanı nesneleri, etki alanı olaylarını artırdı. Olay dinleyicileri olayları duyar ve kullanıcı arayüzündeki değişiklikleri tetikler.
Kullanıcı Arayüzü> Hizmet Katmanı> Etki Alanı Modeli
Kısacası, bir hizmet katmanı uygulamasına sahip model-görünüm-denetleyicisine son verin.
Bu mimariyi kullanarak, olaya dayalı bir arayüzle tamamen birim test edilebilir bir oyun çekirdeğine (Oyun geliştirme kültüründe nadirlik gösterir ve gösterir) sahip olursunuz.
Tamam, DDD nedir?
Etki Alanına Dayalı Tasarım özellikle, etki alanı hakkında bilgi edinmek için kullanılan analitik örüntüler üzerinde vurgu yapan bir kültür / harekettir, böylece aslında doğru olanı inşa edersiniz ve daha sonra, etki alanı modelindeki kavramları dilinizin deyimini kullanarak. DDD, karmaşık alan adlarıyla çalışan ve her zaman alan adı modellemesine odaklanarak uygulamalarında yüksek karmaşıklığı yönetmenin yollarını arayan bir topluluktan gelir.
DDD, hedefiniz sadece kodlamaya başlamak, sistemle oynamak ve daha sonra ne inşa etmek istediğinizi bulmak vb. İçin iyi bir şey yapmaz. Var olan bir alanın az çok olduğunu varsayar. Yani, oyununuzun ne olacağı hakkında hiçbir fikriniz yoksa .. O zaman, işe yaramayacak.