Этот же документ - версия на русском языке, идти сюда!
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
- Just be a fun project to test C++ features on, I have no intention ever fully finishing it.
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).
- download 7z archive from releases page: https://github.com/mapron/FreeHeroes/releases (take the lastest
FreeHeroes_Win64_*.7zfile 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 6.12
- CMake 4.0
- C++20 capable compiler - Tested: VS 2026, Clang 11+ / GCC 12+ should be fine.
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;


