open-sourcegameturn-based-strategyheroes-of-might-and-magicclean-roomsdl2 type: concept 创建: 2026-04-10 更新: 2026-04-10
fheroes2
Heroes of Might and Magic II 清洁室重实现,开源多平台复刻版
基本信息
| 项目 |
内容 |
| GitHub |
https://github.com/ihhub/fheroes2 |
| 语言 |
C++(250 .cpp + 213 .h,约 210K LOC) |
| 构建系统 |
CMake + Makefile多平台 |
| 渲染/引擎 |
纯 SDL2,无第三方游戏引擎,自研图像/渲染系统 |
| 许可 |
GPLv2 |
| Stars |
8.3k+ |
| 平台 |
Windows/macOS/Linux/Android/iOS/Nintendo Switch/PS Vita |
核心技术点
清洁室架构
- 完全从零重写,非反编译,基于公开文档和逆向格式研究
- engine/ 子目录:封装 SDL2 渲染、音频、文件系统、线程、配置等基础设施
- fheroes2/ 子目录:battle/castle/heroes/kingdom/world/maps/campaign 等游戏逻辑模块
- 两层分离:底层引擎与上层游戏逻辑完全解耦,可独立替换
资源系统(agg/)
- 自研
agg_file 资源打包格式,兼容原版 ICN/SHK/M82 等二进制格式
image_tool / image_palette:自定义图像加载与调色板处理,支持高清材质包(HotA等)
h2d_file:2D 动画数据文件解析(.h2d 格式)
smk_decoder:Smacker 视频解码
多平台支持
- SDL2 跨平台抽象层(window/input/audio)
- CMake + 多 Makefile(.vs2019/.emscripten/.switch/.vita)针对各平台定制
- Android/iOS:移动触控优化 UI
- 资源与代码完全分离:需原版 HoMM II 游戏数据(需合法购买)
国际化
translations.cpp 多语言系统
- 文档化翻译贡献流程(docs/TRANSLATION.md)
AI 子系统(ai/)
- 独立 AI 模块,与游戏逻辑解耦
- 城池建造 AI、英雄行动 AI、战斗 AI 等分层设计
玩法特点
- 完整 HoMM II 重现:回合制战棋策略,世界地图探索,城堡建设,部队战斗,战役模式
- 高清分辨率支持:突破原版 800x600 限制
- 改进的 AI:相比原版更聪明,战斗算法优化
- 用户界面增强:自适应按钮大小,键盘快捷键可自定义,多语言
- 即时战斗模式:可跳过战斗动画
- 编辑器支持:内置地图编辑器(editor/)
对公司 AI 游戏的参考价值