本页目录

Chessmata:面向人类与 AI 代理的多人在线国际象棋平台

chessmata · metavert-io/chessmata

Chessmata 是一个面向人类和 AI 代理的多人在线国际象棋平台,提供命令行客户端、兼容 UCI 的引擎支持、用于代理工作流的 MCP 服务器、REST API,以及浏览器端 3D 对局前端。项目主要使用 TypeScript,仓库主题还涉及 Go、React、Three.j...

动作游戏 RPG 自研引擎 C++ 角色控制 背包系统 关卡管理 游戏状态管理 高级
★ Stars 2,170 Forks 200 License MIT 更新 2026-11-03

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
AI 推断/待核验
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
构建依赖 CMake 与 hunter,首次配置会下载第三方依赖,国内网络可能较慢或需要配置代理/镜像;运行必须自备原版 1.09 数据文件(DIABDAT.MPQ、Diablo.exe),仓库不提供。项目已归档,依赖与构建脚本较旧,建议在隔离环境尝试;具体可用性待核验。

中文项目介绍

freeablo 是一个用 C++ 从零重写《暗黑破坏神1》(Diablo 1)所用游戏引擎的开源项目。需要先明确的一点是:它提供的是“引擎”,而不是一份可以直接双击就玩的完整游戏。仓库本身不附带任何暴雪的美术、音效或关卡数据,玩家必须自备正版《暗黑破坏神1》安装目录里的 DIABDAT.MPQ 与 Diablo.exe,并把这两个文件复制到 freeablo 可执行文件所在的同一文件夹中,引擎才能读取资源并启动。README 还特别注明目前仅支持 1.09 版本的游戏数据,因此使用前需要先把原版游戏打补丁到该版本。这种“引擎与数据分离”的做法在开源复刻社区里相当常见,好处是项目只需专注于代码与逻辑,不必触碰受版权保护的素材。

按照 README 的自述,freeablo 目前能做的事情包括:在城镇中自由走动,玩家角色与 NPC 会播放动画,可以进入地牢并在其中与怪物战斗——战斗以近战为主,远程与魔法只做了有限度的支持;怪物被击杀后会掉落战利品,玩家能够在商店买卖物品,此外还有一些零散的功能。作者本人在 README 里坦率地表示,这“到目前为止只是一个游戏的基础框架”,距离完整还原原作的技能树、任务、法术体系、多人联机等还有很大差距。换言之,它更像一个可以跑通“移动—探索—战斗—拾取—交易”核心循环的技术骨架,而不是一个可通关的成品。

核心功能

核心特性

操作层面,freeablo 刻意贴近原作的鼠标操作手感:用鼠标点击地面行走,点击门可以开门;PgUp 与 PgDn 用于在地牢各层之间上下移动;ESC 打开暂停菜单;F10 切换纹理过滤,F11 切换调试网格,滚轮用于缩放视野。README 说明这些按键“将来某个时候会做成可配置的”,这也从侧面反映出项目在输入与设置系统上仍处于早期阶段。调试网格、纹理过滤开关这类功能的暴露,说明代码里保留了开发者自用的可视化调试手段,对研究渲染与地图对齐的人有一定参考价值。

构建方式上,freeablo 使用 CMake,并借助一个名为 hunter 的 C++ 包管理器来拉取第三方依赖。理论上只要像普通 CMake 工程那样配置、生成、编译即可;但在首次运行 cmake 时,多个第三方库会被下载并现场编译,耗时较长,编译产物之后会缓存在用户主目录下的 ~/.hunter(Windows 上是 C:.hunter),因此这份开销通常只需付出一次。除了自行编译,也可以直接从 GitHub Releases 页面下载对应平台的预编译二进制。持续集成方面,项目历史上使用 Travis CI(对应 Linux 构建)与 AppVeyor(对应 Windows 构建)两套流水线,说明 Linux 与 Windows 是实际被验证过的目标平台;README 自称“跨平台”,但并未逐一点名 macOS。

技术架构分析

技术要点

社区与文档方面,仓库里有一份 decisions.md,记录了项目生命周期内做出的一系列重要技术决策,对于理解“为什么这样设计”很有一读的价值;另有 changelog.md 记录版本变更。开发者还开了一个 Gitter 聊天室用于交流,问题反馈与功能请求走 GitHub issue tracker,贡献代码则通过 pull request 提交。作者提到自己此前参与过 OpenMW(一个《晨风》的开源重实现项目),因此 freeablo 直接沿用了 OpenMW 的编码规范,这一点对想提交 PR 的人是个明确的指引。项目还曾有一个官网 freeablo.org。

需要提醒的是,这个仓库已经被作者归档,README 开头只有一句“项目已归档”,并链接到 issue #507 说明原因,因此它不再接受新功能开发,也不会再修复问题。对学习者而言,它仍然是一个不错的 C++ 游戏引擎阅读样本:可以观察一个自研引擎如何组织主循环、资源加载、精灵动画、地图与地牢层级切换、物品与商店逻辑,以及如何用 CMake + 包管理器管理跨平台依赖。但也要预期到实际动手的门槛——需要自备正版游戏数据,需要处理老项目在较新编译器与系统上的构建兼容问题(尤其是包管理器拉取的第三方库版本),以及面对一个功能只完成了一部分的代码库。如果目标是“玩到完整暗黑破坏神1”,它并不合适;如果目标是“看一个真实项目的引擎骨架”,它值得一读。

开源许可证与版权说明

许可证标识:MIT。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目