Этот же документ - версия на русском языке, идти сюда!
FreeHeroes is free (both "as free beer" and "as free speech") engine for Heroes of Might and Magic 3, similar to VCMI project.
Project goals are:
- Develop a free engine which could provide HotA + HD Mod functionality
- Go even further and provide moder cybersport features: replays, observer mod, cheater-proof online server, etc
- To be at least as flexible as VCMI is in terms of modding.
FreeHeroes is an executable file, which could run without original Heroes III data. But, for eye pleasant, it's better to have original resources, and FreeHeroes provide converter for legacy data. Conversion is done once. After that, original game resources are no more needed (SoD/HotA/HD).
Current state: project in early development (!); adventure mode is unavailable - only battles in some subset of features are possible.
To read more about project goals; "why not contributing to VCMI"; road map; "how you interact with HotA" - read this article
- download 7z archive from releases page: https://github.com/mapron/FreeHeroes/releases (take the lastest
FreeHeroes_Win64_*.7z
file available) - extract it (7 zip extractor is required)
- run
LegacyConverter.exe
, press "convert!" button - after conversion is finished, you could start BattleEmulator and press "start battle" button.
For more documentation how to use battle emulation, read this article
... you are using pre-alpha version! Jokes away, you can create and issue here https://github.com/mapron/FreeHeroes/issues
It is important not only to describe the problem, but also attach logs and replay if available.
Logs are stored at %USER%\AppData\Local\FreeHeroes\Logs
(for example, C:\Users\mapron\AppData\Local\FreeHeroes\Logs
for me) on Windows.
Replays in adjacent folder, %USER%\AppData\Local\FreeHeroes\Replays
.
Attaching a replay file very handy when describing some battle logic bug (especially AI bug).
Prerequisites:
- Qt 5.15 LTS or Qt 6.4 (versions between 5.15 and 6.4 can work, but untested, minimal possible version Qt 5.13 (probably) but it also untested).
- CMake 3.18 (prior version should be fine though, but for C++20 support some manual flags tuning is required).
- C++20 capable compiler (note: no full C++20 support is required). Tested: GCC 10, Clang 10, MSVC 16.11 (VS 2019), MSVC 17.4 (VS 2022)
If requirements are met, then go "cmake/build/build install". For windows platform, "build install" creates install in binary directory with all runtime dependencies.
Optional dependency: FFMpeg with webm encoder support. FFMpeg required to convert audio and video resources. You could provide it through "FFMPEG_BINARY" cmake option for convenience (it does not affect the build).
Project is in active development, so I don't expect a lot of third party work, but I won't deny any contribution too. Just keep in mind any fix could potentially conflict with my plans to throw away half of the project. For reading and understanding the code, design desisions, and answers "why it had done such way", read an article for contribution
Project source code is licensed under MIT license. Project resouces (Images and Audio data) are licensed under Attribution-ShareAlike 4.0 International CC BY-SA 4.0 license.
- 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
All of these are permissive and compatible with MIT.
- Qt, https://www.qt.io/, GPL/LGPL/Commercial; components utilized by FreeHeroes available under LGPL.
- FFMpeg https://ffmpeg.org, LGPL
- Webm (as part of ffmpeg binary), https://github.com/webmproject/libwebp/, 3-Clause BSD
Keep this in mind if you decide to create closed source derivative work.
- Vitaliy / Gomunguls - for inspiration and consult;
- Chichulina Alexandra - for support, preliminary testing and also for some graphics design parts;
- Artyom Glavatskih / Monsieur Metal - for thorough testing of early versions;