沙盘引擎 (SEngine)

创意诞生沙盘世界,不止如此想象!

用户工具

站点工具


侧边栏

reference:gameworld

📚 游戏世界及地图

游戏世界及地图表示在世界场景(World.Scene)下加载的《沙盘引擎》地图.semap文件,在两者加载集合对的基础上呈现的沙盘世界。

无论是针对模组开发者还是想要更多了解的玩家,根据自身需要查阅本文档会提升对引擎的了解。

📒 世界场景关系

游戏世界可以理解为是一个虚拟世界的载体,是由世界框架机制+游戏地图两者组成的最终内容。

其中世界框架更多表示这个“世界”的玩法、逻辑、展示效果等,例如角色、载具、世界天气时间这些的控制,都属于世界框架内容

除此之外,游戏地图更多表示游戏世界内的具体展示,比如某处放置着建筑、角色、载具等是固定的,任何不同的地图都可以被世界框架加载

简单来讲,世界框架相当于“上帝”,游戏地图相当于我们生存的“星球(地球)”,“上帝”控制着世界的变化和规则,地球主要负责展示这个星球应有的场景(树木、建筑等)。

📒 世界实例

在沙盘引擎世界中,通常可以被用到“世界实例”的地方只有主菜单界面(VirtualWorld虚世界)游戏场景世界(World)

世界 场景
主菜单界面世界 只在主菜单生效的一个世界,通常是为了让主菜单更有生机
或者可配合客户端在主菜单的功能,实现镜头跟随之类的菜单效果
(因为这是主菜单世界,所以它是一个虚世界,同时也没有网络连接)
游戏场景世界 任何关于这个模组的玩法都将在这个世界主要呈献
也就是说,这是表示玩家进行实际游玩的世界场景,任何游戏玩法都将在这里实现
(因为这是游戏场景世界,所以这里的一切都是会网络同步的)

目前沙盘引擎版本之下,除了以上所列举的两种情况外,几乎不会再有其他和“世界”有关的内容。

📘 虚世界实例

在沙盘引擎开发流程中,控制脚本逻辑的只有Client.js和World.js主要入口(详情参考模组和脚本开发)。

但是在某些情况下,模组开发者可能希望主菜单界面世界也需要相对复杂的效果。

比如:开发者可能想在主菜单时,实现点击【商店】按钮后不仅会弹出商店的GUI界面,而且会将游戏内的视角转移到【商店区域】,同时商店视角内会有一个角色在做动作等。

这就无疑除了Client.js控制镜头外,还需要对World.js内的某个Character进行SetAnim()等函数的处理(或更多复杂的效果),但是World.js只负责处理【游戏场景世界】(参考引擎场景空间),这就需要虚世界实例功能的存在。

虚世界其实和游戏场景世界没有任何区别,但是它不会遵循World.js的脚本来执行,而是处于一个“没有脚本控制”的状态,这就需要开发者通过API为虚世界指定一个VirtualWorld.js脚本(脚本名随意,这里只是举例),此脚本与World.js可实现的功能完全一致,作用只是强制虚世界执行这个世界脚本的世界代码,而不是World.js(因为World.js只负责游戏场景世界的逻辑,应该只把游戏内真正的玩法放在这里)

📒 游戏地图(.semap)

在沙盘引擎的设计概念中,游戏地图是一个搭配世界实例共同使用的重要资源。

游戏地图资源.semap可以被几乎任何模组所加载和使用,

reference/gameworld.txt · 最后更改: 2023/03/15 19:11 由 127.0.0.1