本项目可以分为三个阶段:FPS游戏的开发,VR设备的开发与把FPS游戏投射到VR设备上。现阶段大致完成的工作是前两项:我已经完成了基于Unity3D引擎的FPS游戏开发,并且大致熟悉了VR平台的各种项目开发流程。
在之前开发FPS游戏的过程中,大部分游戏项目我都是独立完成从底层逻辑到高层机制的编写,并未采用过插件和外界软件的帮助。此次项目开发,我花费了较大部份的时间在插件的学习,熟练和应用上,并且在利用插件进行FPS游戏的开发过程中取得了不错的成果,下面我将以插件的学习顺序,也就是毕设项目的开发流程来依次介绍我在这个项目中已经完成的部分。
首先,我了解到Unity3D官方为开发者提供了UFPS插件,该插件拥有大量的脚本,美术素材和预制件,可以作为教程和工具为FPS游戏开发者提供极大的便利。该插件内拥有大量利用C#编写,注释详实,思路明晰的FPS底层逻辑脚本,借助这些完成度和开放都都很高的脚本的帮助,我在完成了官方提供的视频课程和一部分参考小游戏之后,对该插件产生了初步理解。由于该插件内绝大部分脚本都对开发者开放,因此我对大部分脚本进行了理解和复现,这个过程让我在FPS游戏的开发过程中学到了很多之前独自开发游戏时所不能理解的思路和实现方式。之后我以UPFPS插件作为基础,对我设计的VR游戏进行底层代码的开发和实现,并且通过大量的调试逐步掌握了该插件的绝大部分功能。
其次,我在自学UFPS的过程中发现,在部分高层的游戏逻辑代码的实现过程中演示者使用了一款可视化编程插件,在视频里可视化编程展现出了高度的逻辑性,简洁性和便捷性,这让我对可视化编程产生了好奇。经过上网查询对比,我最后选择了使用人数最多的Playmaker可视化编程插件进行高层逻辑的开发。在这之后,我在网上继续自学了大量的Playmaker视频和示例,在基本掌握了状态机编程后我也开始将这部分技术应用到游戏开发中,并且也取得了卓越的成效。在该项目中,状态机主要负责完成包括获胜,物品刷新,敌人的各项行为等游戏机制的编写,和UFPS一起构成了本项目的代码部分,并且我通过开发实践得出,这两个插件在代码方面的相性很好。UFPS和Playmaker作为单人开发者的开发工具,其便利性和直观性值得推广。
在完成UFPS和Playmaker对代码的构建后,我也对游戏的美术方面进行了一些设计,例如人物的枪械部分模型来自LowPoly FPSPack,这个项目除去高完成度的模型和粒子特效外,对第一人称镜头的动画设计部分与命中表面识别部分的设计也十分突出,我在研究了这部分代码之后,将这部分内容也添加进了我的游戏中。除去这部分外界下载的模型,我在游戏中也为敌人和可拾取物品等自己设计了模型,采用的软件是MagicalVoxel。我最早了解到MagicalVoxel作为一款体素设计软件,是在原来某一个小学期的大作业中,后来因为在网上找到了替代模型而没有使用。这次由于游戏主题画风偏向卡通,因此我首先细致地学习了这款软件的使用方式,之后尝试了在MagicalVoxel中对各种物体的建模,并进行了部分模型的材质和动画的设计。
在完成了游戏开发流程的绝大部分之后,我首先通过任务书中提供的两本参考文献对VR设备的工作原理进行了了解,并利用基于Android的手机Google VR实现了简易的全景照片查看器。之后我对Oculus Vive的VR设备进行了学习和使用,并尝试了一些其他平台开发的VR程序,也理解了VR设备和FPS游戏的高结合度。
总之,目前我通过利用UFPS,Playmaker和Low-Poly FPSpack等Unity素材和插件,基本完成了FPS游戏的开发,并初步了解了如何将游戏移植到VR设备上。接下来的任务是将游戏进行最后的完善,将游戏的操作和显示系统移植到VR上,并进行相应的优化开发。
中期答辩汇报表
网友评论