本页目录

Dash:D 语言开源 3D 游戏引擎

Dash · Circular-Studios/Dash

Dash 是 Circular-Studios 开发的免费开源 3D 游戏引擎,使用 D 语言编写。README 指向官方文档、ddoc API 文档、Gitter 聊天室与 Travis CI 构建状态,并提示开发者先了解 YAML 与 D 语言;希望参与引擎开发的人可参考 CONTRIBUTING.md...

RPG 多人对战 自研引擎 C++ 背包系统 存档系统 游戏状态管理 网络联机 高级
★ Stars 72 Forks 52 License MIT 更新 2026-11-05

国内开发环境适配

Windows
未知
Linux
官方声明支持
macOS
未知
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
构建需从 git 检出或 make dist 包,GitHub 自动源码包不可用;依赖 g++ 13+、glibc 2.27+、Python 3.6+。国内访问 GitHub 镜像可能较慢,建议使用镜像或代理;Google Test 子模块需单独拉取。

中文项目介绍

The Mana World Athena(简称 tmwa)是 MMORPG《The Mana World》当前正在运行的服务端程序。它使用 C++ 编写,通信协议源自名为“Athena”的项目——2004 年,它从《仙境传说》克隆项目 eAthena 分支而来,经过多年演进,成为支撑《The Mana World》游戏世界的核心服务端。

本仓库是官方 Git 仓库(git.themanaworld.org)的镜像。如果你希望参与贡献,README 建议先阅读官方 wiki 上的开发指南,其中提供了详细的入门说明。

需要特别注意的是:不能使用 GitHub 自动生成的源码包(tarball)进行构建。构建必须基于 git 检出(git checkout)或通过 make dist 生成的发布包,因为构建过程依赖 git 标签来确定版本号。

技术架构分析

如何构建(CMake)

配置

运行 cmake -S . -B build,在名为 build 的目录中生成可用的构建文件。默认的 Linux 安装位置是 $HOME/.local,可以通过在命令行定义 CMAKE_INSTALL_PREFIX 来修改,例如:cmake -S . -B build -DCMAKE_INSTALL_PREFIX=<dirname>。

编译

运行 cmake --build build,使用 build 目录编译各个二进制文件。

构建测试

要运行测试,需确保 Google Test 可用(它在此仓库中作为子模块引入)。然后依次执行以下命令来配置、构建并运行测试:

cmake -D TMWA_BUILD_TESTS=ON -S . -B build
cmake --build build
cmake --build build -t test

请注意,测试覆盖率目前尚不完整。

安装

运行 cmake --install build,使用 build 目录安装编译好的二进制文件。如果你指定的安装目录位于 $HOME 之外,可能需要 sudo 权限。

补充说明

面向发行版的说明

README 为发行版打包者提供了若干注意事项:

  • 构建系统目前处于过渡状态,建议优先使用 CMake;原有的 attoconf 构建系统已被弃用。
  • 请调整 CMakeLists.txt 中的 VENDOR_NAME、VENDOR_POINT 和 VENDOR_SOURCE,以标明二进制文件的来源。
  • 由于构建需要读取最新的 git 标签来确定版本,必须从 git 检出构建。

平台依赖

  • 服务端在 linux/amd64 上得到积极测试与维护。
  • 其他平台未获主动支持,但大多数现代平台很可能可以正常工作。

构建依赖

  • Python:需要 3.6 及以上版本,并以 python3 的名字位于 $PATH 中。
  • 编译器:g++ 13 或更高版本;glibc 2.27 或更高版本。clang++ 未获支持,但很可能可以工作。

安装内容与服务器组件

上述安装流程会安装 4 个二进制程序,以及库、头文件、配置文件和调试文件。这些程序通常运行在同一台机器上,但也可以配置为在快速局域网中的不同机器上运行。请注意,程序之间的内部协议可能随时变更而不另行通知,因此务必同时升级它们。

  • tmwa-admin:原名 ladmin(“local”)。该工具用于维护服务端的平面文件“数据库”,它连接到 tmwa-login 来执行更改。
  • tmwa-login:原名 login-server。该服务器负责账户校验,并接受来自 tmwa-admin 和 tmwa-char 的内部连接。
  • tmwa-char:原名 char-server。该服务器负责角色持久化,连接到 tmwa-login,并接受来自 tmwa-map 的连接。多个 tmwa-char 实例可以连接到同一个 tmwa-login;在这种情况下,客户端在离开登录服务器前会看到世界选择界面。《The Mana World》有时会运行一个测试用的 tmwa-char 服务器并连接到主 tmwa-login,以便于访问。
  • tmwa-map:原名 map-server。该服务器连接到 tmwa-char。多个 tmwa-map 实例可以连接到同一个 tmwa-char,当客户端移动到由不同地图服务器处理的地图时,可以切换服务器。不过,《The Mana World》尚未使用这一特性,它可能无法正常工作。

运行服务器

要运行服务器,你需要一整套完整的内容,包括配置文件、游戏脚本、存档文件以及客户端更新。README 强烈建议搭建一个 Web 服务器来提供更新。你可以在 https://git.themanaworld.org/tmw/serverdata 找到兼容的服务端数据。更多信息请遵循 wiki 上的“How to Develop”文章。

开源许可证与版权说明

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

相似项目