🏆 导航菜单
🎪 扩展内容
🎯 沙盘引擎文档
🕹️ 文章及书籍&教程
🎖️ 外部的链接
🏆 导航菜单
🎪 扩展内容
🎯 沙盘引擎文档
🕹️ 文章及书籍&教程
🎖️ 外部的链接
游戏世界及地图表示在世界场景(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
可以被几乎任何模组所加载和使用,