资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于Unity3D的角色扮演类游戏设计专业:数字媒体技术【摘要】游戏开发行业,随着移动领域的崛起,近年来变得越加火热,各游戏开发公司纷纷投入移动游戏的研究开发,其中Unity3D和Cocos2D两款引擎受到了各公司的青睐,游戏开发人员供不应求。本文将介绍如何用Unity3D引擎开发一款角色扮演类游戏的全过程,其中包含了Unity3D引擎使用的介绍、游戏策划及游戏各大功能模块的实现。在游戏策划中将规划整个游戏项目的背景故事,游戏场景,游戏系统等,为后面实现游戏功能代码打好基石。在游戏程序开发中,将使用Unity3D提供的编辑器结合C#先实现游戏流程整个程序框架,然后按照框架流程完成游戏各个模块的功能,最后将游戏进行Windows和Android双平台打包调试。1 前言1.1 项目背景与设计理念随便国家的富强,科技的发展,越来越多的人们需要在工作闲时进行娱乐休闲,游戏产业也随之诞生。在21世纪的互联网高速发展之期,游戏行业不断壮大,从最早的红白机时代,再到主机时代,随后PC计算机的崛起让游戏行业大放光彩,直到近年来移动领域的热潮又将手机游戏推向了顶峰。在这样的背景下,也越来越多的公司投入的游戏研发中,不过由于每次开发一款游戏都得重头开始编码,效率低,成本高,所以游戏设计者想如何去复用之前的东西从而进行快速发开。慢慢的,游戏引擎(GameEngine) 问世了,它集成了图形引擎、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理等,为游戏设计者提供各种编写游戏所需的各种工具,大大提高了游戏设计者开发游戏的时间和成本。1.2 游戏设计方法与实现技术角色扮演类游戏(Role-Playing Game),提供虚拟的计算机游戏世界,该游戏世界提供虚拟的游戏角色供玩家选择并操作,最终使得玩家在该世界实现自己的第二人生为目标。RPG框架的设计和研究自RPG诞生以来不断进步,至今发展到由引擎技术制作的时代。RPG游戏设计较为复杂,系统主要以战斗、剧情、任务,交互、装备等系统为主,其中战斗系统为RPG游戏设计的核心部分。战斗系统主要包含:1、 属性系统:这是游戏中最简单的系统,包括了主角、物品、NPC、技能、怪物等各自的属性值,通过属性值可计算出战斗中各种逻辑交互数值。2、 状态机系统:该系统标志着一个人物或者怪物现处于什么状态,相对于动作而言,人物是站立中?还是跑动中?还是与敌人打斗中?当然有些状态还是可以同时拥有的,这些状态需要在程序中利用不同的变量值来区分。所以战斗规则越多,状态机逻辑也就越复杂,所以在开发过程中需要预先制定好一套方案,否则在后续开发中将越加难以维护。3、 行为系统:该系统决定了游戏的表演方式,每一个动作或者声音的表现都由行为系统来管理。4、 人工智能(AI):该系统主要为了人机交互而生,在战斗过程中,敌人将以怎样的表现和玩家对战,越是强大的敌人,其AI设计过程也就越复杂,需要通过不一样的算法结合起来推导出一套怪物的AI指令。1.3 本项目的设计思路与实现技术本项目将设计一款角色扮演类游戏,游戏将采用Unity引擎进行制作,游戏中将实现游戏登录、交互、战斗、保存等几大功能,各功能间还包含了许多与之相依赖的小功能。项目利用.net下mono的跨平台编译技术,使用C#在windows环境下进行跨平台开发,再结合Unity引擎提供了强大的API函数库和渲染引擎技术来实现整个RPG游戏的技术实现。1.4 本项目的主要工作任务本项目的的主要设计工作包括:(1) 设计一款基于移动平台的RPG游戏(2) 策划RPG游戏各模块玩法及系统功能(3) 利用Unity3D引擎完整的实现游戏所有功能(4) 对最终实现游戏进行打包调试本项目通过对Unity3D引擎的一年的学习,实验了许多的小项目,最后总结了如何利用它来快速开发一款RPG游戏,从前期的游戏策划,游戏功能布局,再到游戏的程序框架、功能开发,到最后的打包调式,本文都将通过该实例一一描述。2 项目介绍2.1游戏引擎介绍Unity3D是一款由Unity Technologies开发的跨平台游戏引擎,该引擎集成了强大的可视化用户编辑器,采用了组件式开发,使开发者能快速的开发出自己的游戏。该引擎由于可进行跨平台发开,在移动领域崛起时,受到了很多开发者的青睐,现已越来越多的开发者投入其中,已成为目前世界上使用最广泛的游戏引擎。在图形方面,Untiy3D采用了主流的实时光照,Lightmapping,全局光照GI等技术,使游戏界面更加逼真。在程序方面,该引擎支持用C#和原生的UntiyScript进行开发,大大加快了用户开发进度,而且还提供了AssetStore商店,让开发者能在里面找到想要的插件,能快速实现想要的功能及效果。2.2 游戏介绍本文将以中国古代唐朝做为历史背景,利用Unity3D开发一款基于移动端的ARPG手游。游戏类型:ARPG游戏平台:Win、Android游戏风格:中国古代游戏玩法:玩家通过副本战斗消灭敌人获得奖励,还可以通过商店购买等不断强大自己。2.3 游戏故事背景在开发游戏前,制定一个好的背景题材将决定了游戏后期的发展。如何定一个好的故事背景,需要针对玩家的喜好而决定,好的题材将更喜欢玩家的关注,所以好的故事题材将为游戏奠定基石。本文中,制定了近期较为火热的中国古代唐朝题材为背景故事,打造一款即时战斗的ARPG游戏,让玩家在游戏中体验打斗的快感和古典韵味。2.4 游戏场景游戏场景作为游戏主要的交互区,它承载了玩家在游戏中的大部分交互,其对游戏的重要性不言而喻。游戏场景可分为2D和3D,2D场景都是由一张张图片拼成,效果相比3D稍差一些,3D给人感觉更真实,仿佛身临其境的感觉。游戏场景还分为很多种风格,有古风,韩风,欧美风,日漫风,水墨风格等等,该如何去选择这就需要根据题材来决定了。本文中由于题材定位中国古代,所以场景也为中国古代风格的场景, 其风格华丽,浑厚庄重,线条平直硬拐,装饰丰富,令人感觉心旷神怡。 图2.4 (1)华丽的长安城图2.4 (2)华丽的长安城2.5 游戏角色一款好玩的游戏、受欢迎的游戏,其中必定有几位受人欢迎的角色,每个角色有着自己独特的性格和能力,更加能被玩家们记住。那么要创作一些好的角色也不容易,其中有一点很重要,那就是每个角色都要有自己存在的价值,形成鲜明的对比,要与其他角色与众不同,因为玩家们总是会喜欢独特的那位。本文中的游戏主角为一位初出茅庐的道士,道士途中遇到了各种磨难,消灭敌人,一步步的成长起来。道士的武功主要以剑术为主,因为性格较为外向,相信颇受玩家喜爱。本作中还有另外两位角色,后续还可以继续为游戏添加新角色,从而丰富游戏哦。图2.5 帅气的道士2.6 游戏系统本文中的游戏功能系统主要为分以下几类u 游戏登录u 创建角色u 背包系统u 装备系统u 战斗系统u 副本系统u 商店系统u NPC系统u 数值系统以上几类为本游戏大致的游戏功能,这些功能在RPG类型的游戏中必备的几项,通过这些功能系统,能够展示出一款RPG游戏的核心玩法。其中数值系统最为重要,一款好的RPG游戏不仅要满足玩家对画面以及功能上的需求,还要满足玩家的虚荣心。一款RPG游戏是不是好玩,和数值的相关性不是特别大,但是游戏是不是不好玩以及能玩的多深入,和数值的关系就很大了。数值做的不好,在表现层面上是让游戏流程的体验不好,比较容易出现的两个极端是过度的挫折感(练功十年,出门就被小兵秒)和茫然所失的成就感(玩家还没发力,Boss就扑街了?)!所以说,如何巧妙的运用这些数值来构建起整个游戏的可玩性是至关重要的,得学会如何去根据玩家的需求来构建不一样的数值系统。3 游戏程序框架设计3.1 游戏核心本游戏将采用组件式的模式进行开发,不同组件维护着自己相关的功能,不与其他组件进行直接交互,降低层与层之间的耦合(俗称:解耦),便于后期维护。本作还将根据MVC模式,即数据模型(游戏数据)、视图(UI)和控制器(管理器)来编写整套逻辑程序。MVC模式所带来的优点:1、开发人员可以只关注整个结构中的其中某一层;2、可以很容易的用新的实现来替换原有层次的实现;3、可以降低层与层之间的依赖;4、有利于标准化;5、利于各层逻辑的复用。数据:管理游戏程序中各种数值数据。视图:Unity中的控件都必须继承于Monobehaviour。管理器:对数据和UI进行操作和管理。本文中的管理器都将继承于Graduation.Component,这个类是本作者自己写的一个组件管理,利用组件容器将每个管理器加入容器中,便于对各模块的管理器进行管理和交互。游戏核心架构:游戏核心(GameCore)(单例)游戏管理器(GameManager):场景管理器(SceneManager)数据管理器(DataManager)资源管理器(ResourceManager)UI管理器(UIManager)游戏组件(Component):音效管理器(SoundManager)网络管理器(NetManager)配置管理器(ConfigManager)逻辑管理器(LogicManager)动画管理器(AnimationManager)游戏启动流程:/ 启动游戏./ 1.加载配置表InitConfig();/ 2.加载组件InitComponent();/ 3.加载游戏资源InitResource();/ 4.初始化网络模块InitNetwork();/ 5.进入游戏EnterGame();图3.1 游戏核心框架流程图为了游戏开发中的方便使用,作者在开发前已经封装好了一整套常用工具库,工具库大致包含:文件读写工具类,数值计算工具类,UI工具类,序列化工具类等。有了这些工具库,在开发中可以更快速编码,省去了频繁写一些常用逻辑的时间。3.2 游戏UI框架在Unity3D早起的版本里,UI系统在引擎中是较为薄弱的,只能通过Unity提供的一些API来实现UI的搭建,但这种方式效率实在太差,改起来也非常麻烦。由于Untiy越加的火热,Unity 的Asset Store 商店的插件也越来越多,其中Next-GUI插件(下文简称:NGUI)最受开发者欢迎,因为其弥补了Unity本身的弱点,把UI系统变得非常的强大,甚至用完美来形容。使用NGUI插件可以让用户通过可视化界面的方式,只要在界面上拖入各种控件、脚本,再结合自己的一些逻辑代码即可完成游戏所需的界面。在Unity4.6版本中,Unity开发组认识到了UI系统的薄弱,随即也在该版本发布了新版UI系统(简称;UGUI)。它仅吸取了NGUI的各种优点,由于UGUI属于原生系统,所以性能上会比NGUI好很多,渐渐的也被开发者所接纳。在本游戏中,将采用Unity最新的UGUI系统来完成整套游戏UI界面的开发,并讲述如何来搭建游戏的UI框架,一套好的UI框架将使后期开发起来更加便捷。图3.2 游戏UI框架流程图UIBase:该类为所有UI脚本都继承的基类,该类重载了大多数MonoBehaviour函数,方便在后期资源管理以及界面动画等进行统一管理。UIManager:该类将统一管理所有UI界面的显示、隐藏、动画、音效,所以需要显示的UI界面都需要通过该类进行注册才能使用,该类还提供各种通用UI界面,例如消息框,提示框
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号