游戏的设计与实现
人物角色控制,摄像机跟随,背包系统,物品放置,游戏胜负判定七个功能。下面对这些功能一一进行需求分析。
(1)角色选择。该小节玩家能够自主选择角色,实现不同角色属性及图片的初始化。
(2)音乐控制。该小节玩家能够自由控制游戏BGM的开启与关闭,适合不喜欢游戏音乐的玩家使用。
(3)人物角色控制。该小节要求控制角色移动以及使用不同的方式攻击,而敌人不需要玩家控制,玩家控制的角色有行走以及两种不同的攻击动作,玩家击中敌人后敌人将会损失生命值。
(4)摄像机跟随。该小節为了使玩家在游戏中有切身的体验以及舒适的操控,摄像机的位置需要跟随游戏角色移动,如果不对摄像机加以控制,那么角色会走出摄像机范围,玩家也无法看到完整的游戏场景,游戏流程也无法正常进行,影响游戏的正常游玩。
(5)背包系统。该小节要求背包和拾取相交互,玩家可以拾取放置物到背包中,角色可以清楚地获知可用放置物的余量以及是否拾取装备。
1.2 游戏性能需求分析
性能优化是游戏开发过程中不可缺少的步骤,性能优化主要围绕CPU、GPU、内存和程序四大方面进行[3]。开发者不仅要靠考虑游戏的质量,也要兼顾玩家的机器性能水平,不可为了过度地追求游戏的质量而忽略了当前市场上的主机平均性能,NCSOFT公司2004年发行的《天堂2》便是该问题在游戏史上很好的例子,该游戏发布的时候对硬件的要求极为苛刻,导致大部分玩家虽热爱天堂系列游戏却心有余而力不足,无法在自己的PC上流畅运行,最终导致游戏销量惨淡。
就当前课题而言性能优化主要从精简代码、优化贴图方面下手。精简掉多余的繁杂的代码脚本,对游戏场景中的精灵贴图进行适当的处理,使用合适的分辨率。由于该游戏为2D游戏,且游戏整体较小,所以当前硬件水平皆可轻松胜任。
2 游戏详细设计
根据上面对游戏功能的划分,游戏需要设计出角色选择,游戏设置及帮助、摄像机跟随系统、背包系统、放置系统、人物角色控制和游戏胜负判定七个功能模块。由于篇幅有限,这里仅给出了角色选择模块的详细设计。该模块将从功能设计和程序设计两个方面对该模块进行详细设计,实现玩家对角色的选择以及界面的跳转。
2.1 功能设计
根据功能需求分析可知,该部分具体功能包括玩家角色的展示,点击选择,界面跳转。具体设计如下:
(1)角色展示设计:玩家可以在界面上看到详细的角色信息。
(2)角色选择设计:玩家通过点击选择合适角色,界面上出现显眼选定标志。
(3)界面跳转:触发跳转进入下一界面。
2.2 类设计
本课题使用两个Button按钮来实现角色的选择。声明两个类OneButton和TwoButton。分别绑定至两个角色按钮上,在角色控制类CharacterController_2D中声明一个变量mantype,以支持判定并为角色赋予不同属性,在按钮方法中调用SetActive()方法对关卡中游戏人物的存在与否进行控制。
3 游戏实现
由于篇幅有限,这里仅给出了游戏交互的详细设计与实现[3]。实现过程中,主要调用Unity中封装的类库及预留的接口,使用C#编程语言进行实现。
根据前面游戏功能模块的详细设计,该模块的主要功能是角色的选择。
(1)在Camera Contraller类下声明两个GameObject并命名为One Player和Two Player,改脚本挂载至关卡场景,并将OnePlayer和Two Player绑定至游戏内两个角色。
(2)在Load类下声明两个函数OneButton()和TwoButton(),分别对应两个人物的选择,每个函数中调用两次SetActive()方法,对绑定的两个按钮的背景的Active属性进行更改,以实现两个按钮的选定效果的切换。在函数中声明一个变量man,该变量在OneButton()函数中被赋值1,在TwoButton()函数中被赋值2,以支持角色属性的调整。
(3)在CharacterController_2D类中声明一个变量mantype以判定角色属性,将该脚本挂载至场景中的两个角色,并将mantype在角色的脚本属性中调整为1和2,使用if函数对mantype值的判定并对角色的生命值以及攻击力进行匹配。
(4)在CameraController类的Start()方法中,使用if语句对man的值进行判定,并对OnePlayer和TwoPlayer调用SetActive()方法以实现两个角色的显示和隐藏,最终实现角色的选择功能。
4 系统测试
4.1 测试环境
测试环境是系统测试中必不可少的一部分,主要是对介绍游戏实现后对游戏进行的一系列测试,该部分的目的是发现并纠正游戏中存在的缺陷和问题,从而提升游戏产品的质量和整体性能[4]。如表1所示。
4.2 界面测试
游戏UI界面作为一款游戏对玩家的第一印象,有着不可取代的作用[5]。本项目大部分功能都与UI界面有交互,测试界面能否正常显示,界面图片、文字风格是否一致等都直接影响了对游戏的体验。
5 结束语
该游戏以被流放至外太空为游戏背景,架构一个未来世界,让玩家在所给定的地图中自由发展与冒险。游戏主流程无固定剧情,胜利条件为消灭所有敌对生物或者在恶劣的环境下到达指定地点,游戏以生存玩法为核心,玩家时刻都需要为自己的生存做努力,不断地收集资源来对抗外星恶劣的环境。一旦进行至生存条件稳定的状态,就可以尽情地探索未知的外星地图,并选择探索游戏或者直接向游戏胜利发展。该游戏能增加游戏的年代感,让喜欢怀旧游戏的玩家获得更好的体验。
参考文献
[1] Mike Geig.Unity游戏开发[M].北京:人民邮电出版社,2015:45-46.
[2] 姜雪伟.Unity 3D实战核心技术详解[M].北京:电子工业出版社, 2017:11-15.
[3] 陈嘉栋.Unity 3D脚本编程[M]. 北京:电子工业出版社,2016:33.
[4] 张海藩.软件工程导论(第6版)[M].北京:清华大學出版社, 2016:62-64.
[5] Simon Jackson.Unity UI设计[M].北京:清华大学出版社,2017:150-152.
作者简介
刘玉坤(1978-),男,河南通许人;学历:硕士研究生,讲师,研究方向:信息安全,计算机应用。
彭伟国(1983-),男,河南易阳人;学历:硕士研究生,讲师,研究方向:数字媒体技术与应用。