本页目录

Atomic 游戏引擎(多平台 2D/3D,C++/C#/JS/TS)

AtomicGameEngine · AtomicGameEngine/AtomicGameEngine

Atomic Game Engine 是一个多平台 2D/3D 游戏引擎,主体用 C++ 编写,并在 C++、C#、JavaScript、TypeScript 中提供一致的 API,覆盖 Windows、macOS、Linux、Android、iOS 与 WebGL。项目包含编辑器,支持 Monaco、VSCode、Atom 及 Visu...

射击 多人对战 SDL 自研引擎 C 游戏状态管理 网络联机 音频系统 UI 系统 高级
★ Stars 2,866 Forks 630 License 未明确 更新 2026-11-06

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:SDL 暂无中文教程标记 未标记站长实测
依赖 CMake 与 SDL2 等开发包,国内可通过镜像配置包管理器;Emscripten 与部分内部库下载可能受网络影响,建议预先配置代理或镜像,具体待核验。

中文项目介绍

i oquake3 是社区维护的 Quake III Arena 引擎项目,目标是为《Quake 3: Arena》《Team Arena》以及各类模组提供一个可以继续开发的基础引擎。README 明确指出,项目意图是提供一份“基线引擎”(baseline engine),既可用于游玩原版游戏与模组,也可作为后续开发的起点。

需要区分的是:Quake 3 的游戏源代码以 GPLv2 发布,但游戏数据(地图、素材等)并不免费。README 特别提醒,若想游玩《Quake 3: Arena》或资料片《Team Arena》,仍需自行购买游戏副本。项目官网提供了购买与支持项目的链接。

源码托管在 GitHub 的 ioquake/ioq3 仓库;README 也提醒,如果你看到的不是这个地址,那它就不是 ioquake3,而是别人的项目。原始 id Software 随 Q3 源码发布的自述文件已被重命名为 id-readme.txt,以免混淆。

核心功能

核心特性

README 列出的主要已实现特性包括:

  • CMake 元构建系统,统一多平台构建流程
  • SDL 2 后端
  • OpenAL 声音 API 支持,支持多扬声器与更好的音质
  • Linux 下完整的 x86_64 支持
  • VoIP 支持,既可在游戏内使用,也可通过 Mumble 提供外部支持
  • Windows 上的 MinGW 编译支持
  • 对 demo 进行 AVI 视频录制
  • 大幅改进的控制台自动补全
  • 持久化控制台历史
  • 彩色终端输出
  • 可选的 Ogg Vorbis 支持
  • 改进的 QVM 工具
  • 对多种小众操作系统的支持
  • cl_guid 支持
  • Web 服务器下载重定向
  • Windows 多用户支持(用户专属游戏数据存放于 %APPDATA%\Quake3)
  • PNG 支持
  • 通过 Emscripten 提供 Web 支持
  • 使用 con_scale 缩放控制台
  • 大量缺陷修复

README 同时说明,地图编辑器及相关编译工具并不包含在内,建议使用来自 icculus.org/gtkradiant/ 的现代版本。

技术架构分析

技术要点

渲染与图形

默认的 opengl2 渲染器支持 OpenGL ES 2+,但 README 坦言仍有许多缺失特性,性能对嵌入式 SoC 与移动平台而言可能不足。opengl1 渲染器不支持 OpenGL ES。opengl2 渲染器会同时尝试 OpenGL 与 OpenGL ES API,由 cvar r_preferOpenGLES 控制优先顺序:-1 为自动(默认),0 为 OpenGL,1 为 OpenGL ES。README 给出的示例是在命令行中设置:

ioquake3 +set cl_renderer opengl2 +set r_preferOpenGLES 1

文件系统布局

与原版相比,用户配置与数据文件存放在更现代的位置。若想改变行为,可在命令行加入 +set fs_homepath <path> 指定路径。README 列出的默认位置为:

  • Windows:C:\Users\<username>\AppData\Roaming\Quake3
  • macOS:/Users/<username>/Library/Application Support/Quake3
  • Linux:配置文件在 /home/<username>/.config/Quake3,数据文件(pk3 等)在 /home/<username>/.local/share/Quake3,其他内部运行时文件在 /home/<username>/.local/state/Quake3

这些目录对应 Free Desktop XDG Base Directory 规范。原版使用的 /home/.q3a 若存在仍会被使用,但会提示是否迁移到上述位置。

控制台与新增 cvar

README 用较大篇幅列出新增 cvar,例如 cl_autoRecordDemo(每次换图录制新 demo)、cl_aviFrameRate(录制视频的帧率)、cl_aviMotionJpeg(录制视频时使用 mjpeg 编码)、cl_guidServerUniq(让 cl_guid 对每个服务器唯一)、cl_cURLLib(非 Windows 下加载的 cURL 库文件名)、cl_consoleKeys(切换控制台的按键列表)、cl_mouseAccelStyle 与 cl_mouseAccelOffset(鼠标加速行为与曲线调校)、con_autochat、con_autoclear、con_scale、con_notifylines,以及摇杆相关的 in_joystickUseAnalog、j_forward、j_side、j_up、j_pitch、j_yaw 等。

构建与运行

README 强调,所有平台若想游玩原版游戏或资料片,仍需购买游戏副本。

类 Unix 系统

  1. git clone git://github.com/ioquake/ioq3.git
  2. cd ioq3
  3. 按操作系统说明安装依赖;apt 系可执行 sudo apt install cmake libsdl2-dev
  4. cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
  5. cmake --build build
  6. 产物位于 build 目录

安装时先设置 CMAKE_INSTALL_PREFIX(默认 /opt/quake3/),再执行 cmake --install build。

Windows

安装 Visual Studio Community 版与 CMake,克隆仓库后可用 Visual Studio 选择 CMakeLists.txt 构建,或使用命令行:cmake -S . -B build -G "Visual Studio 17 2022",再执行 cmake --build build --config Release。

macOS

安装 XCode 与 CMake(可通过 homebrew),克隆后执行与类 Unix 相同的 cmake 命令,最后把 /build/ 中生成的 ioquake3.app 复制到 /Applications/ioquake3。

Emscripten(Web)

按 Emscripten SDK 说明安装并配置环境,使用 emcmake cmake -S . -B build -DCMAKE_BUILD_TYPE=Release 与 cmake --build build 构建;将 baseq3 的 pk3 文件复制或软链到 build/Release/baseq3,只有 client-config.json 中列出的游戏文件会被加载;启动一个静态 Web 服务器(如 python3 -m http.server),在浏览器打开 http://localhost:8000/build/Release/ioquake3.html,可通过开发者控制台查看错误与警告,README 还提到可用 Chrome 扩展调试 C 代码。

常用 CMake 变量

README 列出可用 -D 设置的变量,包括 BUILD_SERVER、BUILD_CLIENT、BUILD_RENDERER_OPENGL1、BUILD_RENDERER_OPENGL2、BUILD_GAME_LIBRARIES、BUILD_GAME_QVMS、BUILD_STANDALONE,以及 USE_RENDERER_DLOPEN、USE_OPENAL、USE_OPENAL_DLOPEN、USE_HTTP、USE_CODEC_VORBIS、USE_CODEC_OPUS、USE_MUMBLE、USE_VOIP、USE_FREETYPE、USE_INTERNAL_LIBS、USE_INTERNAL_SDL、USE_INTERNAL_ZLIB、USE_INTERNAL_JPEG、USE_INTERNAL_OGG、USE_INTERNAL_VORBIS、USE_INTERNAL_OPUS、EMSCRIPTEN_PRELOAD_FILE、CMAKE_BUILD_TYPE 等。默认值可能因目标平台而异。

补充说明

学习建议

ioquake3 是一份成熟的 C 语言 3D 射击游戏引擎代码库,适合希望理解 Quake 系列引擎架构、网络联机、渲染后端与跨平台构建的读者。建议先从 CMake 构建入手,跑通客户端与专用服务器,再结合控制台 cvar 与命令观察运行时行为;若关注 Web 方向,可尝试 Emscripten 构建路径。注意游戏数据需自行合法获取,仓库本身不包含可游玩内容。

开源许可证与版权说明

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

相似项目