Varlık Bileşen Sistemi
Varlık Bileşen Sistemi Nedir?
Entity-Component-System (ECS) bir mimari desendir. Bu desen oyun uygulama geliştirmede yaygın olarak kullanılır. ECS, miras ilkesi üzerinden kompozisyonu takip eder, bu da daha iyi esneklik sunar ve bir oyun sahnesindeki tüm nesnelerin bir varlık olarak kabul edildiği varlıkları tanımlamanıza yardımcı olur.
ECS programlama, varsayılan olarak yüksek performans sağlayan bir kod yazma yöntemidir.
Bu sistem üç terimden oluşmaktadır.
- Varlık
- Bileşen
- sistem
Bu kavramı ayrıntılı olarak öğrenelim:
Bu Varlık-Bileşen Sistemi eğitiminde şunları öğreneceksiniz:
- Varlık Bileşen Sistemi Nedir?
- Varlık Nedir?
- Bileşen nedir?
- Sistem Nedir?
- Bileşim
- ECS'nin Avantajı
- ECS kullanmanın dezavantajları
- Varlık Bileşen Sistemi Örneği
- ECS'de veri akışı:
Varlık Nedir?
Varlık, simüle edilmiş bir alanda bir aktörü temsil eden ayrı bir nesnedir. Gerçek veri veya davranışa sahip değildir. Bu Bileşen bir varlığa verilerini verir. Genellikle bir dikme veya sözlüktür.
Örneğin, bir oyunun evrenini simüle ediyorsak MinecraftOyun evrenindeki tüm görünür, somut 'şeyler' varlıklar olarak sayılır.
Bileşen nedir?
Bileşen, bir varlığa atfedilen tekil bir davranıştır. Bir öğenin adı ideal olarak varlığın hangi davranışı sergileyeceğini belirtmelidir. Ancak bileşenin kendisinin hiçbir davranışı yoktur. Varlıklara eklenen yeniden kullanılabilir modüllerdir. Bileşen görünüm, davranış ve işlevsellik sağlar.
Tüm mantık, bileşenleri karıştırıp yapılandırarak farklı nesne türlerini tanımlamanıza yardımcı olan bileşenler kullanılarak uygulanır.
Sistem Nedir?
Bir sistem, düşük seviyeli performans gerçekleştirmek için birçok bileşeni yineleyecektir.
grafik oluşturma, fizik gerçekleştirme gibi işlevler
hesaplamalar veya yol bulma. Bileşen sınıfları için küresel kapsam, yönetim ve hizmetler sunar.
Ancak sistemler opsiyonel değildir ancak mantık ile veriyi ayırmak için kullanabiliriz. Aynı zamanda mantıksal bileşenleri yönetmenize, veri taşıyıcıları gibi davranmanıza da yardımcı olur.
Örnekler
- Yerçekimi (Velocity) – Yerçekimi nedeniyle hızı artırmanıza yardımcı olur
- Pozisyona hız katar
- Bot kontrollü bir varlığın girişini yapay zeka aracısına göre ayarlar
- Render (Konum, Sprite) – Karakterleri çizer
- Oynatıcı Kontrolü (Giriş Oynatıcı), oynatıcı tarafından kontrol edilen varlığın girişini bir denetleyiciye göre ayarlamanıza yardımcı olur.
Bileşim
Kompozisyon, ek görünüm, davranış veya işlevsellik eklemek için daha fazla bileşen ekleyebileceğiniz bir öğedir. Varlığı yapılandırmak için bileşen değerlerini de güncelleyebilirsiniz.
ECS'nin Avantajı
Programlamada ECS kullanmanın avantajları şunlardır:
- Daha kısa ve daha az karmaşık kodlar oluşturabilirsiniz.
- Çok esnek Acil davranış.
- 3D ve VR geliştirmeye uygun bir mimari sunuyor.
- Teknisyen olmayan kişilerin davranışlarına göre komut dosyası oluşturmayı etkinleştirir.
- Monolitik sınıflarınızı bölmenize yardımcı olur.
- Kolay reddetme ve bir arada mümkün olma.
- Birim testi ve alay için kolay bir seçenek.
- Karmaşıklık açısından bir VR uygulaması oluşturmanıza olanak tanır.
- Çalışma zamanında bileşenleri taklit bileşenlerle değiştirin.
- Yeni özellikleri genişletmenize yardımcı olur.
- ECS, paralel işleme ve çoklu iş parçacığı için kolay bir yöntemdir,
- Verileri, üzerinde işlem yapan işlevlerden ayırmanıza yardımcı olur
- Yeniden kullanılabilir parçalarla karıştırarak nesneleri tanımlarken daha iyi esneklik sağlayın.
- Dekuplaj, kapsülleme, modülerleştirme, yeniden kullanılabilirlik yöntemlerini kullanarak temiz bir tasarım sunar.
ECS kullanmanın dezavantajları
İşte ECS kullanmanın bazı dezavantajları:
- MVC gibi diğer kalıplar kadar somut olarak tanımlanmamıştır.
- Doğru şekilde uygulanması zor, yanlış kullanımı kolay İyi bileşenler, tasarım hakkında daha fazla düşünmeyi gerektirir
- ECS, potansiyel olarak çok sayıda varlık üzerinde aliterasyon yapan birçok küçük sistemin yazılmasını gerektirir ve bu da çok verimsiz kod yazma riskini doğurur
- Çoğu insan bu modeli hiç duymamış bile.
Varlık Bileşen Sistemi Örneği
Tavşan örneğine bakalım:
Bu bileşenlerin etrafındaki kesikli kutuya bakın. Bu tavşan varlığıdır – bileşenlerin bir kabından başka bir şey değildir. Varlıkları, bileşenlerin herhangi bir alt kümesinin bir toplamı olarak da tanımlayabilirsiniz.
Yukarıda verilen görseli görebilirsiniz. Bu, tavşan varlıklarından biridir; bir bileşen kabından başka bir şey değildir. Varlıkları, Havuç gibi herhangi bir bileşen alt kümesinin toplamı olarak tanımlayabilirsiniz:
ECS'de veri akışı:
Sistem davranışı ECS modelinin bir durumdan diğerine değişmesidir.
Bu örneği kullanarak anlayalım:
Davranışlar: “Ağaçta oturan tavşan yer çekimi nedeniyle düşüyor.”
Yukarıdaki davranış nasıl uygulanır?
Bunu, zamanla 0'a düşen z değerinin 0'dan büyük olmasıyla yapabilirsiniz.
Davranış: “Canlılar yaşlanır.”
Bakalım bu davranışı nasıl uygulayabilirsiniz?
Bunu, Yaşayan Bileşenlerin zamanla artan yaş değerine sahip olmasını sağlayabilirsiniz.
Özet:
- Varlık-Bileşen-Sistem (ECS) bir mimari desendir.
- Varlık, simüle edilmiş bir alanda bir aktörü temsil eden ayrı bir nesnedir.
- Bileşen, bir varlığa atfedilen tekil bir davranıştır.
- Bir sistem, grafik oluşturma, fizik hesaplamaları yapma veya yol bulma gibi düşük seviyeli işlevleri gerçekleştirmek için birçok bileşeni yineleyecektir.
- Kompozisyon, ek görünüm, davranış veya işlevsellik eklemek için daha fazla bileşen ekleyebileceğiniz bir öğedir.
- ECS modelini kullanarak daha kısa ve daha az karmaşık kod oluşturabilirsiniz.
- MVC gibi diğer kalıplar kadar somut olarak tanımlanmamıştır.
- Sistem davranışı ECS modelinin bir durumdan diğerine değişmesidir.