撰写了文章 更新于 2019-11-07 00:45:59
《我的godot开发笔记》(一)一个愿望
我曾在《面向对象的程序设计与其在游戏开发中使用》中使用了godot引擎作为示例
实际上,我一直有一个想法,制作一个“道具自由”的游戏,游戏中的道具,可以被符合逻辑的任意组合使用
你可以在棍子前面贴一张传送卷轴,然后让你打到的人传送到其他地方
或者你可以在你的军火库和你随身携带的弹夹里开一个传送门,让你有无数的子弹
更甚至你可以把药水封在子弹里,让你打中的人可以受到药水的效果
我曾经尝试过一种很程序员的方法,并且我认为失败了
因为这么做有效,但是并不游戏,而且效率极难提升
而现在,我将会一边学习一边基于godot语言开发这个功能
并把这个过程记录下来
之前失败的工作,我大体把道具系统整体变成一个命令行,让道具间可以自由的,像运行程序一样互相运行与调用
但显然,真正的操作系统并不会这么做,因为这会造成资源的大量浪费
在经历了这次失败,我希望把整个道具系统转变成更类似于minecraft,或者更类似与“乐高”的结构
功能类 - 控制器类 - 控制器向导 - 打包器
首先,我的想法是,为每个物体抽象出一个这个物体的功能,作为一个类
并使用一个控制器类来管理“物体”功能之间的连接,包含一个流程控制,一个时序控制,和一个数据池
为了让整个控制器的“制造”流程更加的人性化,我认为我应该有一个向导类。
我能想到的最好的向导,就是类似godot或者blender的可视化代码结构
然后利用打包器,将控制器和其所关联的物体打包,对外展示为一个新的功能类
物品类 - 制造台
除了前文所述功能,我同样希望保留一个传统的物品系统,我并不希望玩家真的需要把一段段铜线用复杂的结构制作线圈
这个物品类,应存储自己被合成的途径,以及自己可作为的素材
因此,需要一个制造台类完成对物品之间的查询。
秘密类 - 验证器
除此之外,为了保证信息的真实性,与作为一件物品的维度
规划一个秘密类,储存一件物品的秘密,同时为其增加验证器,捕获特殊条件对这个秘密进行释放。
由于这部分的结构是新加入的,因此设计上还并不完善,而且秘密的实现包括信息、流程、控制。也因此,其重合度可能与控制器较高,实现上可能会将其作为一个特殊的控制器+功能的组合结构进行
接口 - 接口工厂 - 工具工厂
最后,为了方便的将这些结构统一起来,并且提供一系列完成程序逻辑的基本功能
我认为应该提供接口工厂生成接口,和工具工厂生成一系列常用顺序结构
我会时不时的在奶牛关公布项目进度,但周期肯定很长。
另外,根据进度的进行,我大概还会分享我对Godot各种功能的理解与学习过程
目录
OwenTsai 1年前
Kingfeng [作者] 1年前
发布