本项目提供基于 MUDCORE 框架新建 MUD 游戏的最小可启动模板。框架使用说明文档:https://bbs.mud.ren/threads/66
点击项目上的 Use this template 生成项目到自己的仓库,然后使用以下指令clone代码:
# 下载代码
git clone --recurse-submodules <你的项目地址>如果你已经克隆了项目但忘记了 --recurse-submodules,那么可以在项目根目录中运行以下指令更新子模块:
# 更新子模块
git submodule update --init --recursive如果需要保持框架为最新版,请在项目根目录中运行以下指令:
# 更新框架
git submodule update --remote对外开放注册前,请由运维先完成管理员账号的注册和密码设置,避免管理员 ID 被他人抢先注册。管理员 ID 由框架的 WIZARD 宏指定,模板沿用默认值 mudren;如果项目调整了该宏,请使用调整后的 ID 完成初始化。
模板仅引入 mudcore 框架子模块,默认通过 Telnet 端口 3166 连接。项目使用 config.cfg 作为精简运行时配置。如需了解更多配置项,可参考框架中的 mudcore/config.example.ini 和 mudcore/config.mini.ini。
build.sh 用于在 Ubuntu/Debian 系统上自动安装依赖、下载或更新 FluffOS 并编译驱动。请以普通用户执行,安装依赖和系统驱动时会使用 sudo;也支持直接由 root 执行。
# 编译驱动
bash build.sh
# 前台启动游戏,按 Ctrl+C 停止
bash run.sh构建脚本保留 fluffos/build/ 以便增量编译,生成的驱动位于 fluffos/build/bin/driver,并安装到 /usr/local/games/driver。每次构建会通过 git checkout -- . 恢复 FluffOS 已跟踪文件,再执行 git pull --ff-only 更新源码;请勿在该目录中保存需要保留的驱动修改。
默认使用全部 CPU 核心编译,内存较少时可以限制线程数:
BUILD_JOBS=2 bash build.shrun.sh 按顺序查找 fluffos/build/bin/driver、项目根目录的 driver、PATH 中的 driver 和 /usr/local/games/driver,自动切换到项目根目录启动。两个脚本都可以通过完整路径从其他目录调用;run.sh 后的参数会原样传给驱动,例如 bash run.sh -d。
推荐从 FluffOS 官方仓库 或 MUD.REN 社区 下载已编译的 Windows 驱动。将驱动解压到项目根目录,在该目录打开 PowerShell 并运行:
.\driver.exe .\config.cfgWindows 使用预编译驱动即可,无需执行 Linux 构建脚本。
| 目录 | 说明 |
|---|---|
| .vscode | Visual Studio Code 配置目录,方便开发调试 |
| data | 游戏存档目录,包括游戏配置文件示例.env.example |
| include | 游戏代码头文件目录 |
| log | 游戏日志目录 |
| mudcore | MUDCORE框架子模块目录,请勿修改其中代码 |
| system | 游戏系统文件目录 |
其中 mudcore 目录为引入的框架子模块,不要改动其中的任何代码,使用帮助见mudcore/README.md,其它游戏目录为开发者自己定义的,可根据需要自由调整。
项目其它目录结构建议配置:
| 目录 | 说明 |
|---|---|
| config | 游戏各种特色设置配置文件目录,注意不得保存敏感数据 |
| cmds | 游戏动作指令目录 |
| daemons | 游戏守护进程目录,推荐放在system目录下 |
| docs | 游戏文档文件目录 |
| inherit | 必须继承使用的功能模块文件目录 |
| obj | 实体对象目录,继承标准对象使用 |
| std | 标准对象目录,具体对象继承使用 |
| verbs | 游戏谓词指令目录 |
| world | 游戏世界环境目录 |
因为推荐使用git管理代码,有一些核心配置(如数据库密码)为了安全不建议直接写在代码中,MUDCORE 推荐的做法是在/data/目录中新建一个.env文件,重要配置在这里定义,在游戏中使用env()函数读取或写入。此文件不会提交到仓库中,具体可参考.env.example文件。