无尽太空(Endless Sky):2D 沙盒太空探索与贸易战斗游戏
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
EntityJS · bendangelo/EntityJS
EntityJS 是一个基于 JavaScript 的 HTML5 游戏引擎,采用实体-组件(entity-component)设计,目标是让游戏逻辑更灵活、减少重复代码与紧耦合的类层级。仓库 README 说明当前正在重写:0.5.0 版将从 Ruby 迁移为 Node.js 包,引擎本身也...
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+,仅在编译期使用。
核心依赖包括:
filesystem 与 system 库渲染方面,当前只有单一的 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 崩溃报告器 GUIBUILD_PROFILER(默认 OFF):构建性能分析器 GUIBUILD_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 查看全部选项与所需工具。
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
该项目用 C 语言维护《Aliens versus Predator》(1999)可获得的游戏源码,...