Я видел много игр, которые определяют компоненты сущностей в файлах сценариев, но когда они настраивают каждую сущность и указывают, какие компоненты у нее есть, они используют какой-то другой формат файла (например, XML). Почему они это делают?
Я спрашиваю, в основном, чтобы понять, каково было объяснение других. Я также настраиваю свои сущности вне сценариев (хотя я выбрал JSON, а не XML). Мои причины для этого состоят в том, чтобы мне было проще реализовать сохранение игр, а также потому, что я думаю, что этот тип конфигурации лучше организован в нечто вроде XML или JSON.
@ Кристофер Ларсен ответ: слишком долго, чтобы оставлять комментарии
Боюсь, вы могли немного отклониться от предмета вопроса. Проблемы, которые вы описываете, больше связаны с иерархическими объектами; обратите внимание, в моем вопросе я упомянул, что я говорил о компонентных компонентах.
Вот пример того, что я хотел спросить. Ниже приведены два альтернативных способа настройки объекта: через сценарий и через внешний файл JSON. У меня был вопрос: почему так много людей предпочитают настраивать сущность вне сценариев?
Базовый класс Entity:
class Entity:
def __init__(self, name):
pass
def addComponent(self, comp):
pass
Подход сценария:
orc = Entity('Orc')
orc.addComponent(PositionComponent(3.4, 7.9))
Подход JSON:
{
"name" : "Orc",
"components":
{
"PositionComponent": {
"x" : 3.4,
"y" : 7.9
}
}
}
Я уже изложил свои причины использования этого подхода, которые являются техническими и организационными. Я хотел знать, почему так много других (из того, что я видел) используют это.