open-sourcertswarcraftstratagus-enginere-implementationclassic-rts type: concept 创建: 2026-04-10 更新: 2026-04-10
War1gus
Warcraft: Orcs & Humans 重实现,基于 Stratagus 引擎
基本信息
核心技术点
Stratagus 引擎架构
- War1gus 不是独立引擎,而是 Stratagus(RTS 通用引擎)的游戏实例配置
- Stratagus 是纯 C++ RTS 引擎,支持 Lua 脚本驱动游戏数据
- 游戏逻辑完全由
scripts/*.lua 驱动(Chips/Units/Buildings/Actions 等)
war1tool — 数据提取与转换工具
- war1tool.cpp (4059 LOC):核心工具,负责从原版 Warcraft CD 提取游戏数据并转换格式
- 支持战役脚本
.sms 格式解析
- xmi2mid.cpp (414 LOC):MIDI 音乐格式转换(XMI → MIDI)
- scale2x.cpp (291 LOC):像素图形 2x/3x/4x 无损放大算法(用于高清渲染)
Lua 脚本层
scripts/buildings.lua — 建筑属性定义
scripts/ai.lua — AI 对手行为
scripts/commands.lua — 单位命令定义
scripts/balancing.lua — 平衡性参数
scripts/keystrokes.lua — 键盘快捷键
scripts/editor.lua — 内置地图编辑器
数据驱动设计
- 全部游戏内容(Warcraft 原有数据)存储在
campaigns/(.sms 战役脚本 + .lua 配置)和 maps/ 目录
- 战役支持 Human(人类)和 Orc(兽人)两个种族,每个种族独立战役数据
- 需要原版 Warcraft 游戏数据文件才能运行(不包含版权素材)
玩法特点
- 忠实还原 Warcraft: Orcs & Humans(RTS 开山之作,1994)
- 在 Stratagus 引擎加持下获得现代功能:编队命名、大规模选中、地图编辑器、多人模式扩展阵营
- 战役模式:各 12 关人类/兽人两条线
对公司 AI 游戏的参考价值
| 方向 |
启示 |
| 数据与引擎分离 |
war1tool 提取工具 + Stratagus 引擎 + Lua 配置三层分离,资产可复用 |
| 经典游戏重实现 |
Stratagus 引擎证明通用 RTS 引擎可承载多款经典游戏复刻,降低重实现成本 |
| Lua 配置驱动 |
Lua 脚本层完全解耦游戏数据与引擎代码,mod 友好,与 openra 的 YAML 规则配置异曲同工 |
| 战役系统 |
双阵营独立 lua 脚本配置,可作为 AI 对手行为研究的干净起点 |
相关页面