独立游戏策划开发实录

2022-1-25
其实已经开始一段时间了,想着可以记录一下过程。
先不说了,和朋友去玩 Pummel Party 了。

2022-2-17
最近回到学校了,理一下目前游戏的进度吧。目前美术素材已经比较齐了,不管是人物立绘还是 Q 版,动画也完成了一些,还有场景、武器,几乎已经是要啥有啥了;游戏策划的话世界观已经完善得差不多了,前段时间已经理出了一个比较合理的剧情发展时间线了,每个人物的故事线也留下很多发展的空间,后期还可以做很多工作,但目前就是聚焦在完成一个 demo 的剧情版本,大约 2-3 小时的游戏时长,因为生产力和时间都有限;感觉游戏现在的进度不是很快,最近在想怎么把剧情的对话写好,目前的策略是先不写具体对话的台词,而是将每段对话人物的言语意图和情感、这段对话要用的道具等等列出来,然后再去写台词,初次尝试确实没啥经验,但愿之后能在不断试错中找到一个比较好的出路,现在计划是在 2 月底之前完成对话脚本;游戏程序开发的目前都是瑾哥在进行,用的是他自己写的开源游戏引擎 Dorothy-SSR,现在已经完成了部分场景的搭建、人物的基本操作,还有一些 UI 界面,一直很佩服他为这个游戏所做的一切,应该是热爱吧。至于我的话也想尽快参与到开发中,但我好像一直没有迈出那一步,不知道自己是卡在哪一步了…加油吧。

2022-3-5
最近试着跟着 Dodothy-SSR 里的几个例子初步熟悉了一下引擎的使用,了解了 ECS 系统、相机、物理碰撞什么的,用 Yuescript 写起来很方便;然后试着用 xml 写了游戏内一个手机界面的 UI,就是把素材拼了起来,没有实际的交互,xml 里面也可以内嵌 Yue 和 Lua 的代码,最后是编译成 Lua 代码的。后期打算用 MVVM 架构来写 UI 和数据的逻辑,会更加方便;距离比赛最后提交日还有一个月多几天,接下来一个月尽量不摸鱼了。

2022-3-22
最近进度比较慢,主要在熟悉引擎的使用,因为没有像 unity 一样有一个可视化的编辑器(其实有),也没有 API 文档之类的,所以只能自己一步步摸索,主要方式是学习瑾哥用这个引擎开发的几个游戏例子,这几天熟悉了引擎的 ECS 系统,初步用下来确实写起来很方便清晰,通过一类属性把实体划分成一个个组,然后可以去监听带有指定属性的所有实体,比如可以监听所有带有“hp”属性的实体,当“hp”变化时做什么操作。昨天晚上试着用了一下引擎自带的粒子系统,实现了枪口火焰和子弹的效果,虽然效果还不是很好。
iShot2022-03-22 17.15.35iShot2022-03-22 17.15.46

然后怪物也能正常收到子弹的伤害
iShot2022-03-22 17.16.59

写了一下小饕餮的一个简单 AI(其实是照着一个例子改了改),主要就是通过看监测范围内有没有敌人且是否面朝自己,然后就冲过去发动攻击

iShot2022-03-22 17.34.24iShot2022-03-22 17.34.56

iShot2022-03-22 17.19.16

然后今天看到一个 shader 的教程非常不错,叫The Book of Shader,打算跟着上面的例子学着写写看,毕竟游戏里也需要大量美术效果需要 shader 写,而且这个教程用的 glsl 语言也正合 Dorothy 里用的 bgfx 支持的语法类似。

_gl_FragColor(Vec4)_
是 GLSL 的一个默认输出值这个全局变量可以用来输出所有像素的颜色,用的是 RGBA,我的理解就是这个东西会在每帧遍历屏幕上所有的像素点,然后将一个颜色告诉这个像素;

uniforms
这个是一种数据类型的定义,表示一个统一的输入值,GPU 的所有线程必须接收相同的数据,并且不能手动修改它,比如uniform float u_time; 就表示时间,就是画面加载后的秒数;

_gl_FragCoord(Vec4)_
是一个默认的输入值,表示屏幕上每个像素的坐标,如果想让每个像素的颜色根据坐标变换就可以将坐标规范化后传入gl_FragColor里就可以了;(这里的规范化就是 x/width,y/height,把所有坐标映射到 0-1 之间,因为颜色通道的取值在 0.0 到 1.0 之间)

smoothstep(a,b,x)
x 小于 a 时返回 0,大于 b 时返回 1,的是 step 函数的升级版,原本 step 以一个值作为分界,而 smoothstep 用两个值作为分界,然后这两个值之间作平滑过渡。

not found!