今天跟大家伙儿聊聊我做的这个《搏击俱乐部》小游戏,纯属个人爱折腾了好几天,总算像模像样了,在这里班门弄斧的记录分享一下。
先说灵感来源。
最近重温了《搏击俱乐部》这部电影,那叫一个热血沸腾!就想着,能不能自己也搞一个类似的游戏出来,不用多复杂,能打两下就行。刚好最近在学游戏引擎,就想着试试水。
然后就开始动手了。
第一步,先找素材。美术这块我是个菜鸟,只能上网找免费的素材,人物模型,场景,技能特效,找到合适的就先下载下来。这里面最麻烦的就是人物的动作,要找那种拳拳到肉的打击感,费了不少劲。
第二步,搭场景。用游戏引擎把场景搭起来,这个相对简单,就是把素材拖进去,调整一下位置和大小。重点是光照,光照效果不整个场景看起来就没感觉。我试了好几种光照方案,选了一个比较暗黑的风格,感觉更符合电影的气氛。
第三步,做人物控制。这是最核心的部分了,要让人物能够移动,跳跃,攻击,防御。我用了状态机来控制人物的各种状态,比如站立,行走,跑步,攻击等等。攻击的逻辑比较复杂,要判断攻击距离,攻击方向,还要播放动画和特效。挨打也要有反馈,要播放受击动画,还要掉血。
第四步,AI对手。光自己打多没意思,得有个对手。我简单写了一个AI,让对手可以随机攻击,防御,移动。AI的水平不高,但是也能打的有来有回了。后面可以考虑加一些难度,比如让AI学习玩家的攻击模式,或者增加一些特殊的技能。
第五步,界面和音效。加了一个简单的血条显示,方便观察血量。音效也很重要,打击音效,背景音乐,都要有。我找了一些免费的音效素材,稍微剪辑了一下,感觉还不错。
遇到的坑。
- 动画状态机:刚开始用状态机的时候,各种状态切换混乱,人物动作各种抽搐,搞得我头都大了。后来仔细研究了一下状态机的原理,才慢慢理顺了。
- 碰撞检测:碰撞检测也是个麻烦事,经常出现人物穿墙,或者攻击无效的情况。后来我用了物理引擎自带的碰撞检测功能,才解决了这个问题。
- 优化:游戏做出来之后,发现运行起来有点卡。后来我优化了一下模型和贴图,降低了特效的复杂度,才流畅了一些。
的效果。
现在这个《搏击俱乐部》小游戏,虽然还很简单,但是基本的功能都有了,可以打发打发时间。以后有时间的话,我还会继续完善它,比如增加更多的角色,更多的技能,更多的场景,甚至可以考虑加入剧情模式。
这回做《搏击俱乐部》小游戏,让我学到了很多东西。不仅巩固了游戏引擎的知识,还锻炼了我的逻辑思维和解决问题的能力。最重要的是,让我体验到了创造的乐趣。以后我会继续努力,做出更好的游戏。
就这样,分享完毕。