meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
developer:getting-started [2025/07/24 12:57] – bibiboxs | developer:getting-started [2025/07/25 20:12] (当前版本) – bibiboxs | ||
---|---|---|---|
行 4: | 行 4: | ||
欢迎来到**开发人员手册**!看来你即将成为一名**准模组开发者**! | 欢迎来到**开发人员手册**!看来你即将成为一名**准模组开发者**! | ||
- | 在正式进入**模组开发**之前,非常建议至少阅读一次前置[《基础手册》](manual/ | + | 在正式进入**模组开发**之前,非常建议至少阅读一次前置[《基础手册》](manual/ |
> 通过**基础手册**已经得知,沙盘引擎的**衍生作品**统称为**“模组”**,实际上等同于开发者拥有**独立版权**的游戏。 | > 通过**基础手册**已经得知,沙盘引擎的**衍生作品**统称为**“模组”**,实际上等同于开发者拥有**独立版权**的游戏。 | ||
行 28: | 行 28: | ||
除此之外,沙盘引擎 额外准备了[地图编辑器](manual/ | 除此之外,沙盘引擎 额外准备了[地图编辑器](manual/ | ||
- | 当虚拟世界有了**地图场景**的作为直观的感受,再加上一些**脚本代码**赋予世界**玩法和逻辑**,这最终就组成了我们所说的**“游戏”**,不是吗? | + | 当虚拟世界有了**地图场景**的作为直观的感受,再加上一些**脚本代码**赋予世界**玩法和逻辑**,这最终就组成了我们所说的**“游戏”**! |
+ | |||
+ | > 需要注意,沙盘引擎 的世界框架设计**相对自由**,但也**并非**完全适合**所有类型**游戏开发。 | ||
+ | > | ||
+ | > 通常情况下,更适用于**自由探索、RPG及衍生扩展玩法**等类型。 | ||
行 36: | 行 40: | ||
在对**模组开发**有了基础的了解后,我们可以开始进一步探索。 | 在对**模组开发**有了基础的了解后,我们可以开始进一步探索。 | ||
- | 想要进行 沙盘引擎 的模组创作,至少需要拥有一份[沙盘引擎本体](releases),还有一些其他选项: | + | 想要进行 沙盘引擎 的模组创作,至少需要拥有一份[沙盘引擎本体](:releases),还有一些其他选项: |
| 前置 | | 前置 | ||
| ---------------------- | -------------------------------------------------------- | --------------------------------- | | | ---------------------- | -------------------------------------------------------- | --------------------------------- | | ||
- | | 游戏及开发工具(必要) | 沙盘引擎本体 | + | | 游戏及开发工具(必要) | [沙盘引擎本体](: |
| 脚本语言知识(必要) | | 脚本语言知识(必要) | ||
| 代码编写工具(推荐) | | 代码编写工具(推荐) | ||
行 80: | 行 84: | ||
| 模组创建向导 | | 模组创建向导 | ||
| 拷贝本地模组 | | 拷贝本地模组 | ||
- | | [下载模组](mods) | 下载外部模组或示例模组(或模组模板),在其基础上进行修改或创作 | | + | | [下载模组](:mods) | 下载外部模组或示例模组(或模组模板),在其基础上进行修改或创作 | |
当通过任何方式创建新模组后,新模组的文件夹内就是全新的**独立世界**,您可以尽情的尝试研究和修改文件夹的内容。 | 当通过任何方式创建新模组后,新模组的文件夹内就是全新的**独立世界**,您可以尽情的尝试研究和修改文件夹的内容。 | ||
行 112: | 行 116: | ||
| `Mod.json` | | `Mod.json` | ||
| `Startup.json` | | `Startup.json` | ||
+ | | ` License.txt ` | 模组自述& | ||
尽管以上列出的**主要文件**看起来很多,但也并非每项都需要完全理解和用到,可以先保留基础的概念,后续逐渐理解和深入。 | 尽管以上列出的**主要文件**看起来很多,但也并非每项都需要完全理解和用到,可以先保留基础的概念,后续逐渐理解和深入。 | ||
行 117: | 行 122: | ||
- | ## 逻辑入口 | + | ## 结语 |
- | 模组的各项文件实际上是不同的**配件**,而**脚本文件**作为模组逻辑的控制单元,完全控制着模组**何时、如何**执行某些行为。 | + | 开发人员手册 |
- | 模组的**所有逻辑**都由代码控制组成,而**代码(由英文、字符组成)**则被编写到一个**文本文档**(`*.js`格式)内,这个**“文本文档”**即是我们所说的**“脚本”**(包含代码的文本)。 | + | 每篇文章**阅读完毕**后,您可以点击**左侧菜单**继续浏览,或者[查看下一章](developer/ |
- | 常规情况下,编程与我们的人脑思维非常相似,就好像在阅读某篇文章时,均是采用**由前到后、由上到下**的阅读方式,阅读每一行文本的内容,并同时尝试理解它的含义。 | ||
- | 沙盘引擎 模组运行第一步(逻辑入口)即在脚本目录(`Script/ | ||
- | 也就是说,模组加载完成后,即在内部读取`Script/ | ||
- | > 想想一下,您曾经玩过的其他游戏,无非都是**按顺序执行的N个过程**。 | ||
- | > | ||
- | > 例如:1. 展示Logo 2. 进入主菜单 3. 弹出欢迎画面 4. XXX 5. XXX ... | ||
- | > | ||
- | > 游戏的开发过程即是如此:**将N个简单的代码按顺序拼凑起来,最终组成复杂的玩法**。 | ||
- | ## 初识脚本 | ||
- | |||
- | 让我们大胆一点,既然知道无论如何模组都会先从`Script/ | ||
- | |||
- | 此时通常应该会看到至少1~2个文件(文件扩展名为`*.js`,代表`JavaScript`脚本文件)。 | ||
- | |||
- | 以常规(示例)模组为例,我们可能会看到`World.js`和`Client.js`两个文件,如果文件不存在,也可以手动创建文件。 | ||
- | |||
- | > 沙盘引擎 是`World(Server)+Client`同步的脚本编写模式,也就是**服务端脚本、客户端脚本**同时存在的逻辑模式。 | ||
- | > | ||
- | > **在不同脚本文件编写的代码(及API规范)有所不同,用途也大不相同。** | ||
- | |||
- | | 脚本 | ||
- | | ----------- | ------------------------------------------------------------ | ---------------------------------- | | ||
- | | `World.js` | ||
- | | `Client.js` | **客户端脚本(本地端)**< | ||
- | |||
- | > **为什么要将脚本分成两份?** | ||
- | > | ||
- | > 沙盘引擎 是原生支持多人联机的玩法创作,因此在脚本编写和设计上并非仅考虑本地形式。 | ||
- | > | ||
- | > **世界脚本 `[World]`**用于编写**主要玩法逻辑**,在实际游戏过程中,**只有主机\服务端玩家会运行此脚本**,普通玩家(后续加入的玩家)不会运行世界脚本。 | ||
- | > | ||
- | > **客户端脚本 `[Client]`**用于编写**本地辅助逻辑**,在实际游戏过程中,无论是**主机\服务端**还是**普通玩家**都会运行客户端脚本。 | ||
- | > | ||
- | > 由此得知,**世界脚本**更像是一个控制全局的关键,而**客户端脚本**主要是为玩家本地可见的内容做辅助。 | ||
- | |||
- | **简单总结:编写 世界脚本 时应站在全局(所有人)的角度,而编写 客户端脚本 时应站在自身的角度。** | ||
- | |||
- | |||
- | |||
- | ## 结语 | ||
- | |||
- | 开发人员手册 是一个线性学习的教程系列。 | ||
- | 每篇文章阅读完毕后,您可以点击左侧菜单继续查看下一章。 | ||
</ | </ |