本页目录

DDraceNetwork(DDNet)——免费合作闯关 2D 平台跳跃游戏

ddnet · ddnet/ddnet

DDNet 是 Teeworlds 的一个模组,源自 DDRace,是一款免费的合作型 2D 平台跳跃游戏。项目使用 C++ 编写,采用 OpenGL/Vulkan 渲染,支持 Windows、Linux、macOS。README 提供了编译指南、调试指南、源码文档与代码浏览器,并提供官网和...

动作游戏 平台跳跃 多人对战 自研引擎 C++ 角色控制 跳跃与重力 碰撞检测 物理系统 高级
★ Stars 861 Forks 718 License 未明确 更新 2026-11-11

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
国内编译时可能遇到依赖下载慢的问题,建议使用国内镜像源配置 apt/brew 等包管理器;Rust 工具链可通过 rustup 设置国内镜像加速;克隆仓库时若网络不畅可尝试使用代理或镜像站。

中文项目介绍

DDraceNetwork(简称 DDNet)是 Teeworlds 的一个模组,源自 DDRace,是一款免费的合作型 2D 平台跳跃游戏。项目使用 C++ 编写,采用 OpenGL/Vulkan 渲染,支持 Windows、Linux、macOS。README 提供了编译指南、调试指南、源码文档与代码浏览器,并提供官网和 Steam 获取发行版的渠道。

DDNet 的开发讨论在 Quakenet 的 #ddnet 频道或 Discord 开发者频道进行。你可以从 DDNet 官网下载二进制发行版,或在 Steam 上找到它,也可以从软件仓库安装。

  • 代码浏览器:https://ddnet.org/codebrowser/DDNet/
  • 源码文档:https://codedoc.ddnet.org/
  • 构建指南:docs/BUILDING.md
  • 调试指南:docs/DEBUGGING.md
  • 贡献指南:docs/CONTRIBUTING.md

如果你想了解源代码,可以查看 wiki 上的 Development 文章。

技术架构分析

技术要点

DDNet 使用 C++ 开发,依赖多个库,包括 SDL2、OpenGL、Vulkan、FFmpeg、Opus、SQLite 等。项目使用 CMake 构建,支持 Ninja 生成器。官方构建的捆绑库放在 ddnet-libs 子模块中。

渲染方面,DDNet 支持 OpenGL 和 Vulkan 后端,Vulkan 默认禁用,需要在编译时启用。项目还使用了预编译头文件(PCH)来加速编译,默认对常见系统头文件启用,在 CI 的 Ubuntu 22.04 构建中会禁用预编译头以确保不会因为忘记包含头文件而破坏编译。

DDNet 需要 Rust 编译器(rustc 1.85.0 及以上)作为构建依赖,用于某些组件。在 Linux 上,可以通过 rustup 安装合适版本的 Rust。

构建与运行

克隆仓库

根据是否需要外部库和历史记录,可以选择不同的克隆方式:

  • 包含外部库、无历史(约 700 MiB):git clone --depth 1 --recursive --shallow-submodules https://github.com/ddnet/ddnet
  • 系统已有必要库、无历史(约 150 MiB):git clone --depth 1 https://github.com/ddnet/ddnet
  • 包含外部库、完整历史(约 1 GiB):git clone --recursive https://github.com/ddnet/ddnet
  • 系统已有必要库、完整历史(约 450 MiB):git clone https://github.com/ddnet/ddnet
  • 从库移动到 ddnet-libs 之后的提交开始克隆(约 250 MiB):git clone --shallow-exclude=included-libs https://github.com/ddnet/ddnet

如果之前克隆时没有包含库,或者需要 ddnet-libs 的历史而不是浅克隆,可以运行:git submodule update --init --recursive

Linux / macOS 依赖

可以在系统上安装所需的库,然后 touch CMakeLists.txt,CMake 将默认使用系统范围的库。不同发行版的安装命令在 README 中有详细列出,例如 Debian/Ubuntu 使用 apt,CentOS/RedHat/AlmaLinux 使用 yum,Fedora 使用 dnf,Arch Linux 使用 pacman,Gentoo 使用 emerge,Void Linux 使用 xbps-install。macOS 可以使用 Homebrew 安装依赖。

如果不想使用系统库,可以给 cmake 传递 -DPREFER_BUNDLED_LIBS=ON 参数。

在 Linux 和 macOS 上构建

在源码根目录执行:

cmake -Bbuild -GNinja
cmake --build build

在 Windows 上使用 Visual Studio IDE 构建

下载并安装带有 C++ 支持的 Microsoft Visual Studio(写作时为 MSVS Community 2022)。还需要安装 Python 3 和 Rust。确保在安装程序中选择了 MSVC 构建工具、C++ CMake 工具和适合你 Windows 版本的最新 Windows SDK。打开项目文件夹,Visual Studio 应自动检测并使用 CMake 配置项目。在工具栏上“运行”按钮旁边,可以选择要启动的内容(例如 game-client 或 game-server)并构建。

在 Windows 上使用独立 MSVC 构建工具构建

首先需要安装 MSVC 构建工具、Python 3 和 Rust。如果要编译 Vulkan 图形后端(默认禁用),还需要安装 Vulkan SDK。使用你选择的 IDE(例如 Visual Studio Code)配合 CMake 集成,或使用 CMake GUI(已弃用)来配置和构建。如果使用 Visual Studio Code,可以使用 CMake Tools 扩展来配置和构建项目。

从仓库安装

  • Debian/Ubuntu:sudo apt-get install ddnet
  • macOS:brew install --cask ddnet
  • Fedora:sudo dnf install ddnet
  • Arch Linux:yay -S ddnet
  • FreeBSD:sudo pkg install DDNet
  • Windows (Scoop):scoop bucket add games 然后 scoop install games/ddnet

补充说明

调试与开发工具

DDNet 提供了详细的调试指南(docs/DEBUGGING.md)。此外,README 还介绍了如何更好地使用 Git Blame:建议使用 tig 等工具,或者使用 GitHub UI 的 Blame 功能。对于 tig,使用 tig blame path/to/file.cpp 打开 blame 视图,可以用方向键或 kj 导航,按逗号跳转到当前行的上一个修订,按 q 退出。还可以设置 git 忽略特定的格式化修订:git config blame.ignoreRevsFile formatting-revs.txt。

对于配置文件,DDNet 提供了 (Neo)Vim 语法高亮。将文件检测和语法文件复制到 vim 配置文件夹:

# vim
cp -R other/vim/* ~/.vim/

# neovim
cp -R other/vim/* ~/.config/nvim/

基准测试与数据库

基准测试的详细说明可以在 docs/BENCHMARKING.md 中找到。与官方 DDNet 数据库交互的详细说明可以在 docs/DATABASE.md 中找到。

学习建议

DDNet 是一个成熟的 C++ 游戏项目,适合学习以下内容:

  • 2D 平台跳跃游戏的物理与碰撞检测
  • 网络联机与多人合作机制
  • OpenGL/Vulkan 渲染后端集成
  • CMake 构建系统与跨平台编译
  • 大型 C++ 项目的代码组织与调试

建议从构建指南开始,成功编译并运行游戏后,再阅读源码文档和代码浏览器,逐步理解游戏逻辑与网络架构。

开源许可证与版权说明

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

相似项目