meta data for this page
📚 世界场景及机制
场景(Scene)是《沙盘引擎》内置的一种储存介质概念,经过引擎的框架设计,以下几种场景几乎可以适配大部分情况。
本文中所表示的任何场景,均可被理解为一个“新的独立沙箱”,由不同的脚本API触发建立或连接,最常见的是CreateHost() | ConnectHost()
。
场景名称 | 优先级 | 加载方式 |
---|---|---|
Native | 0 | 引擎启动后第一个场景,此时开始加载Mod 如果是初次载入则会优先加载引擎 重载指令,也会自动跳转到此场景重新加载 |
World | 1 | 主要世界场景,当引擎加载Mod完成后,此场景将作为主要的介质 无论是主菜单还是某个玩法单机\联机世界,均在此场景下实现 (主菜单相当于是一个独立的,只有菜单UI的场景世界) |
MapEditor | -1 | 地图编辑器场景,不会主动加载 |
WorkShopEditor | -1 | 实验工坊编辑器场景,不会主动加载 |
📒 场景:Native
Native场景指的是《沙盘引擎》启动后第一个加载的场景,每次游戏周期只会加载一次(除非重新卸载\加载Mod)。
场景内容主要会展示《沙盘引擎》Logo以及可能开放的自定义Logo,同时在内部加载引擎可能用到的资源,以及开始加载模组相关的全部内容。
模组的加载主要包括:模组脚本、模组资源、模组配置文件等加载。
如果其中一项出现了问题,可能会导致引擎报错提示而无法进入游戏(提示错误信息)。
📒 场景:World
World场景是整个引擎中最为关键的场景,当Native场景正常加载结束后,任何与模组展示、主菜单、世界玩法相关的内容均在此场景内实现。
World场景加载完成后World.js
与Client.js
脚本就将开始执行,World.js
脚本控制着整个世界的事件和方法,并且属于服务器权威(仅在服务器主机运算)。
同时Client.js
下的客户端事件、方法也将被启用,与World.js
不同的是,Client脚本下的方法都是基于客户端本地运算的,比如编写相机视角逻辑、GUI等更为合适。
注意:基于《沙盘引擎》地图通用机制,每个场景加载时都允许指定【地图&脚本】,任何地图可以搭配任何脚本(反之亦然)。
📘 地图及脚本组合
在引擎Mods\XXX\Script
目录下,每个目录都存放着【World
&Client
】两个主要入口脚本,在加载新的场景时,开发者可使用API指定要加载的【地图&脚本】,以此可实现N个脚本组合N个地图。
例如:开发者制作了一个大逃杀类型的玩法脚本,并不需要给每个地图都进行适配(制作多个脚本),只需要在加载新场景时指定【新地图+大逃杀脚本即可兼容任何地图】。
举一反三,如果开发者需要为自己的游戏制作一个主菜单(或其他非游戏核心内容),也可以参考这个逻辑,制作一个“只有UI界面和功能(或UI+世界内容搭配)”场景即可。
📒 场景:MapEditor
此场景可供玩家制作《沙盘引擎》通用的地图文件(.semap)。
有关《地图编辑器》内容,请查看地图编辑器文档。
📒 场景:WorkShopEditor
此场景可供玩家制作及调试《沙盘引擎》通用的配置文件(道具、载具等)。
有关地图《实验工坊》内容,请查看地图编辑器文档。