下载 App
开发日志 #1:先做一个能开枪的原型
修改于前天 07:2313 浏览综合
做 Finger Blast 的起点很简单:我想做一个操作极其直白、但节奏会越来越紧的射击游戏。标题界面那句话 “Just Move! & Shoot!” 基本就是全部规则——移动,射击,没有别的按钮。
引擎选了 Godot 4。原因不复杂:2D 工作流顺,GDScript 改起来快,场景系统适合这种小规模、高迭代的项目。最开始我搭了一个很粗糙的原型:屏幕底部放一个“手”节点,玩家控制它左右移动,按射击键就朝上发射子弹。子弹本身不复杂,就是一个 Area2D,每帧根据方向向量推进位置,碰到敌人就触发命中。这套东西跑通之后,游戏才算真正“能开枪”。
但只有射击还不够,得有目标。于是我加了第一批敌人:它们从上方出现,朝玩家所在的方向移动。敌人被击中会掉血,血量为零时消失。到这里,一个最基础的 wave shooter 循环就成立了——移动、射击、击杀、继续。
不过原型阶段最大的问题是“没有压力”。玩家站在原地也能打,敌人来得太慢,击杀之后也没有后续影响。我需要一个东西,让每一次击杀都产生代价,而不是单纯地减少屏幕上的敌人数量。这个想法后来变成了墓碑系统,也是下一篇日志要展开的部分。
在原型期我还做了一件后来觉得很值的事:把子弹、敌人、游戏逻辑拆成独立脚本。子弹只管自己的移动和命中,敌人只管自己的行为和受伤,游戏层负责波次、UI 和全局状态。这样后面加 buff、加多命、加本地化的时候,不需要把每个脚本都翻一遍。独立开发很容易图快把所有逻辑塞进一个文件,但 Finger Blast 从一开始就避免了这一点。
这篇日志先到这里。下一篇会讲障碍物和波次——也就是这个游戏真正开始好玩的地方。












