Я слышал о проекте, ориентированном на данные, и некоторое время изучал его. Итак, я прочитал несколько статей, чтобы получить концепции.
Одна из статей Data Driven Design, написанная Кайлом Уилсоном. Как он описал, мне кажется, что код приложения (т.е. Код для управления такими ресурсами, как память, сеть...) и код логической игры должен быть отделен, а код логики игры должен управляться внешними источниками данных. На данный момент я могу представить, что разработчик напишет какой-то редактор игр, который принимает внешние данные о игровых объектах (таких как информация о символах, информация о оружии, информация о карте...). Конструкция сценария будет написана с помощью пользовательского языка/инструмента, написанного программистом, чтобы позволить игровому дизайнеру взаимодействовать между игровыми объектами. Разработчик игры либо использует существующий/настраиваемый язык сценариев для записи script для игры, либо инструмент перетаскивания для создания игрового мира. Пример инструментального подхода, о котором я могу думать, - это World Editor, который обычно упаковывается вместе с играми Bliizard.
Для меня первый метод кажется более разумным, поскольку игровые компоненты могут использоваться повторно для многих проектов. Со вторым методом, который противопоставляет проектированию, управляемому данными, игровой код принадлежит только этой игре. Вот почему я считаю, что Warcraft имеет в нем столько жанров, как оригинальная Warcraft и различные пользовательские карты, и одна из самых известных: DOTA, которая фактически определяет новый жанр. По этой причине я слышал, как люди называют World Editor игровым движком. Это правда, как игровой движок должен быть?
Итак, после всего этого, я просто хочу проверить, есть ли какой-либо недостаток в моем понимании этих идей (управляемый данными, диск программиста, сценарии и т.д.)?