基于Unity3D的跨平台手机网络游戏的研究与实现

关键词: 网络科技 游戏

上海半米网络科技公司是基于游戏平台运营、游戏软件自主研发与开发于一身的网络科技公司。在2014年7月-2015年5月期间, 以担任Unity3D主程序负责开发了《王牌联盟》游戏移动端版本, 其中包括i OS与Android平台。作为一款横版射击类养成游戏, 该游戏主要是闯关类游戏, 包括普通关卡、经验副本、精英关卡、无尽模式、材料副本等玩法;同时包含背包、商店、邮件、签到、强化升星、任务、科技研究、VIP、好友等模块。本次项目工作范围主要包括移动端版本的逻辑, UI适配, 子弹穿透, AI等问题。

一、Unity3D游戏引擎概述

对着当前跨平台技术的提出, 在市场中带有跨平台功能的游戏引擎也相继孕育而生。对于众多跨平台的引擎中, 若选用一款优秀的游戏引擎会达到事半功倍的效果。作为一种多平台的综合型游戏开发工具, Unity可以使玩家较为容易创建三维视频游戏与人物动画、可视化建筑等类型的互动型内容。另外其具备一个多方面整合的专业游戏引擎, 在编辑下可以采用多个平台运行。从而实现游戏的跨平台性能, 使开发出一款不受操作系统及硬件限制游戏的实现。

二、跨平台游戏的发展现状及开发流程

(一) 跨平台游戏的发展现状

在当前科技技术的发展的趋势下, 对于移动智能终端的产品的界定和种类都在不断的提升。平板电脑与智能手机作为最早普及的移动智能终端产品, 两者目前的市场规模皆实现了跨越式的发展[1]。由于人们生活水平的提高, 对于手机的更新换代也逐年处于增加的态势, 移动市场也发生着巨大的变化更新。面对如此庞大的市场, 游戏市场利用上市快、利润高等优势, 受到游戏软件平台研发者的喜爱。但随着人们对于手机换代的要求增加, 业内研究人员在如何开发易于移植的产品而努力。

在当前游戏软件火爆的今天, 游戏引擎以较多的种类, 厂商之间都在争夺自己的市场。从而对于游戏引擎本身来讲, 对于游戏的跨平台性也做了巨大的改进。目前较为欢迎的游戏引擎中Unity3D受到广大游戏开发者的喜爱。其在给广大玩家带来新鲜感与方便的同时, 跨平台技术也给作为游戏开发者来讲带来了一定的创意。最受到人们青睐的是, 它可以有效的节约游戏开发团队的时间与成本。在此情况下, 跨平台右下已逐渐成为国内外市场的重心技术。

(二) 跨平台游戏的开发流程

在将游戏开发平台及开发周期进行确定后, 首先是要进行游戏的提案。其主要是对游戏的内容、特色表现方式及风格进行确定, 开发游戏平台, 对技术的实力进行客观的评价。另外要对其开发的周期与所产生的市场效应进行评估。最终决定是否要对其进行开发的确定。

在对游戏的设计阶段主要包括策划、程序、美术等相关因素的协作。在策划过程中应该考虑到游戏的内容因素。例如在角色、道具、游戏地图与场景设计等方面。关于游戏美术的策划, 要根据角色, 原型等相关的情况, 确定出合适的游戏场景, 进行角色动化与UI贴图的设计[2]。另外在游戏程序设计方面, 首先要基于策划案提纲对应的引擎与逻辑等, 合理的设计脚本、地图编辑器。在结束之后还应该进行一定的测试, 确保不会出现明显的缺陷。最后则进行市场的评估, 要保持与外界良好的沟通渠道, 搜集与游戏相关的资源。关注类似游戏的市场效应, 其后根据相关的约定进行适当的推广。

在此方面的设计过程中, 应该分析各成员的策划案, 然后进行相关的编辑处理。由于不同的工作成员之间存在一定的相关性, 这样就应该合理的规划游戏的进度, 安排好相关的验收时间, 避免出现明显的延误情况。在对游戏项目审核过程中, 应该分析其品质是否要进行修改, 与此同时还应该考虑到游戏的可玩性, 从而提升游戏的品质性。最后是对于游戏的共测, 适当的调整游戏软件的相关参数。与此同时还应该根据相关经验而制作说明书和开发文档, 确定出共测的时间, 在此基础上满足相应的动态要求。

三、项目开发所面临的难点问题及解决方案

(一) 子弹穿透问题

最初在每个AI敌人或障碍物上都添加了碰撞器组件, 同时每颗子弹上也添加了碰撞器组件, 添加该组件后, 一旦子弹和其他物体相交时都会有一个回调函数被执行, 该回调函数会传入被子弹碰撞到的物体的名称, 可以通过这个得知子弹击中了哪个物体, 然后执行相应的逻辑, 这样的处理方式基本上没太大问题;然后在测试过程中发现经常出现子弹击中了物体但是回调函数却没有执行, 后来发现当子弹的速度过快时出现这种情况的几率很高, 具体原因是因为引擎会每隔一定时间去判断2个碰撞器有没有相交, 然而当子弹的速度过快, 在引擎判断的时间内就已经从该物体穿出, 引擎就识别不出子弹是否击中物体, 基于此原因我们放弃了使用回调的方式来判断是否击中目标, 而且通过从子弹前端发射出射线, 如果子弹前方有目标, 再判断两者的距离, 子弹的速度和目标的移动速度, 这样可以计算出在这段时间内子弹会不会击中该目标, 通过该算法解决了令人头痛的子弹穿透问题。

(二) 敌人AI的问题

由于当前AI (由人工制造出来的系统所表现出来的模拟人类的智能活动) 非常的热门, 当然在游戏中, AI也是随处可见的, 对其必须关注是如何让游戏角色能够向人或动物那样“感知”、“思考”和“行动”的问题, 让游戏中的角色看上去具有真实的人或动物的反应。

实际上, 对于游戏中的AI角色, 可以认为它们一直处于感知 (SENSE) ->思考 (think) ->行动 (Act) 的循环中。感知是指AI角色与游戏世界的接口, 其主要的作用是读取游戏的状态和数据, 为思考和决策收集信息。例如:周围是否有敌人靠近等等。思考是指利用感知的结果选择行为, 在多种可能性之间切换。例如:决定是战斗还是逃跑?逃跑东在哪里?等等。行动是指发出命令、更新状态、寻路、播放背景音乐和动画、生命值增减等等。

尽管每种游戏需要的AI技术都有所不同, 但绝大多数现代游戏中对AI的需求都可以用三种基本能力来概括。如运动、决策和战略。

在这个模型中, AI任务可以总体上划分为运动层、决策层及战略层等几个层次, 前两个层的算法是针对单个角色的, 后一个的测针对群体。需要注意的是, 这只是一种基本的AI架构模型[3]。在实际中, 根据游戏的种类与需求, 可能会有所细化或增删。例如, 棋类游戏就只有战略层, 因为这种游戏中的角色不需要自己做出决定, 也不用考虑如何移动。而其他许多非棋类游戏中, 就不包含战略层, 可能反应迟钝, 只需要每个角色做出简单的决定, 并且依次行动, 而不需要角色之间协调工作。下面来分别分析这三层的任务。

运动层, 在运动层中的任务有导航和寻路, 其和角色的移动存在一定的相关性, 在具体的移动过程中, 还应该得到动画层的配合。例如:我们在游戏中可能会遇到这种情况:在某游戏关卡出, 当敌人 (此处指电脑) 看到你时, 他需要召集队友, 那么他要拉警报, 这就需要他们先移动到最近的固定的警铃, 当这个铃较远时, 他需要避开障碍物和你才能到达, 这就需要较复杂的导航与寻路算法。

当然, 角色的许多行为可以直接由画层面进行处理的。例如, 角色的某项任务是坐在餐桌前, 这时如果角色选择吃东西的决定, 那么我们就只需要播放吃东西的动画就行了, 从而避免利用其它AI的算法。在运动层所包含的算法可有效的转化相应的决定策略活动。例如, 若某一个AI角色决策出在攻击玩家时, 运动层就会利用和移动相关的算法, 以接近玩家的位置, 来执行决策。然后再进行攻击画面的播放, 以及对于玩家生命值与角色处理等。

决策层的任务是决定在下一个时间该付诸什么样的行为。其功能是以利用有限的动态机或行为树等技术来实现。也可以采用更为复杂的AI技术, 例如对于模糊状态机与神经网络等技术的实现。在此项游戏中, 在角色看不到玩家的情况下, 就进入巡逻的状态, 否则就进入战斗的状态。在攻击的情况下可以进行扔手雷、火力压制等附加的决策。

战略层和相关角色的总体行为密切相关, 这时AI算法会对多个角色的行为都产生相应的影响。在小组中的每个角色都可以有他们自己的决策层和运动算法, 但总体上, 它们的决策层会受到团队战略的影响。

只有运动层和决策层情况下, 也可以很好的满足相关的功能要求。实际中游戏一般只涉及到以上两层。在一定的团队协作情况下, 需要某些战略AI。在本次项目中就以采用行为作为敌人AI的方式来实现。

(三) UI模块适配的问题

由于移动端设备有着不同的分辨率, 为了保证UI的正常显示, 我们UI设计采用最大宽高比和高度自适应的原则, 同时UI元素更多的采用锚点, 大体上解决了UI适配的问题。在实现游戏的多平台时, 当前主要是要考虑两方面的因素。

对于各个平台分辨率不同引起IU错乱, 主要代码编写中获取Screen的height与width参数, 根据屏幕的比例从而使各个元件的大小发生改变, 致使游戏可在多个大小不一的屏幕上都能够正确的显示[4]。另外对于不同平台支持的类库不同造成的游戏的崩溃, 在对各个类库进行引用时, 首先要对各个类库所支持的具体平台进行充分的了解。如果出现那种调用的类库只属于某特殊平台时, 最稳妥的方法就是将该类库的调用进行取消, 并可尝试其它类库或以自己编写的类库进行调用。

四、结束语

综上所述, Unity3D跨平台引擎发展带动了游戏平台的快速发展, 其软硬件平台也使跨平台引擎有了质的飞跃。在此项《王牌联盟》游戏开发过程中所面临到的问题是子弹穿透、敌人AI及UI模块适配的问题, 在对其进行解决的同时, 以Unity3D引擎跨平台为基础在手机网络游戏的研究中充分的进行体现。

摘要:由于在当前智能手机的性能提升与普及迅速发展的大背景下, 手机在游戏操作方面的表现也更加进行了优化。目前玩游戏已经成为在人们使用智能手机中不可少的日常消遣活动, 同时在对于网络游戏市场的竞争也日愈加剧。在此种情况下, 网页3D游戏与手机平台网络游戏已成为创业团队的另一种选择。本文主要阐述对于Unity3D游戏引擎的应用是解决这种类型游戏的良好方案, 逐渐被研发团队所注重。

关键词:Unity3D,跨平台手机,网络游戏

参考文献

[1] 焦花花.基于unity3d技术的网络游戏设计[J].电脑迷, 2017, (20) :63-64.

[2] 肖霄.基于Unity3D游戏引擎的休闲类手游设计与实现[D].武汉:华中科技大学, 2014, (58) :177-178.

[3] 陈日鑫.跨平台3D无限轴游戏的研究与实现[D].长春:吉林大学, 2012, (12) :87-88.

[4] 黄辑林.基于Unity3D引擎的手机端游戏的设计与开发[D].西安:西安电子科技大学, 2015, (7) :31-32.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:JAVA应用程序开发 下一篇:网络教学平台论文:基于WebService技术的网络教学平台的设计与实现