Поиск
Показаны результаты для тегов 'Новый движок'.
Найдено 1 результат
-
Приветствую. Хотел бы поделиться мыслями по идеальному движку для fallout2 и Arcanum (очень схожи). Теоретическая часть + примеры кода и т.д Приглашаю, к дискуссии. Пишите свои мысли, идеи и т.д Главная идея, максимальная простота реализации. Тема будет обновляться, добавляться мысли, код и т.д 1. Ресурсы игры взять оригинальные. Frm файлы(хранится вся графика), dat собственно контейнер для gzip файлов(распаковываются zlib). Скрипты только конвертация, в скриптовую систему нового движка. Карты также. 2. Не тянуть легаси, не делать совместимость с текущими форматами, только описанными в 1 пункте. 1.Хочу начать со скриптовой системы. Без ее реализации движок мертв, для игрока. На мой взгляд, реализовать скриптовую систему на том языке на котором пишется движок(C++). В своих наработках я реализовал так. Есть 2 класса. 1. Critter 2. Script Данные классы ссылаются друг на друга. Теперь возьмем пример загрузки карты. За карту отвечает class Location. class Critter { public: private: Script * script; }; class Script { public: virtual void MapEnter() = 0; private: Critter * critter; }; class Location { public: private: std::vector<Script*> scripts; }; При загрузке карты, проходим по массиву scripts и вызываем функцию MapEnter, вызывая ее в наследуемом скрипте. Остальные действия работаю по такому же принципу. Пример скрипта. class Tester: public Script { public: void MapEnter(); private: Critter * critter; }; //Если сила > 5 добавить нож в инвентарь. void Tester::MapEnter() { if (critter->Stat(Stat::Strength) > 5) { critter->Inventory.AddItem("Knife"); } } Общая идея думаю, понятна. Не нужно писать свой движок для скриптов, парсер, транслятор и т.д (встраивать все это в движок). Решение лежит на поверхности. Система гибкая, простая в реализации. Не нужно писать лишние инструменты. Если сравнивать со скриптами ф2 отличия, лишь косметические, ну скобочки, ну void и стрелочки.
- 47 ответов
-
1