📚 开发流程&经验

经过几篇文章的基础介绍,相信对模组构成及制作有了初步的认识。

本文作为基础入门系列的结尾篇,将主要介绍模组开发流程及开发和学习的相关经验

📒 前言

尽管 沙盘引擎 努力的简化了传统开发的流程,但是仍然需要开发者在准备开始制作之前,至少要理解沙盘引擎的框架基础。

值得注意的是,任何游戏开发过程绝不是简简单单的事情,世界上没有哪些制作工具可以完全的自动处理。

纵观历史的软件开发者对底层代码的层层封装,各类代码及框架变得越来越简单和易用,但最后仍然需要创作者对待想法的最终操作。

回归主题,创作一款游戏及玩法并不容易,沙盘引擎 尝试将这部分的过程简化,但无论如何也需要一定的学习时间经验积累

本文将结合引擎开发者的相关经验,为您介绍推荐的开发流程经验分享

📒 立项准备

在开始制作一款游戏模组之前,真的要至少设计一个基础大纲

笔者通常会使用Xmind思维导图或记事本,对自己即将创作的玩法有一个规范的设计。

简单来说,沙盘引擎 为开发者封装好了许多方法和解决方案,但由于每个创意的细节都有不同的地方,开发者应该提前规划应该使用哪种方式、功能、API来实现,尤其是针对世界脚本客户端脚本方面的开发。

沙盘引擎 的脚本实现相对轻量化,有时它真的可以被称之为意义上的“脚本”。

我们不妨换一种思路,实际上编写 沙盘引擎 脚本真的像是在编写一篇故事、一本书

从文本第一行开始编写代码,直到编写至最后一行,我们想到什么就用代码的形式加进去,最终我们可以完整的读懂这篇代码。

当引擎载入并运行这段代码时,它就真的按照我们的思路动了起来。

在某些层面来说,这何尝不是根据文本创造世界更直观的一种方式?

虽然这个过程仍然有难度,但相对于成百上千行代码带来的反馈结果,这仍然是事半功倍的!

📒 开发评估

在正式开发之前,开发者需要根据准备制作游戏的体量进行预估,通常越复杂的游戏玩法,可能需要考虑的情况越多。

举例:希望实现类似《绝地求生》的游戏。

开发者要提前制作游戏地图(或直接使用通用地图)。

编写脚本时,设定角色复活后生成在一辆降落伞(载具)上,令其自然下落到地面,当检测离地距离靠近后,即可销毁载具(角色自然落地)。

利用引擎内置的角色、道具、武器等机制,配合拾取物(Pickup)等功能,即可实现物品道具拾取、掉落、使用等功能。

除此之外,可以通过API代码进行更多功能扩展,以此类推。

由此可见,沙盘引擎 更多时候只是一个工具,只有开发者熟悉工具后,才能更好的事半功倍快速制作出成品。

这个线性学习过程可能需要花点时间,但也是不可避免的步骤之一。

📒 玩法API编程

当开发者设计好游戏思路,并且确保 沙盘引擎 API功能足以实现目标需求,这时就可以开始模组制作了。

沙盘引擎 的优势在于原生API的简单易用,也就是说想要创建一个爆炸效果,不需要考虑底层的实现或者细节调整,只需找到对应的API方法,然后调用并调整如爆炸范围、效果、反馈等参数即可。

通常情况下,对于要实现的功能可以会有以下步骤:

  1. 确认自己想要实现的功能
  2. 脚本开发及API文档搜索关键字,找到能够实现要求的方法(或间接方法)
  3. 查阅目标API代码的解释和说明,运用到自己的脚本中

补充:沙盘引擎 支持使用VSCode扩展进行脚本开发,配合updatesdk可进行自动补全。

更多情况下,开发者只需考虑应该写在哪里、用什么代码来实现。

📒 快速学习的方法

在代码快速学习的层面,经过笔者对很多前辈的请教(同时笔者也认为比较科学),总结出一个快速学习和理解的方法——实践出真知

此处的实践或许可以分为几个要点,但无论如何都要行动起来,而不是只停留在概念阶段:

  1. 找到一份喜欢的模组(脚本公开),运行模组的同时,一边体验模组玩法,一边根据脚本理解其实现思路
  2. 阅读关键的API文档,至少做到常用功能(及关键字)心中有数,避免每当想实现一个功能,都需要现搜关键字
  3. 任何教程文档几乎都做不到100%的知识覆盖,当基础\常用的操作学习之后,剩下的更多是对知识+实现的自我探索过程,多参考其他编写好的模组及代码,可能有时会发现“居然还能这样操作”
  4. 功能的实现并非是死板的组装,就像同样是钉子和木板,它们却能组装成各种各样用途的家具和建筑