华东师范大学学士学位论文 基于Unity的车辆模拟游戏的设计与实现
图2-10 MonoBehavior的生命周期
三、 车辆驾驶游戏的设计 (一) 游戏创意
随着移动硬件设备的日益强大,并且移动平台技术在这几年得到迅猛发展,移动平台上的游戏也出现了惊人的增长,轻量级、微创新、时间碎片化一直是移动游戏的发展趋势。《愤怒的小鸟》、《顽皮鳄鱼爱洗澡》等几款创意游戏都得到了巨大的成功,这些游戏的共同特点有:
1.操作简单,游戏目的简单。不论是高级游戏玩家还是不常玩游戏的用户群,很容易知道如何操作并理解游戏的目的。如《愤怒的小鸟》只需一只手指调整弹弓的角度和力度最终将猪击飞,《顽皮鳄鱼爱洗澡》只要用手指刮开泥土将水引导进鳄鱼的浴缸;
11
华东师范大学学士学位论文 基于Unity的车辆模拟游戏的设计与实现
2.真实的物理规律。游戏中充分考虑到现实生活中的物理规律,如《愤怒的小鸟》中飞行的速度、重力的考虑,《顽皮鳄鱼爱洗澡》中水流的流体走向;
3.多样化的设计。别出心裁的设计不仅使玩家产生兴趣继续挑战,也会更加开动玩家的脑筋。如《愤怒的小鸟》中小鸟不同的技能、会荡秋千的猪、冰雪的场景和会引燃的炸药,《顽皮鳄鱼爱洗澡》中清水、污水、泥石流产生的不同效果,以及风扇、喷枪的设计等;
图3-1 左为《愤怒的小鸟》游戏截图,右为《顽皮鳄鱼爱洗澡》游戏截图
笔者按照这些思路产生了将游乐场中“碰碰车”这一游乐项目搬上有游戏的想法,游戏同样遵从以上三个特点,下面是简单的游戏策划:
游戏名称:《疯狂碰碰车》 游戏类型:3D休闲益智类游戏 游戏平台:PC、Android、iOS
游戏模式:多人联机模式,单人AI练习模式
游戏玩法:玩家通过操作车辆,在竞技场中与其他玩家操作的车辆进行娱乐,玩家应该尽量操作车辆的前部去撞其他车辆的背部,这样可以抢夺对方的游戏积分,同样的,应该通过躲避尽量避免自己的背部遭到袭击。达到游戏时间后进行积分结算,确定本场游戏排名。
游戏操作:前、后、左、右,在移动设备上可映射为重力感应和滑动操作。 游戏可玩性:1.多样的车辆,不同车辆具有不同的外形、速度以及技能等属性,如加速快的豪华跑车、碰撞效果惊人的火车头等,玩家通过胜过获得游戏币来购买梦寐以求的车辆;2.多样的地形,可以绘制不同地域风情的竞技场,并且不同的竞技场
12
华东师范大学学士学位论文 基于Unity的车辆模拟游戏的设计与实现
应该有不同的物理属性增加车辆驾驶趣味,如冰川、泥泞的森林,以及适合车辆躲避的树、草、坡度等布臵;3.真实的物理仿真,如前两个特性所列,不同的设计会带来丰富的物理仿真效果。
(二) 游戏框架结构设计
如前文所述,一个游戏包含多个场景,玩家根据当前的游戏进度和选项进入不同场景。而游戏模块为游戏提供了一些必须用到的功能,这些功能,都是完全独立与所有的场景存在的,它们并不知道到底有多少关卡,关卡的内容是什么,它们的主要工作,就是与游戏的控制单元进行信息的交换,从而支持游戏的进行。
游戏框架设计必须符合游戏的玩法需求和所使用的工具,不同于大型的MMO(Massive Multiplayer On-Line) Game,《疯狂碰碰车》没有复杂的游戏系统,更加侧重于游戏可玩性的设计,并且由于使用Unity3D引擎,省去了许多底层模块的设计,其中核心的模块为:图形渲染、物理仿真、网络联机。图3-2为游戏系统的框架结构图:
疯狂碰碰车 图形渲染天空盒、地形、海平面、投影、3D模型、粒子系统外部输入物理仿真用户界面玩法逻辑网络联机音频输出日志记录Unity Mono虚拟机硬件设备
图3-2 游戏框架结构
13
华东师范大学学士学位论文 基于Unity的车辆模拟游戏的设计与实现
(三) 游戏层次结构设计
前文提到Unity3D中每个场景按照树形层次结构组织游戏对象,并且每个游戏对象可以拥有若干组件。所以整个游戏系统的实现必须遵守这种规范,在这种规范下为了符合软件设计的高内聚、低耦合的原则,使用MVC模型设计了一套游戏的层次结构,这样的好处是使游戏的结构清晰简单,三层之间互相隔离、互不影响,日后功能的扩展方便。如图3-3所示:
cmp sequence 视图层Hierarchy:MainCameraGameObject2GameObject3……控制层Component:UIManagerNetworkManager……?use?逻辑层Component:Component1Component2Component3Component4Component5…… 图3-3 游戏层次结构图
游戏系统分为三个层来设计,分别是:
视图层:主要为加入到场景层次结构的游戏对象,这些对象常常是渲染对象或摄
像机。
控制层:在主摄像机或者空对象中加入的管理脚本组件,这些脚本主要是针对对
应的功能模块的进行控制及与其他功能模块进行通信,如界面管理类、网络联机管理类。
模型层:主要是在渲染对象中加入的逻辑脚本组件,这些脚本对游戏对象进行逻
辑处理。
14
华东师范大学学士学位论文 基于Unity的车辆模拟游戏的设计与实现
四、 车辆驾驶游戏的实现 (一) 场景渲染实现
考虑到游戏的需求,整个场景主要包括几类渲染对象,如天空盒、水面、地形、外部导入的3D模型、投影、粒子系统等,如图4-1所示:
图形渲染天空盒水面地形3D模型投影粒子系统 图4-1 游戏场景中的渲染对象
下面主要介绍一些重要渲染模块的具体实现: 1. 天空盒
所谓天空盒,就是用一个作为远景贴图的立方体。在立方体的前后左右上五个面贴上纹理(需要时底面也可以帖)。在简单的天空盒实现中,只需要填写好六个面的24个顶点,并设臵立方体随着视点的移动而移动,这样就会给玩家带来天空是在极远处的错觉。但在较为复杂的应用中,还需要使用天空盒的纹理来生成Cube Map,并用之来做水面倒影、云影等特效的贴图。
图4-2 天空盒由六个面映射而成
在Unity3D中对天空盒有很好的支持,开发人员只需要几个简单的步骤:
15