Перейти к содержанию

Поиск

Показаны результаты для тегов 'Новый движок'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Энциклопедия Fallout
    • Galaxy News Network
    • Fallout 4 и 76
    • Fallout 3 и New Vegas
    • Fallout Tactics
    • Fallout 1-2
    • Wasteland
  • Другие проекты
    • Postapoc Media
    • Проекты «Nevada Band»
    • Olympus 2207
    • Nuclear Attack
  • Общий раздел
    • Старые Качели
    • «Голый Лось»
    • Nuclear City

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Telegram


Discord


Twitter


Instagram


ВКонтакте


YouTube


Web


Откуда:


Интересы:

Найдено 1 результат

  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 и стрелочки.
×
×
  • Создать...