OpenEnroth · OpenEnroth/OpenEnroth
OpenEnroth 是用 C++ 编写的《魔法门》第六至第八代游戏引擎开源重实现,目标是在现代平台运行原作,需自备游戏数据。目前仅《魔法门7》可玩,MM6、MM8 支持尚在计划中;支持 Windows、Linux、macOS,Android 为实验性;官方仅提供可能含...
Standard of Iron 是一款以第二次布匿战争为背景的开源单机即时战略游戏,但它并非对历史战役的简单复刻:罗马与迦太基在一条被改写的历史线上交战,玩家还要面对在战役进程中逐渐集结的“铁墓”势力。游戏把大规模阵型指挥与单名指挥官的近战操作放进同一场战斗,玩家既能以俯视视角调度整支部队,也能在战况胶着时切换到指挥官直接参战。当前版本为 v0.3.0,代码采用 MIT 许可证,项目明确处于 1.0 之前,因此存档与数据格式虽有版本化与迁移/恢复机制,但不应被当作永久固定的外部文件格式契约。
战斗层面,玩家可以选中单兵或编组,下达移动、攻击、巡逻、守卫、坚守等指令,并依据国家 doctrine、兵种角色、地形和战场意图部署阵型。可用的兵种覆盖步兵、弓手、骑兵、治疗者、建造者、指挥官、攻城器械、战象、平民与野生动物;攻城时能攻击城墙、城门、塔楼和可占领建筑,投射物、火焰、士气与近战接触都会改变战场态势。直接控制指挥官时,游戏提供预设近战动作,以及格挡、闪避、锁定、技能和部分配置下的远程战斗;即使玩家正在操控指挥官,部队指令仍会继续执行。
定居点经济是另一条贯穿战役的线。建造者采集木材、石头、铁和食物,并把收获物运回兵营的库存点后才会入账;农场生产谷物,绵羊提供另一种食物来源。住宅招募平民,平民输送人力,军事建筑则消耗储备与资源来征募部队。建造者负责修建和修复建筑、城墙与城门,市集提供交易功能。存档系统包含快速存档、手动存档、自动存档、预览图、战役进度、压缩、校验和、模式迁移与数据库恢复等机制,相关设计在仓库文档中有专门说明。
单人内容由教程与战役构成。教程“Field Training”覆盖指令、经济、建造、军队与防御;战役“The Barcid Road”包含八关,从渡过罗讷河、翻越阿尔卑斯山,到提契诺河、特雷比亚河、特拉西梅诺湖、坎尼、坎帕尼亚警戒,最终抵达扎马。任务采用数据驱动的目标、波次、指挥官规则、地图区域、奖励与失败条件;难度分为 Easy、Normal、Hard 与 Brutal,主要改变敌方资源、部队和增援数量,而不改变其战术逻辑。
技术实现上,项目使用 C++20、Qt 6.4 或更新版本,以及自研的分层 OpenGL 渲染器。它的模拟内核与表现层分离,因此实时游戏、无头模拟、确定性回放验证、平衡工具和开发者场景可以共用同一套玩法系统。回放记录命令流和周期性的世界摘要;验证回放时会排除本地输入与 AI 命令生成,一旦检测到模拟分歧便以非零状态退出。仓库还提供 soi_headless 无窗口模拟工具和 battlefield_gameplay_verifier 确定性场景检查工具。
发布与平台方面,README 列出 Linux、macOS 和 Windows。Linux 构建产出 x86-64 AppImage;macOS 工作流根据已安装 Qt 框架的架构设置 CMAKE_OSX_ARCHITECTURES,并用 lipo 检查实际二进制切片,包标签可能是 universal、arm64 或 x86_64;Windows 构建产出 x64 ZIP,并在配置证书时进行签名。发布包会写入 SHA-256 校验文件,并在发布前运行打包游戏自测;macOS 还涉及 ad-hoc 签名、Developer ID 签名、公证与 stapling 流程。界面提供八种语言翻译目录,阿拉伯语支持从右到左布局;设置中可调整界面缩放、减少动态效果、摄像机运动与边缘滚动,以及色觉调色板和带图案的队伍环。
对学习者而言,这个项目适合观察大型 C++/Qt 应用的模块划分、模拟与表现分离、确定性回放、存档模式迁移、任务数据驱动设计以及跨平台打包流程。需要注意的是,它当前没有接入网络多人模式, shipped 应用是单机游戏;项目仍处于 0.x 阶段,版本升级可能带来格式变化。构建前需准备 C++20 工具链、CMake、Qt 6.4+ 与可用的 OpenGL 环境,具体依赖版本和平台细节应以仓库文档与实际构建脚本为准。
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...