本页目录

EntityJS:HTML5 实体组件游戏引擎

EntityJS · bendangelo/EntityJS

EntityJS 是一个基于 JavaScript 的 HTML5 游戏引擎,采用实体-组件(entity-component)设计,目标是让游戏逻辑更灵活、减少重复代码与紧耦合的类层级。仓库 README 说明当前正在重写:0.5.0 版将从 Ruby 迁移为 Node.js 包,引擎本身也...

RPG SDL 自研引擎 C++ 存档系统 游戏状态管理 音频系统 UI 系统 高级
★ Stars 1,116 Forks 160 License 未明确 更新 2026-11-07

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:SDL 暂无中文教程标记 未标记站长实测
依赖较多(Boost、GLM、FreeType、OpenAL Soft、SDL、libepoxy/GLEW、Qt 等),国内从源码构建时建议使用系统包管理器或镜像源获取依赖;git 检出构建还需 Inkscape/ImageMagick/OptiPNG,可改用官方预构建图标数据规避。游戏数据文件需自行获取,具体获取渠道与网络可用性待核验。

中文项目介绍

ArxLibertatis 是经典第一人称角色扮演游戏《Arx Fatalis》的跨平台移植项目。它并非从零重写的复刻,而是基于 Arkane Studios 公开发布的原作源代码构建,目标是在现代系统上让这款地牢探索与沉浸式模拟风格的作品继续可玩、可维护。

项目以 GPLv3+ 为主许可,并附带若干附加条款,具体授权细节需查阅仓库中的 COPYING 与 LICENSE 文件。README 同时给出了官方站点、Bug 追踪器、IRC 频道、Wiki 与 Reddit 社区入口,说明这是一个有持续维护与社区协作的开源移植工程。

需要注意的是,ArxLibertatis 只提供游戏引擎与工具,不包含游戏素材。玩家需要自行获取《Arx Fatalis》的完整版或试玩版数据文件,才能实际运行游戏。

技术架构分析

技术要点

项目使用 C++17 编写,对编译器的最低要求为 GCC 7+、Clang 5+ 或 MSVC 19.15+(Visual Studio 2017 15.8+)。构建系统为 CMake 3.12+,仅在编译期使用。

核心依赖包括:

  • zlib:压缩数据处理
  • Boost 1.58+:仅需头文件;在不具备 Win32 或 POSIX 文件系统支持的系统上,还需 Boost 的 filesystem 与 system 库
  • GLM 0.9.9.7+:数学库
  • FreeType 2.3.0+:字体渲染
  • OpenAL 1.1+:音频输出,README 强烈推荐使用 OpenAL Soft
  • iconutil 或 icnsutil:仅 macOS 构建需要

渲染方面,当前只有单一的 OpenGL 后端,依赖 SDL 1.2.10+ 或 2.0.0+、OpenGL 1.5+(推荐 2.1 或更新),以及 libepoxy 1.2+(推荐)或 GLEW 1.5.2+。若使用 OpenGL ES-CM 1.x,则必须搭配 libepoxy。

项目还附带一个可选的图形化崩溃报告器,其额外依赖为 Qt 4.7+/5/6(QtCore、QtConcurrent、QtGui、QtWidgets)、libcurl 7.20.0+(Windows 上不需要)、GDB(仅 Linux,可选,运行时依赖)以及 DbgHelp(仅 Windows)。崩溃报告器的主要价值在于崩溃时生成并提交详细回溯信息,非 Windows 平台借助 GDB 完成这一工作。

构建测试需要 CppUnit。若直接从 git 检出构建,还需 Inkscape、ImageMagick 与 OptiPNG 来渲染和缩放 SVG 图标;发布版与开发快照的源码包已内置预构建图标,无需这些工具。也可以从官方文件站或 ArxLibertatisData 仓库下载预构建图标,所需数据版本记录在 VERSION 文件中,通过 DATA_FILES CMake 变量指定位置;或将 ICON_TYPE 设为 none 关闭图标。

构建与运行

在 Linux 上的基本流程为:

$ mkdir build && cd build
$ cmake ..
$ make

默认构建设置面向普通用户。若计划修改 ArxLibertatis 源码,建议在 cmake 命令后追加 -DDEVELOPER=1,以启用测试、调试检查与快速增量构建。需要系统级安装时以 root 执行 make install;也可以直接指定 build 目录中 arx 二进制的完整路径运行。

Windows 的依赖配置相对繁琐,README 指向 ArxWindows 仓库提供的预构建依赖,以及 Wiki 上的详细说明。

常用构建选项包括:

  • BUILD_TOOLS(默认 ON):构建工具
  • BUILD_TOOLS_MERGED(默认 ON):将工具合并为单一二进制
  • BUILD_IO_LIBRARY(默认 ON):构建 Blender 插件所需的辅助库
  • BUILD_CRASHHANDLER(默认 ON,macOS 默认 OFF):启用内置崩溃处理器
  • BUILD_CRASHREPORTER(默认 ON,macOS 默认 OFF):构建 Qt 崩溃报告器 GUI
  • BUILD_PROFILER(默认 OFF):构建性能分析器 GUI
  • BUILD_TESTS(默认 OFF):构建可通过 make check 运行的测试
  • UNITY_BUILD(默认 ON):联合构建,速度更快、优化更好,但无增量构建
  • CMAKE_BUILD_TYPE(默认 Release):设为 Debug 可获得调试二进制
  • DEBUG、DEBUG_GL、DEBUG_EXTRA:调试输出与运行时检查相关开关
  • DEVELOPER(默认 OFF):启用适合开发者的构建选项组合

选项通过 -D<option>=<value> 传给 cmake。不可用的后端会被默认禁用,cmake 运行结束时会打印已启用后端的摘要。更多高级选项记录在 OPTIONS.md 中。

数据文件、配置与存档的位置随操作系统而异。Unix 类系统首次运行时会尝试将用户目录(不含数据目录)中的相关文件名转为小写;大小写敏感文件系统上的系统级安装需手动改名。可用 arx --list-dirs 打印所有搜索目录。Windows 上用户与配置目录位于「我的文档/我的游戏」或「保存的游戏」下的 Arx Libertatis 文件夹,数据目录由注册表键指定;macOS 上用户与配置目录为 ~/Library/Application Support/ArxLibertatis/,数据目录为 /Applications/ArxLibertatis/;Linux 上用户目录为 ~/.local/share/arx/,配置目录为 ~/.config/arx/,数据目录包括 /usr/share/games/arx/ 等。若想便携式安装,可运行 arx --no-data-dir --user-dir=. --config-dir=.。

数据文件就位后,直接运行 arx 即可开始游戏,更多细节见 arx --help 与 man arx。

补充说明

工具与脚本

仓库附带若干实用工具:

  • arxunpak:解包包含游戏资源的 .pak 文件,支持指定单个或多个 pak 文件,也支持 --all 解包全部资源
  • arxsavetool:存档处理工具,提供 extract(导出存档内容)、add(向存档添加文件,必要时创建)、fix(修复旧版本构建造成的存档问题)、view(打印存档信息)等子命令

arx-install-data 脚本可在 Linux 与 FreeBSD 上从 CD、试玩版、GOG.com 安装器或任意《Arx Fatalis》安装(例如 Steam)中提取并安装游戏数据,默认提供 GUI 对话框,也可用 --cli 走命令行界面,--help 查看全部选项与所需工具。

开源许可证与版权说明

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

相似项目