# OpenAWE：Remedy 的 Alan Wake 引擎的开源重新实现

> 以 C++ 和 OpenGL 重新实现 Remedy Entertainment 的 Alan Wake 引擎（后来称为 Northlight），目标是借助使用者自己的游戏数据，以可移植方式运行《心灵杀手》和《心灵杀手：美国梦魇》，并把《量子破碎》乃至《控制》列为后续目标。README 只介绍了一个用于在已加载游戏数据中移动的自由视角相机，《美国梦魇》的脚本函数表在 278 个原生函数中实现了 16 个。仓库还附带处理这些游戏的归档、纹理、Havok 和音频格式的命令行工具。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-19
- 收录于：2026-10-31
- 原始资源：<https://github.com/OpenAWE-Project/OpenAWE>
- 一手来源：<https://github.com/OpenAWE-Project/OpenAWE/blob/cce15d3bc289df31522d778fb8e99180e6752b58/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/openawe-alan-wake-engine-case/>
- 记录 JSON：<https://awesomerea.org/resources/openawe-alan-wake-engine-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/openawe-alan-wake-engine-case/index.md)

## 使用条件与局限

- 审阅版本为 2026-10-11 的 master 提交；仓库没有发布版或标签，CMake 中的版本为 0.0.1。README 说明了项目目标，但除键盘鼠标操作的自由视角相机外，没有介绍任何游戏玩法进度；游戏识别逻辑会以“尚不支持”拒绝《量子破碎》和《心灵杀手：重制版》。在所审的《美国梦魇》原生函数表中，278 个脚本函数只实现了 16 个，其余均为占位。
- OpenAWE 需用 -p 指定使用者自有的《心灵杀手》或《心灵杀手：美国梦魇》安装中的数据目录，并用 -s 指定构建时编译出的着色器。仓库不含游戏数据：归档测试使用的是小型合成字节数组，data/ 中只有一个带有项目 GPL 许可头的 XML 文件。
- 构建使用 CMake 3.21+ 和 C++20，需要 zlib、GLFW 3.4+、GLM、TinyXML2、OpenAL、Bullet、fmt 9+、Ogg、Theora、Vorbis 和 spdlog 的开发包，可选测试需要 GTest，EnTT 和 CLI11 可用子模块或系统版本，此外还需要 glslc 着色器编译器。CI 在 Linux 上用 GCC 和 Clang、在 Windows 上用 MSVC、在 Intel macOS 上用 Clang 构建。
- 每个 CI 任务都会用 ctest 运行 GoogleTest 单元测试，覆盖归档读取器、数据流、压缩、XML 与 TOML 解析以及几何工具，然后用 cpack 打包。没有测试读取游戏数据或与原版可执行文件对比行为；README 中的截图展示的是《美国梦魇》的一个场景。
- README 规定代码采用 GPL-3.0-or-later，3rdparty 中的库除外，这些库保留各自的许可证。Alan Wake 系列及其数据仍归权利人所有。

## 一手来源

1. <https://github.com/OpenAWE-Project/OpenAWE/blob/cce15d3bc289df31522d778fb8e99180e6752b58/README.md>
2. <https://github.com/OpenAWE-Project/OpenAWE/blob/cce15d3bc289df31522d778fb8e99180e6752b58/LICENSE>
3. <https://github.com/OpenAWE-Project/OpenAWE/blob/cce15d3bc289df31522d778fb8e99180e6752b58/CMakeLists.txt>
4. <https://github.com/OpenAWE-Project/OpenAWE/blob/cce15d3bc289df31522d778fb8e99180e6752b58/.gitmodules>
5. <https://github.com/OpenAWE-Project/OpenAWE/blob/cce15d3bc289df31522d778fb8e99180e6752b58/.github/workflows/main.yml>
6. <https://github.com/OpenAWE-Project/OpenAWE/blob/cce15d3bc289df31522d778fb8e99180e6752b58/src/game.cpp>
7. <https://github.com/OpenAWE-Project/OpenAWE/blob/cce15d3bc289df31522d778fb8e99180e6752b58/src/engines/awan/functions_table.cpp>
8. <https://github.com/OpenAWE-Project/OpenAWE/tree/cce15d3bc289df31522d778fb8e99180e6752b58/test>
9. <https://github.com/OpenAWE-Project/OpenAWE/tree/cce15d3bc289df31522d778fb8e99180e6752b58/tools>
10. <https://github.com/OpenAWE-Project/OpenAWE/blob/cce15d3bc289df31522d778fb8e99180e6752b58/data/male_player_class.xml>

## 同分区更多条目：游戏

- [OpenBattlefield2：尚未完成的 Refractor 2 引擎重实现](https://awesomerea.org/zh/resources/openbattlefield2-refractor-engine-case/index.md) · 案例
- [OpenDiablo2 暗黑破坏神 2 引擎](https://awesomerea.org/zh/resources/opendiablo2/index.md) · 案例
- [OpenLara《古墓丽影》开源引擎](https://awesomerea.org/zh/resources/openlara/index.md) · 案例
- [OpenLF2：Little Fighter 2 引擎重实现](https://awesomerea.org/zh/resources/openlf2-case/index.md) · 案例
- [OpenMW：复用原内容并替代 Morrowind 引擎](https://awesomerea.org/zh/resources/openmw-engine-case/index.md) · 案例
- [OpenRA：重新诠释早期 Westwood 即时战略游戏的引擎重新实现](https://awesomerea.org/zh/resources/openra-engine-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
