跳到主要内容

如何组织你的游戏工程

  在游戏开发的世界中,项目管理和代码组织是非常关键的一环。本教程旨在介绍如何使用 Dora SSR 开源游戏引擎来组织和管理游戏项目工程目录。

1. 了解 Dora SSR 的项目管理机制

  Dora SSR 引擎采用基于文件目录的方式来管理游戏项目。在这种结构中,任何包含名为 init 的文件的目录都会自动被识别为游戏工程的根目录。这个 init 文件的扩展名可以是 .yue.lua.ts.tsx.tl.wasm

2. 游戏工程目录的识别

  当使用 Dora SSR 的 Web IDE 开发时,如果打开任何代码文件进行预览或编辑,并执行项目运行操作,IDE 将自动从当前打开文件的目录开始向上搜索,直到找到包含 init 文件的根目录。游戏的运行测试将从这个 init 文件启动。

3. 工程目录组织建议

  为了更加标准化地组织自己的游戏工程,建议(并非强制要求)按以下方式组织游戏项目目录:

  • 游戏项目根目录
    • Audio:用于存放游戏音频资源。
    • Data:用于存放静态的游戏数据文件如Excel表格,脚本编写的配置表等。
    • Font:用于存放游戏的字库文件资源。
    • Image:用于存放游戏图片资源。
    • Script:存放脚本文件,如 Lua、YueScript 、 Teal 或是 TS 代码。
    • Spine:用于存放游戏动画资源。
    • init.yue | lua | tl | ts | tsx | wasm:项目启动文件,根据使用的脚本语言选择合适的扩展名。

  这种结构不仅清晰,也便于管理和维护。

4. 代码模块的搜索路径

  在编写 Lua、YueScript、Teal 和 TypeScript 代码时,如果需要导入外部模块,Dora SSR 引擎运行时和 Web IDE 将按以下顺序搜索代码模块:

  1. 游戏项目根目录/Script
  2. 游戏项目根目录
  3. 引擎内置资源根目录/Script/Lib
  4. 引擎内置资源根目录/Script/Lib/Dora/zh-Hans
  5. 引擎内置资源根目录

  其中,对 序号3 的搜索路径的使用请确认已经了解了 Dora SSR 提供的开发辅助的功能库的使用,序号4 的搜索路径主要是用于给多种静态类型的脚本语言提供 Dora SSR 引擎接口的类型定义文件。请确保你的模块存放路径符合上述搜索逻辑,以便在项目中无缝使用。

模块导入示例

project/
├── init.lua
└── Script/
├── moduleA.lua
└── moduleB.lua
init.lua
-- 导入本地模块
local moduleA = require("moduleA") -- 使用了`序号1`的搜索路径: project/Script/moduleA.lua
local moduleB = require("Script.moduleB") -- 使用了`序号2`的搜索路径: project/Script/moduleB.lua

-- 导入引擎内置模块
local Utils = require("Utils") -- 使用了`序号3`的搜索路径: 引擎内置资源根目录/Script/Lib/Utils.lua

5. 最佳实践

  • 保持代码和资源的组织清晰,有助于团队协作和项目维护。
  • 利用 Dora SSR Web IDE 的代码检查的功能来即时看到代码模块导入生效的效果。
  • 检查项目目录下是否存在正确命名的 init 文件,确保项目能被正确加载和运行。

  通过遵循这些指南,你可以有效地管理和运行你的游戏项目,祝你利用 Dora SSR 引擎的强大功能,创作出引人入胜的游戏体验。