meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

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