过去一年里,我在完成研究生学业的同时,作为兴趣项目独自开发了这款游戏,今天Steam页面正式上线!这是一款基于物理机制的派对格斗游戏,你通过鼠标/右摇杆一比一控制剑刃,并且可以用所有被砍下的骨头作为武器。
Steam页面:
https://store.steampowered.com/app/5073210/BoneHeads/
如果有人感兴趣,这是我的开发思路!
我没有任何开发经验,所以从一开始设计游戏时,我就问自己:如何与AI工具的局限性“共存”,而非“对抗”。这种理念最终影响了游戏的方方面面。我想做一款格斗游戏,但好的格斗需要好的动画,而AI无法胜任。我思考了没有动画的格斗系统会是什么样,想起了老Flash游戏《Madness Interactive》。在那款游戏里,手和武器像雷曼一样漂浮,跟随鼠标移动。我知道自己能做类似的东西。我喜欢剑斗游戏,于是决定朝这个方向深耕。《Madness Interactive》里也没有真正的动画——角色的贴图只是倾斜。
我的第一个原型是两个卡通骑士角色,四肢浮动。角色移动时,脚部贴图只是前后变换。我琢磨着:如果仅通过代码移动贴图就能实现一定程度的动画,或许还能更进一步。我学习了程序化动画,这成了转折点。我想做一个更写实的骑士,于是生成了一张图像,用Canva把角色身体切成独立的PNG。我构建了一个基于身体IK的木偶系统,包含独立的头部、躯干、上下臂、腿和脚部贴图。但写实骑士看起来总是支离破碎,因为缝隙无法避免。
于是我又得问自己:如何不再试图对抗这个限制,而是与其共存?我意识到骑士角色用这种方法永远不会好看,于是思考:哪种类型的角色四肢有些缝隙会显得自然?然后想到了骷髅。卡通风格的骷髅肢体间有缝隙是媒体的常见表现手法,我觉得这很完美。把骑士换成骷髅后,画面自然多了。我决定让身体IK更复杂,把腿部分成上下腿贴图,并加入独立的骨盆和脊柱贴图。这些改动让我能精细调整程序化动画,使其效果更好。
动画方面的一个设计原则是:绝不希望在任何时刻出现贴图“瞬移/跳跃”的情况(比如很多游戏中的归位动画会有快速将角色拉回原位)。我希望每个动作都是连续的。程序化动画系统实现了这一点(尽管花费了数月时间让每个动画丝般顺滑)。我最自豪的机制之一是“基于步伐的移动”。你的角色会随着移动输入连续迈步。如果在迈步中途松开输入,脚会自然垂直落下。这使得动态姿态成为可能——你甚至可以在脚落地前反复前后移动输入来单脚旋转。
肢解是骷髅角色自然的延伸——起初我并没有这个想法。随后,使用被切断的肢体作为武器也顺理成章。很多想法就这样层层叠加,而这一切都源于“与AI工具的局限性共存”这一基础。
起初,当我的伴侣试玩时,她只是用小幅度动作胡乱挥舞剑刃,就能击中多次。我希望游戏有技巧性和精准感,所以必须想办法消除“无脑攻击”的可能性。体力系统感觉不好。于是我把剑设计为带有惯性和加速度的纯物理物体,伤害基于剑的速度。加了加速度后,短距离挥剑无法达到足够速度造成有效伤害,需要长弧线才能获得威力。这个过程迭代了很多次才让剑感觉有分量但不笨重。
花了数月才找到让水平挥剑在2D中看起来不错的方法。很长一段时间里,我甚至设置了一个剑无法穿过的内部死区,导致你根本做不出水平攻击。后来我发现了2D动画的“透视缩短”技术——让物体(剑)逐渐变短直到越过中线,再重新变长。这样看起来就像手臂和剑在3D空间中向外朝屏幕方向横向挥动。
碰撞系统是最困难的部分之一,花了数月才调好手感,尤其是剑拖过敌人的感觉。利用程序化身体IK实现的动态受击反应极大地增强了打击的满足感。
长话短说:我不是先确定具体游戏创意,再试图用AI去实现它;而是基于AI的局限性,设计出它能够胜任的东西。
评论 (0)