沙盘引擎 (SEngine)

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

用户工具

站点工具


侧边栏

developer:introduce

📚 深入了解《沙盘引擎》

注意:此文档内容可能已经过时。

哈喽!准备好体验\开发《沙盘引擎》了吗?

希望你可以理解,一些必要的文档查阅虽然会花费一点时间,但是也许是必不可少的前提,这将帮助你在未来更加深入了解及快速上手。

📒 设计初衷

如果你也和我们一样,是对游戏开发有着希望和兴趣的人,那么很荣幸我们在这里能够相遇。

曾几何时,我们的一些开发者也曾使用许多大大小小的开发工具,并实现了不同玩法、类型的各类游戏及Demo。

当我们一次又一次渴望、尝试及开发后,我们意识到所谓的游戏开发是怎样的困难,它远比看起来要难得多

我们不认为“没有开发技术”的人就不应该能开发出有趣的游戏,所以就在想是否能有一个简单、轻量级、系统化一点的开发聚合工具

的确,这样的工具在Unity、UE等常用引擎下数不胜数,但是某些方面仍然会比较耦合,以及对于许多代码技术了解不多的人来说,很多需求仍然是天方夜谭。

如此之下,我们一小群非主流非专业游戏开发兴趣爱好者,尝试建立了一个名为《沙盘引擎》的虚拟世界环境。

这里内置常规可见的世界(天气、世界、地形)及原生资源(角色、物品、载具、建筑模型),结合JavaScript相对简单的脚本,就可以赋予这个世界更细节表现及玩法体验,创造者几乎无需考虑建模、常规音效、音乐等问题,只需要稍微花费一点必要的时间,了解这个世界运行逻辑原理和JavaScript代码基础即可。

如让我们来评估一下,这似乎用不了太多时间(理解引擎文档 > 2小时;JavaScript > 基础1~3天)。

上述内容除了内置原生资源外,几乎绝大部分内容也支持外部资源的导入(如模型、音频、图片等)。

📒 主世界框架

简单来说,沙盘引擎默认就是一个“开放的世界框架”。 原生玩法可能更贴合与“现实世界”、”角色扮演生存“相关的类型游戏模式创作。

很多开放类型游戏都有自己擅长的主要领域,例如:起源引擎倾向于一\三人称射击及交互;GM引擎倾向2D瓦片游戏,而《沙盘引擎》的框架则倾向开放世界角色扮演。

同时引擎支持针对ClientCamera的自定义,允许实现比较丰富的视角观感,以及允许代码修改预制视角:2.5D视角(默认)、常规其他人称视角(未来计划)。

📒 可扩展游戏类型

游戏类型 制作难度及原理 是否支持
角色扮演(MC、僵尸毁灭工程、SWAT4) 中等,利用已存在的API组合创造玩法 支持
赛车竞速(趣味赛车游戏) 简单,利用内置模组和API简单创造 支持
射击游戏(2.5D及3D射击游戏) 简单,利用内置模组及机制 支持
即时战略(帝国时代、红色警戒) 复杂,利用基础资源外,需要多一些的编程思维及重写触发事件 支持

📒 引擎基础功能

功能名称 功能说明 是否支持
UI界面 可高度自定义的UI界面,复杂情况可通过FairyGUI导出到Store目录引用
简单情况也可以使用内置的GUI函数创建(基于FairyGUI,但通过代码直接调用)
支持
玩家验证 引擎SDK基于Steamworks,通过SteamSDK的功能,默认情况下每个玩家的账号信息等将可进行调用使用
在SDK功能的基础下,可进行查验SteamInfo、UUID等常规功能,以来进行玩家身份验证
支持
场景管理 这里的场景指的是Scene游戏场景,而不是类似UIScreen的画布场景
引擎默认包含以下几个场景:Awake、MainMenu、Loading、GameWorld、MapEditor
支持
音频管理 引擎模组目录内有多个Store文件夹,其中Sound文件夹内可放置一切会用到的声音资源
并且可通过脚本进行API调用播放、暂停等
支持
视频管理 引擎模组目录内有多个Store文件夹,其中Video文件夹内可放置一切会用到的视频资源
并且可通过脚本进行API调用播放、暂停等,以及映射到模型Panel等地方(3D)
支持
模型管理 引擎内置各类常见模型可供直接使用,也可以通过加载地图的方式直接读取地图 支持
地图创建及加载 通过内置地图编辑器,可以创建、加载、修改所有基于《沙盘引擎》的模组地图(.semap) 支持

📒 为什么使用沙盘引擎?

理由 分析
简单 万事开头难,接触任何新事物都会有些许陌生感。
但沙盘引擎在高度自定义易用简单性上做了尽可能的平衡,让开发者只需要了解大致的模组框架,就可以着手开始开发自己的项目。
所见皆所得 引擎内置了大多数生活常规可见的资源和示例,尤其是地图和模型的方面,开发者更多只需要进行拖拽和属性设定,而不需要单独的进行建模。
(例如:开发者想制作一个警匪游戏,并不需要制作警局、警车、警察和其他角色,因为这些属于世界常规内容,引擎是内置了的,同时也有很大的自定义属性空间【如玩家及载具颜色、部件等】)
轻量级脚本开发 在沙盘引擎中,绝大部分功能(或间接性功能)均已经被内置完成,开发者更多只需要实现一行或几行代码的调用,而不需要考虑其他方面。
(例如:开发者只需要一行代码就可以实现不同程度、效果的爆炸,且并不需要考虑爆炸效果、伤害判定、网络同步等其他问题,你只需要按需修改世界,并不需要从头打造世界)
快速的实现 无论是地图的搭建还是游戏创意的Demo制作,开发者几乎都能在较短的时间内看到足够的成效,这无疑是对开发者的思维和信心都有很大的帮助,甚至一些相对简单的小游戏,只需要几个小时就可以制作完成。
常规的功能组合 沙盘引擎尽可能在“沙盘世界”框架的基础上实现更多可自定义的功能,并且留下足够的接口空间,这也表示着开发者只要思维和对引擎的了解够开放,很多意想不到的功能都可以来实现。

📒 沙盘引擎弱点分析?

弱点 分析
有限的专业引擎能力 如你所见,沙盘引擎真正意义上属于一个在游戏里制作游戏,所以它并不是传统意义上的专业游戏开发引擎
如果你的游戏涉及到非常规世界资源、玩法,或者与沙盘引擎主世界框架相差过大,可能会出现制作相对复杂的情况,这种情况下可能并不完全适合所有开发者。
专业开发者的要求 如果你是一位专业的游戏开发者,并且想制作一个真正意义上完全独立的“原生游戏”,那么沙盘引擎也许并不符合如此专业的要求,在此情况下,沙盘引擎更适合作为专业游戏开发前的Demo制作阶段使用。因为比起制作思维导图,直接所见即所得的实现一些内容,会看起来思维更清晰。
世界风格局限沙盘引擎为了平衡快速上手与轻量开发,选择使用了体素、像素、低模的世界渲染风格,同样世界的对象、载具、角色这些也都是类似的风格,这虽然并不抽象,但是也应考虑是否能接受此类型的画风。补充:沙盘引擎初衷设计更多是希望体现玩法而不是画面。
其他方面 等待补充

尽管沙盘引擎在一些方面仍然做的并不完美,但是在某些层面也能方便的让“暂时不具备完整制作条件”的个人或小团体实现自己心目中的Demo示例。

developer/introduce.txt · 最后更改: 2024/03/08 18:17 由 bibiboxs