最近有点游戏荒,就想着自己动手搞个3D单机射击游戏玩玩。说干就干,先从引擎开始琢磨。
一开始想着用Unity,毕竟上手快,资源也多。结果,电脑配置有点跟不上,跑起来卡卡的,做出来的东西画面也达不到我的预期。后来又试试虚幻引擎,嚯,那画面是真不错,可就是太难!学半天,感觉脑子都要炸,还是没搞明白。
引擎选择的纠结
就在我快要放弃的时候,突然想起来之前好像看过一个叫Godot的引擎,说是轻量级,开源免费。抱着试一试的心态,我就下载下来体验一下。
这一试,还真不错!
- 它对电脑配置要求不高,我的老爷机也能流畅运行。
- 它的界面简洁直观,上手比Unity和虚幻容易多。
- 最重要的是,它的GDScript脚本语言,跟Python有点像,学起来特别快。
搭建场景和角色
选定引擎,接下来就是搭建场景。我从网上找一些免费的3D模型,什么破旧的仓库、废弃的汽车,一股脑儿全扔进去。然后,又捏个主角,拿着一把看起来就很猛的枪。
接下来是重点,就是让主角动起来!
我给主角添加一个刚体组件,这样它就能受到重力影响,不会飘在空中。然后,又写一段简单的脚本,让主角可以前后左右移动,还能跳跃。这部分弄好久才搞定,总算能跑能跳。
实现射击功能
射击游戏嘛最重要的当然是射击!我又加一个摄像机组件,让它跟随主角移动。然后,在主角的枪口位置创建一个发射点。当按下鼠标左键时,就从发射点发射一颗子弹。
子弹的创建通过实例化预制好的子弹模型来创建,修改脚本来实现,点击鼠标就执行代码生成。
为让子弹飞出去,我给子弹添加一个力,让它沿着枪口的方向运动。为让子弹击中目标后消失,我又给子弹添加一个碰撞检测,当它碰到其他物体时,就销毁自己。
添加敌人和AI
光有主角一个人打空气也没意思,我又加一些敌人。这些敌人也是从网上找的免费模型,一个个看起来都挺凶的。为让敌人能自己动起来,我还给它们添加简单的AI。
就是通过算法不断计算敌人与玩家的距离,远就朝着玩家移动,近就逃跑躲避玩家的子弹,然后通过给敌人添加碰撞检测来判定是否被击中。
继续完善
虽然现在游戏的基本框架已经搭好,但是还有很多地方需要完善。比如,我可以添加更多的武器和道具,设计更复杂的关卡,增加更智能的敌人等等。不过这些都得慢慢来,毕竟我只是个业余爱好者嘛
这回尝试还是挺有意思的。虽然过程有点曲折,但最终还是做出一个能玩的3D单机射击游戏。以后有时间,我还会继续完善它,争取让它变得更好玩!