Unity3D游戏开发之开发游戏带来的问题

昨日曾就某投资人把移动团队失败原因之中的一个归于选择Unity引擎进行了一番评论,工具本身无罪,但怎样理解工具、正确使用Unity引擎确实须要讨论,在选择Unity之前你也许须要了解下这个引擎实际开发过程中的技术特点、以及适应的游戏产品类型,热心读者Fxcarl昨天就这个问题专门撰文一篇,来帮助大家了解Unity游戏开发、分享心得,推荐阅读。

  代码驱动带来的技术题

  游戏碎片化。U3D 引擎有个非常有力的特色,就是实时编译执行。这意味着不管在不论什么时候,仅仅要按下执行图标,当前的场景就会进入可执行状态。这导致了游戏在开发的过程中常常陷入一种不应当的自信状态。同一时候也导致了游戏内容长期处在碎片状态下,并低估游戏功能整合时可能遇到的困难。

  资源管理是 U3D 引擎的一个难点。U3D 的资源管理系统由于跨平台的缘故和操作系统的文件系统是脱钩的,须要熟练的掌握 Resources 文件夹和 Assetbundle 的技术才干灵活的控制游戏中的资源使用情况。但这一工作时常会被简单的理解为将资源放置在游戏project文件夹下,剩下的交给引擎自己搞定 ……

  须要自己做数据系统。我们现在国内研发的作品,绝大多数是数据密集型(策略、经营、卡牌、KRPG),这和 Temple Run 这种游戏类型有些不同。数据密集型的游戏须要採用数据驱动的形式来进行游戏的设计和开发,可是 U3D 提供的框架是一个代码驱动型的结构(对于原型开发来说极为有力)非常多时候会让研发团队陷入泥潭 —— 看起来功能开发出来了(仅仅要在U3D的对象检查器里调调參数就能工作),却迟迟无法进入大规模制作阶段(策划拿着数据表格却无法应用到游戏里)。U3D 引擎本身也没有提供不论什么在数据方面的支持,数据表要么须要自行处理,要么须要自己寻找嵌入式的数据库解决方式。

  网络连接部分事实上也是类似。U3D 本身集成的网络模块并非为大规模 C/S 结构的游戏所设计,常须要自行开发一套client和server结构。当然也能够求助中间件来解决 …… 可是easy让人迷惑的地方在于,U3D 既能够使用 .net 的网络机制像端游一样工作,也退一步能够用加密的 www 机制,当一个简单的页游来处理。怎样抉择是个难题,贸然贪多求全往往换来遥遥无期。

  測试 U3D 开发的游戏亦一个非常麻烦的过程。原因也是那个差点儿不会崩溃,随时可执行的场景/逻辑混成编辑器 —— 它会让开发团队误算自己当前的游戏完毕度,以及须要什么样的測试。

  尖端技术带来的麻烦事

  高精尖的动态光照和复杂材质系统。U3D 比起其它的移动平台或者网页游戏开发工具而言,往往最打动人的就是其无与伦比的画面渲染效果。可是在光鲜的官方演示背后,仿佛总有看不到的壁垒阻碍着其它开发人员的步伐。实际上驾驭 U3D 所须要的能力是超乎一般想像的。U3D 的渲染架构的确够强大,完毕 Unreal 甚至 CryEngine 级别的画面渲染质量都是可能的,可是它并没有包装这些系统而是将灵活性交给了开发人员。我们的程序猿是否已经控制住了渲染管线的复杂度?我们的技术美术能否够指导我们的美术完毕充分发挥 U3D 能力?美术制作人员是否有具有胜任所谓“次世代”精度要求的游戏内容制作?这些东西属于小团队吗?

  全局光照烘培。这是一个很很很有用的 U3D 功能。理应全部的 U3D 团队都灵活使用。可是想要用好就有了另外一番难度 —— 美术和场景制作人员的配合,而谁来负责就比較难说了。另外美术必须用很精准的尺寸来制作场景中的物件,否则 U3D 将无法正确的处理全局 UV。

  工具链带来的纷纷扰扰

  GUI 系统的各种理论。全部人都在吐槽 U3D 自带的 GUI 系统太慢 —— 问题是真的有证据吗?一方面非常多人说我做測试的时候做了一大堆的控件,的确非常慢。另外一方面大家也会发觉 GUI 系统会带来一些不必要的渲染请求(Draw Call)。于是大家都在拼了命的做两件事情,一个是降低渲染请求,一个是想尽一切办法的避开 GUI。但事实上情况没那么严重,不管是挑选替代中间件如 NGUI 还是直接使用 U3D 的 UI 系统都不会巨大的影响 —— 除了不当使用之外极少见到 GUI 成为性能焦点的时候。只是不管是
NGUI 还是 U3D 内置 UI 都没有非常好的 UI 工具 —— 要么过于程序猿导向,要么过于偏向布局而不方便添加代码功能。内部开发一些扩展工具或者工作流程都非常有必要。

  版本号控制的难题。Asset Server 还是 SVN 事实上多多稍稍都有不适应 U3D 的情况。可是更关键的地方在于整理好文件的内部结构以及常常备份。恰当的使用 U3D 的命令行模式能够实现 U3D project的自己主动编译公布。

  扩展 U3D 本身功能的能力。由于 U3D 较为完整的功能而忽视对 U3D 本身的功能拓展是一种常见状态,随时保持专人不断的优化 U3D 本身的功能是非常重要的,譬如各种各样的批量化操作等等。可是这有个前提,扩展工具须要充分理解工具,U3D 相对来说功能过于强大,以至于非常多团队中的成员会害怕学习,而将 U3D 作为少数团队成员或专属于程序猿的工具 —— 这就非常成问题了。

  须要前瞻性的推断能力

  每个,每个国内开发 U3D 游戏的团队都在抱怨 U3D 的中文字体支持问题等等。但是实际上真正用前瞻性的角度在使用 U3D 引擎的团队并不多 —— 以今天此时此刻为例,U3D 4.0 已经能够在不论什么平台上使用动态的字体,支持 Unicode 编码 —— 中文不在话下。从 U3D 3.5 迁移到 4.0 差点儿不用对项目做不论什么的改动,而假设说之前并不知道 4.0 会支持动态字体的话,那么为什么不多去官方论坛关注一下每个版本号的开发进度情况呢?每个在 2013 才会公布的游戏都不应该操心字体问题才对嘛 ……

  保持对每一个版本号 U3D 更新内容和未来 U3D 功能的关注能够大量降低又一次发明轮子的问题,也能在遇到一些困境时保持更好的心态。直接邮件开发人员也会是个非常好的选择,请一定要多骚扰他们!一般提前3个月到6个月就能获知将来版本号可能更新的内容的。

  1 “Code-Driven”

  State Management

  Assets Management

  Data Management

  Networking

  Testing

  2 CuttingEdge Techs

  Dynamic Lighting & Complex Materials (Textures)

  LightmAPPing

  Nav mesh

  Mecanim

  DX11

  3 Toolchain

  GUI

  VersionContorl

  4 Vision

很多其它精彩请点击http://www.gopedu.com/article

时间: 2024-07-29 15:45:25

Unity3D游戏开发之开发游戏带来的问题的相关文章

Unity3D游戏引擎实战开发视频教程

Unity3D游戏引擎实战开发从入门到精通(坦克大战项目实战.NGUI开发.GameObject) 适合人群:初级 课时数量:20课时 用到技术:Unity3D.VS2008.NGUI2.61.GameObject 涉及项目:坦克大战项目实战 咨询qq:1840215592 课程内容简介 Unity3D游戏引擎实战开发从入门到精通课程由浅入深的介绍Unity3D的开发流程.从软件使用到API接口的使用,从成品到优化.介绍整个Unity3D的基本开发过程及开发中碰到的基础问题进行深入讲解.对代码重

iOS游戏开发 软件开发 UNITY3D软件外包 APP定制

iOS游戏开发 软件开发 UNITY3D软件外包 APP定制 软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程.软件开发是一项包括需求捕捉.需求分析.设计.实现和测试的系统工程.软件一般 是用某种程序设计语言来实现的.通常采用软件开发工具可以进行开发.软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关 的文件一般也被认为是软件的一部分. 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联

Unity3D研究院之详解游戏开发音频的播放

游戏音频的播放在任何游戏中都占据非常重要的地位,音频的播放还可以分为两种,一种为游戏音乐,另一种为游戏音效.前者适用于较长的音乐,如游戏背景音乐.第二种试用与比较短的游戏音乐,如开枪,打怪 时“砰砰”一瞬间播放的游戏音效.今天MOMO将用下面的例子带盆友们去剖析Unity3D游戏音乐与音效的播放. Unity3D游戏引擎一共支持4个音乐格式的文件 .AIFF  适用于较短的音乐文件可用作游戏打斗音效 .WAV  适用于较短的音乐文件可用作游戏打斗音效 .MP3  适用于较长的音乐文件可用作游戏背

三年一个人使用虚幻引擎(UDK)开发的一个游戏心路

三年一个人使用虚幻引擎(UDK)开发的一个游戏心路 转载   出处来源http://mobile.51cto.com/news-488590.htm 对于我个人来说,完成她的意义不仅在与完成了一个儿时的愿望,也是一次战胜自我的旅程,3年的时光,经历了种种变荡.最终,通过压榨自己的业余时光,学习新语言,新游戏平台,3D建模,3D动画,美工,音效,FLASH,各种配置. 作者:来源:CocoaChina|2015-08-18 09:57 收藏 分享 这个游戏没有做任何宣传(这个帖子算是第一个吧),其

firefox os 开发踩地雷游戏源码

踩地雷这游戏在大家生活中应该不陌生吧!咋们八零九零后都基本上玩过这款游戏,这也曾是windows xp上一款标配的单机游戏,想想无聊的时候拿出来玩玩倒是不错,今天推出Firefox os版踩地雷源码,希望给大家学习Firefox os带来帮助! 点击下载:firefox os 开发踩地雷游戏源码 编辑@5狐网 firefox os 开发踩地雷游戏源码

MMORGP大型游戏设计与开发(客户端架构 part8 of vegine)

脚本模块是游戏设计中争论比较多的话题,那是因为作为脚本本身所带来的利弊.其实这都无关紧要,取舍是人必须学会的一项技能,如果你不会取舍那么就让趋势给你一个满意的答复.自从魔兽世界以及传奇(世界)问世以来,它们都伴随着脚本(LUA)配置,想一想为什么会用到脚本,其根本的原因在于脚本比较方便,改动的时候也无需考虑过多.个人一直坚持使用脚本就在此,另一方面是因其他高级语言,特别是C/C++与它的基本上是无缝的耦合所带来的便利,也成为我选择它的重要原因. CODE 文件environment.h /**

C# 开发2048小游戏

这应该是几个月前,闲的手痒,敲了一上午代码搞出来的,随之就把它丢弃了,当时让别人玩过,提过几条更改建议,但是时至今日,我也没有进行过优化和更改(本人只会作案,不会收场,嘎嘎),下面的建议要给代码爱好的童鞋完成了. 更改建议: a.当数字超过四位数时,显示的时候有部分被它的容器TextBox遮挡了,能不能把显示的数值变小点?答案是可以的.代码里有一段通过矩阵数据填充TextBox值的操作,可以在填充时,判断下数值长度,然后修改TextBox的文字大小. b.玩游戏的时候,使用方向键移动时,焦点可能

MMORGP大型游戏设计与开发(客户端架构 part1 of vegine)

重写有些核心接口的时候,其实遇到了许多的问题,甚至一度的想过要放弃,但是最终还是坚持了下来.在客户端提供的这些接口中,可以清晰的看到客户端所依赖的各种模块的支持,以及各自之间的一些关联.下面只是介绍了vengine(微引擎)接口的基础模块框架,所谓的接口即对象设计中常见的Interface,为一个框架提供了清晰的规范支持. VEGINE FRAMEWORK 功能实现 该接口已全部实现,具体的实例只需要继承接口封装即可.上图只为简单的模块介绍,其实每个接口都有每个接口其特别的用处,这一点会在接下的

javascript+HTMl5游戏下载,开发一个都能月薪上万!舅服你

HTML5时代已经到来许久了,你是否已经掌握了那么一点呢?今天小编给大家讲讲h5的折叠多设备.跨平台特性, 即用HTML5制作游戏.相比flash,HTML5更加灵活方便,随着浏览器技术的不断升级,HTML5一定会广泛使用,至少在网页动画方面,下面是一些利用HTML5完成的游戏作品.你是否能在这个领域有所建树就看你掌握H5多少技能啦? HTML5切水果游戏: 这曾是风靡全球的一款手机APP游戏切水果,现在JS小组已经将其改版成HTML5,并将其开源.下面的所有游戏我都已经用到自己的域名上线了,想

使用Html5+C#+微信 开发移动端游戏详细教程 :(三)使用html5引擎搭建游戏框架

教程里的案例我们是通过H5游戏引擎开发,目前H5的游戏引擎比较好用的是白鹭,不过对于新手来说白鹭的开发环境和工具使用过于复杂,这里推荐一个国内大神编写的游戏引擎:lufylegend. 直接在页面引入Js文件,就可以开发了,运行效率非常高效,语法是仿AS3语法,懂C#的人上手会很快. Lufylegend引擎具体的API和使用方法可以参考官网和论坛: http://www.lufylegend.com/api/zh_CN/out/classes/FPS.html 之前微信上有一款"怪兽必须死&q