Komut dosyalarındaki varlık bileşenlerini tanımlayan birçok oyun gördüm, ancak her bir varlığı yapılandırdıklarında ve hangi bileşenlere sahip olduklarını belirlediklerinde, başka bir dosya biçimini (XML gibi) kullanırlar. Bunu neden yapıyorlar?
Çoğunlukla başkalarının mantığının bunun için ne olduğunu görmesini istiyorum. Ben de komutları dışında varlıkları yapılandırmak (XML değil JSON seçtim rağmen). Bunu yapmak için nedenlerim, kaydetme oyunları uygulamamı kolaylaştırmak ve ayrıca bu tür bir yapılandırmanın XML veya JSON gibi bir şeyde daha iyi organize edildiğini düşünüyorum.
@ Christopher Larsen'in yanıtı: Yorum yapmak için çok uzun
Korkarım sorunun konusundan biraz sapmış olabilirsiniz. Tanımladığınız sorunlar hiyerarşiye dayalı varlıklarla daha ilgilidir; soruma göre bileşen tabanlı varlıklar hakkında konuştuğumu söyledim.
İşte sormak istediklerime bir örnek. Aşağıda bir varlığı yapılandırmanın iki alternatif yolu vardır: komut dosyası aracılığıyla ve harici bir JSON dosyası aracılığıyla. Sorum şu, neden bu kadar çok insan varlığı komut dosyası dışında yapılandırmayı tercih ediyor?
Temel bir Entity sınıfı:
class Entity:
def __init__(self, name):
pass
def addComponent(self, comp):
pass
Senaryo yaklaşımı:
orc = Entity('Orc')
orc.addComponent(PositionComponent(3.4, 7.9))
JSON yaklaşımı:
{
"name" : "Orc",
"components":
{
"PositionComponent": {
"x" : 3.4,
"y" : 7.9
}
}
}
Teknik ve örgütsel olan bu yaklaşımı kullanma nedenlerimi daha önce belirtmiştim. Neden bu kadar çok başkalarının (gördüklerimden) kullandığını bilmek istedim.