This document is available in English version, follow this link!
FreeHeroes - свободный (и бесплатный) движок для игры Heroes of Might and Magic 3, во многом схожий с проектом VCMI.
Цели проекта:
- Разработка свободного движка, который примерно повторит функциональность HotA + HD Mod;
- Пойти дальше и предоставить современный киберспортивные фичи, такие как реплеи, режим наблюдателя, онлайн игра без мапхаков и тп.
- Быть как минимум таким же гибким в плане моддинга, как и VCMI.
FreeHeroes - это исполняемый файл (exe), который может запускаться без оригинальной игры (Heroes III SoD/HotA), и даже без её данных. Конечно, с картинками заглушками игра приятной быть не может, поэтому сильно рекомендуется воспользоваться конвертером оригинальных ресурсов, который идет с движком. После конвертации ресурсов, оригинальные файлы для движка не требуются. Разумеется, вы должны быть полноправным обладателем лицензионной копии игры.
Текущее состояние: проект в ну очень ранней разработке(!); режима приключений нет, "играть" как полагается в игру - нельзя. Можно экспериментировать в режиме эмуляции сражений, "брать" объекты и тп.
Чтобы почитать больше о целях проекта; "почему не VCMI"; план на ближайшие релизы; "как вы взаимодействуете с HotA" - читаем план развития
- скачиваем 7z архив отсюда: https://github.com/mapron/FreeHeroes/releases (выбираем последнюю доступную сборку FreeHeroes_Win64_*.7z )
- распаковываем(7-zip программа для распаковки)
- запускаем LegacyConverter.exe, жмём "Конвертировать!"
- немного ждем, как конвертация закончится, можно запускать BattleEmulator.exe и нажать "Начать битву!"
Для более подробного описания что умеет Эмулятор, читаем статью
Главное окно эмулятора;
Диалог героя
Процесс сражения
... ну вы же используете пре-альфа версию! Если без шуток, напишите мне либо заведите Issue здесь: https://github.com/mapron/FreeHeroes/issues
Кроме подробно объяснения проблемы, важно предоставить логи и реплеи, если они есть.
Логи хранятся %USER%\AppData\Local\FreeHeroes\Logs (например, C:\Users\mapron\AppData\Local\FreeHeroes\Logs для меня) на платформе Windows.
Реплеи в соседней директории, %USER%\AppData\Local\FreeHeroes\Replays.
Прикрепление реплея крайне важно для отчетов от ошибках в боевой логике (а также ИИ).
Требования:
- Qt 5.15 LTS или Qt 6.4 (версии между 5.15 6.4 должны работать, но не проверялись, версия 5.13 теоретически минимальная для сборки, но это тоже не проверяется).
- CMake 3.18 (можно и более ранние версии, но нужны будут выставления флагов для C++20 вручную).
- C++20 компилятор (полная поддержка C++20 не требуется). Проверены: GCC 10, Clang 10, MSVC 16.11 (VS 2019), MSVC 17.4 (VS 2022).
Просто запускаем "cmake/make/make install" (либо ninja). Для Windows команда "make install" создает в сборочной директории каталог "install" со всеми необходимыми рантайм зависимостями (можно запускать на другой машине)
Опциональная зависимость: FFMpeg с webm енкодером. FFMpeg нужен для конвертации аудио/видео ресурсов. Можно выставить переменную CMake "FFMPEG_BINARY" для удобства установки (на сборку не влияет).
Проект в активной разработке на ранней стадии, поэтому я не особо жду патчей (хотя и не отвергаю). Просто имейте в виду что ваши патчи могут войти в конфликт с моими планами выкинуть половину файлов проекта. Однако же, для чтения и понимания кода, принятых решений можно почитать док для контрибьюторов. Прежде всего будет приятно получить вклад в какие-то обособленные фичи, вроде магии/способностей.
Исходный код под лицензией MIT. Ресурсы движка (изображения и аудио) под Attribution-ShareAlike 4.0 International CC BY-SA 4.0 лицензией.
- Googletest, https://github.com/google/googletest, BSD-3-Clause License
- Lua interpreter, https://www.lua.org/ , MIT License
- Rapidjson, https://github.com/Tencent/rapidjson, MIT License/BSD license
- Frozen, https://github.com/serge-sans-paille/frozen, APACHE 2 License
- SOL, https://github.com/ThePhD/sol2, MIT License
- ZLib, https://github.com/madler/zlib, ZLib license
Все проекты поставляются под пермиссивными лицензиями, совместимыми с MIT.
- Qt , https://www.qt.io/, GPL/LGPL/Commercial; те модули, которые использует FreeHeroes - доступны под LGPL лиценизией.
- FFMpeg https://ffmpeg.org, LGPL
- Webm (как часть FFMpeg), https://github.com/webmproject/libwebp/, 3-Clause BSD
Примите информацию к сведению в случае разработки производной работы с закрытым исходным кодом.
- Виталий / Gomunguls - за вдохновение и консультации;
- Александра Чичулина - за поддержку, ранее тестирование а также за небольшие кусочки дизайна;
- Артём Главатских / Monsieur Metal - за тщательное тестирование ранних релизов.