📚 世界场景及机制

场景(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.jsClient.js脚本就将开始执行,World.js脚本控制着整个世界的事件和方法,并且属于服务器权威(仅在服务器主机运算)。

同时Client.js下的客户端事件、方法也将被启用,与World.js不同的是,Client脚本下的方法都是基于客户端本地运算的,比如编写相机视角逻辑、GUI等更为合适。

注意:基于《沙盘引擎》地图通用机制,每个场景加载时都允许指定【地图&脚本】,任何地图可以搭配任何脚本(反之亦然)。

📘 地图及脚本组合

在引擎Mods\XXX\Script目录下,每个目录都存放着【World&Client】两个主要入口脚本,在加载新的场景时,开发者可使用API指定要加载的【地图&脚本】,以此可实现N个脚本组合N个地图。

例如:开发者制作了一个大逃杀类型的玩法脚本,并不需要给每个地图都进行适配(制作多个脚本),只需要在加载新场景时指定【新地图+大逃杀脚本即可兼容任何地图】

举一反三,如果开发者需要为自己的游戏制作一个主菜单(或其他非游戏核心内容),也可以参考这个逻辑,制作一个“只有UI界面和功能(或UI+世界内容搭配)”场景即可。

📒 场景:MapEditor

此场景可供玩家制作《沙盘引擎》通用的地图文件(.semap)。

有关《地图编辑器》内容,请查看地图编辑器文档。

📒 场景:WorkShopEditor

此场景可供玩家制作及调试《沙盘引擎》通用的配置文件(道具、载具等)。

有关地图《实验工坊》内容,请查看地图编辑器文档。