2018-08-29 18:07:20 programmer_feng 阅读数 6514
  • 基于Unity游戏开发(上)

    本课程是Unity游戏开发的入门课程,课程分为上、下两个部分。上篇主要讲述游戏的基本概念、Unity的开发环境、游戏资源的创建和使用等基础内容。

    71668 人正在学习 去看看 李学明

UE4和Unity3D应该可以算的上是目前市场上最为热门的游戏引擎,也各自拥有为数众多的开发者。虽然一些大型的游戏公司仍然运用自家开发的引擎来制作游戏,但是在巨大的市场需求下,独立开发者与游戏工作室依然需要一款优秀的引擎来支持项目的开发。那么Unity3D和UE4究竟哪个才是游戏开发者的最爱呢?

 

个人认为还是要具体问题具体分析,像独立游戏、手游之类,小团队更倾向用Unity。如果做一些比较大型的游戏,对画质要求比较高的话,UE4显然更具优势。这两者不存在哪个更有前景的对比性,这个问题就好比问你独立游戏与3A哪个更好一样,各有千秋,因人而已。

从国内的情况来看,PC与主机游戏貌似远不如手游这么火爆,国内的游戏产业与设计也都远不如日本欧美,可能Unity更好一些。不过随着国内玩家的审美的普遍提升,对高质量的游戏呼声越来越高涨,UE4很有可能在未来成为主流。  

如何选择一款适合自己的引擎进行游戏开发,下面小编就从几个维度帮大家分析一下:

编程语言:

UE4采用C++的开发语言,而Unity使用C#与JavaScript,我们可以依照个人的能力与喜好来决定采用UE4或是Unity,虽然说有的人觉得C++已经过时了,但还是有不少的开发者偏好使用此编程技术,如果我们擅长的语言是C#,那么投入Unity的怀抱是毋庸置疑的选择。

图形能力:

在图像的表现上面,UE4的确已经建立一个超高的标准,也符合大家对3A级游戏的定义,从复杂的粒子模拟效果与先进的动态照明技术,UE4带给开发者一个全新的开发平台。图像的能力虽然不能代表一切,毕竟以现在的游戏市场来说,有创意性的游戏往往更能吸引用户的关注,尤其是以手游市场的整体效益来看,小而精致的游戏确实比起一些游戏大作更受到玩家的喜爱。

哪一个更容易上手?

在一些论坛里面多数人讨论的一个话题是,到底是UE4好上手还是Unity更利于开发? 其实讨论这个主题的意义不大,Unity在国内的使用人口与学习资源皆高于虚幻引擎,市场上招聘的开发人员也多以Unity为主,所以我们认为讨论这个主题必须根据区域的情况来做为前提,例如有人学了UE4后,发现市场的需求与机会不是很多,那是不是意味着必须放弃UE4来学习Unity?最简单的方法就是直接拿一个项目来做练习,分别将项目导入UE4与Unity,在实施过程中就会发现到许多的问题,这时就能根据自己的解决能力与手上的资源来判断哪一个引擎更适合自己。

如果有意向入坑游戏开发的话,个人建议如果没有基础的话,先学习Unity3d累计游戏开发经验,有基础有工作经验之后可以进阶学习UE4。要说前景的话,两个来说都是比较相近没有谁比谁更有前景,但是学习到高级进阶的话,又有长期从事游戏开发的经验,就业机会和待遇都要好很多。

 

2019-01-29 19:52:46 qq_38456196 阅读数 105
  • 基于Unity游戏开发(上)

    本课程是Unity游戏开发的入门课程,课程分为上、下两个部分。上篇主要讲述游戏的基本概念、Unity的开发环境、游戏资源的创建和使用等基础内容。

    71668 人正在学习 去看看 李学明

unity3D是如今绝大多数游戏开发团队的首选3D引擎,并且它在2D上的表现也及为优秀。它可以轻松解决很多其它引擎不能解决的问题,哪些游戏是用unity3d做的?

有的网友说unity3d开发的游戏,多数都是用在iphone以及android等手机端游戏。比较出名的是武士系列游戏,涂鸦保龄球,城堡勇士,3D方块贴图,以及很多僵尸游戏。

还有网友说:unity3d开发的网页游戏有坦克英雄、新仙剑Online、蒸汽之城、绝代双骄等,手机游戏有炉石传说、神庙逃亡、武士2、神庙逃亡2......

具体来了解下unity3d吧:

Unity的游戏和应用可以用C#语言,UnityScript(一种JavaScript的扩展)或者Boo(一种受Python启发的语言)来开发,其编译过程根据不同的目标平台而变化。

在PC,Mac和Android平台上,游戏代码可以被编译成字节码,可以在Runtime用JIT编译器执行。在其他平台上,游戏代码需要预编译,在建立的时候转化成为目标机器的本地代码。

Unity开发平台包括可视化编程工具和基于MonoDevelop的IDE,还有3D补偿引擎,脚本语言环境,工作流系统和团队合作版本控制。

Unity还运营着Asset store,这里面有超过两千种开发工具和游戏组件(艺术效果,编码,声音等),其中包括着一系列入门级基本功能产品免费为初学者提供。

Unity的用户可以通过为全部的平台(除了web浏览器)编写本地代码插件来从Unity API之外获取操作系统的功能和第三方代码库支持。根据不同的目标平台,Unity的runtime尺寸(不包含用户组件和游戏代码)大约为6MB到20MB。

Unity有免费版本,不过专业版增加了很多强大的功能,例如:自定义的Splash Screen,代码优化,视频回放,音频滤波,光影工具,低级补偿,性能优化和组件簇等。

总之,unity3d是一种很好的游戏开发工具。想了解更多unity3d知识?

 

毛子硬核游戏,逃离塔科夫,算是3A级别的了吧,画面精良,真没想到是unity做的……

 

Unity引擎不但适合中小型游戏而且也能做大型游戏,不过目前为止的确难以做出3A级别的游戏,但是并不是说Unity做不了大型游戏.有人老是拿仙剑6来说unity烂是不对滴...

差评!看完上面的回复我都出离愤怒了,居然没人提 "奥日与迷失森林"(Ori and the Blind Forest)! 

能不能作出来3A级别的游戏,跟untiy3d无关,只跟开发团队能力有关.....

更多unity2018的功能介绍请到paws3d学习中心查找。链接https://www.paws3d.com/learn/,也可以加入unity学习讨论群935714213

2011-01-26 10:33:00 unity3dstudy 阅读数 957
  • 基于Unity游戏开发(上)

    本课程是Unity游戏开发的入门课程,课程分为上、下两个部分。上篇主要讲述游戏的基本概念、Unity的开发环境、游戏资源的创建和使用等基础内容。

    71668 人正在学习 去看看 李学明

获取地址:

Unity3D:iPhone 3D 游戏开发大全(ISO+源文件)

 

本教程完全讲解了利用UNITY3D 开发iphone 3D游戏的所有知识。

 

获取地址:

Unity3D:iPhone 3D 游戏开发大全(ISO+源文件)

 

2019-01-29 20:44:38 weixin_34378767 阅读数 270
  • 基于Unity游戏开发(上)

    本课程是Unity游戏开发的入门课程,课程分为上、下两个部分。上篇主要讲述游戏的基本概念、Unity的开发环境、游戏资源的创建和使用等基础内容。

    71668 人正在学习 去看看 李学明
unity3D是如今绝大多数游戏开发团队的首选3D引擎,并且它在2D上的表现也及为优秀。它可以轻松解决很多其它引擎不能解决的问题,哪些游戏是用unity3d做的?

有的网友说unity3d开发的游戏,多数都是用在iphone以及android等手机端游戏。比较出名的是武士系列游戏,涂鸦保龄球,城堡勇士,3D方块贴图,以及很多僵尸游戏。
还有网友说:unity3d开发的网页游戏有坦克英雄、新仙剑Online、蒸汽之城、绝代双骄等,手机游戏有炉石传说、神庙逃亡、武士2、神庙逃亡2......
具体来了解下unity3d吧:
Unity的游戏和应用可以用C#语言,UnityScript(一种JavaScript的扩展)或者Boo(一种受Python启发的语言)来开发,其编译过程根据不同的目标平台而变化。
在PC,Mac和Android平台上,游戏代码可以被编译成字节码,可以在Runtime用JIT编译器执行。在其他平台上,游戏代码需要预编译,在建立的时候转化成为目标机器的本地代码。
Unity开发平台包括可视化编程工具和基于MonoDevelop的IDE,还有3D补偿引擎,脚本语言环境,工作流系统和团队合作版本控制。
Unity还运营着Asset store,这里面有超过两千种开发工具和游戏组件(艺术效果,编码,声音等),其中包括着一系列入门级基本功能产品免费为初学者提供。
Unity的用户可以通过为全部的平台(除了web浏览器)编写本地代码插件来从Unity API之外获取操作系统的功能和第三方代码库支持。根据不同的目标平台,Unity的runtime尺寸(不包含用户组件和游戏代码)大约为6MB到20MB。
Unity有免费版本,不过专业版增加了很多强大的功能,例如:自定义的Splash Screen,代码优化,视频回放,音频滤波,光影工具,低级补偿,性能优化和组件簇等。
总之,unity3d是一种很好的游戏开发工具。想了解更多unity3d知识?

毛子硬核游戏,逃离塔科夫,算是3A级别的了吧,画面精良,真没想到是unity做的……

Unity引擎不但适合中小型游戏而且也能做大型游戏,不过目前为止的确难以做出3A级别的游戏,但是并不是说Unity做不了大型游戏.有人老是拿仙剑6来说unity烂是不对滴...
差评!看完上面的回复我都出离愤怒了,居然没人提 "奥日与迷失森林"(Ori and the Blind Forest)! 
能不能作出来3A级别的游戏,跟untiy3d无关,只跟开发团队能力有关.....

更多unity2018的功能介绍请到paws3d学习中心查找。
2016-04-15 16:21:00 OnafioO 阅读数 51
  • 基于Unity游戏开发(上)

    本课程是Unity游戏开发的入门课程,课程分为上、下两个部分。上篇主要讲述游戏的基本概念、Unity的开发环境、游戏资源的创建和使用等基础内容。

    71668 人正在学习 去看看 李学明

Unity2016 Unity3D开发VR游戏的经验

http://z.youxiputao.com/articles/8313

在4月12日的Unite 2016大会上,暴风魔镜高级产品经理吴涛分享他用Unity3D开发VR游戏的经验,以下为分享实录:

我自己是从2010年开始使用U3D开发,之前是做大型端游,也用过虚幻引擎。2010-2011年,中国移动游戏开始爆发,就转到U3D做一些U3D手游开发,去年加入暴风魔镜从事应用开发。

首先给大家分享一下我做Unity开发的积累的经验吧,最早在去年的时候呢,我从手游的开发转到了VR开发。当时,我们的产品迭代周期是比较快的,而且还在使用Unity4.X某个版本,刚刚接手VR开发的时候很多问题开始暴露,比如我们的资源制作成本增加,资源量增多,性能指标提高很多,网络环境要求更加苛刻,基于这些东西,我们也做了一些基于U3D自己的优化。



基本上大家从事VR开发的时候,还是需要一些基础团队的,建议大家都有工程师。大规模的话,还需要一些U3D工程师。目前我们团队有4个安卓,还有6个U3D工程师。安卓做接口界面,还有C++开发。

首先,第一要介绍一下我们的版本管理。我们当时最早我在做这一块的时候,当时还是用了三点几的版本,我们服务器要进行OTA更新,当时设计了一个版本管理的配置文件,大家可以看到基本上我们的制作方式是在右面,有每个资源的命名,还有一些标志是否被压缩,比如说最后具体的路径



我们当时发现加载有点缓慢,所以之后把加到了VersionList上面,然后就进行二次拼接,这样保证本地版本和服务器版本的一致性。

为了去做刚才的版本管理的表,我将我所有的资源进行了一个大概的分类,对每一个分类都增加另外一套配置,可以看到那面,包括我们自己自定义的所有文件的合成,同样会带来一些路径,带来一些资源的ID,带来一些平台,当然也有类型压缩很多种方式,是否跟焦点绑定。



资源大概生成的过程的话基本上就是这样子,我们会自己写一个类似于生成的工具,然后我们资源制作完之后会放到自己的资源夹子,是跟美术资源分离,但会存在一个预制体和资源捆绑关系,将预制体进行build生成Assetbundle,我将原有的进行更新,再重新写我的VersionList,保证自己的新生资源和老资源是一致的。


大家都知道一般现在老的Unity版本经常资源会有一些泄露,比如说我们的美术资源经常被别人反编辑出来拿到图片拿到模型,所以说当我生成这个之后,在那里做一次资源的加密,当时制作是比较简单,现在会加更复杂的算法,比如一些越界对称非对称之类的,加这个之后呢我们遇到另外一个问题就是,因为VR,很多模型不像之前做手游可以删除一些,贴图可以小一些,他很大,这里的话资源加密之后又做了自定义压缩,当时我们找了很多相关的库,最后是通过我自己的源码,自己重新改过了一个自定义压缩库,他基本上我们在做完这步之后比以前的降了30%左右。

最后是资源管理和内存管理,我当时做的时候也是有一点困难,但是我当时就很庆幸的时候认识一个U3D工程师,首先是如果有相关连的时候会有三个游戏对象,当我释放一个的时候只将其中一个对象把他Release掉,另外两个不会,同样第二个释放掉也会把第二个Release掉,第三个全部Release掉的时候我彩绘全部UnLoad,有效降低内存使用,不会产生任何内存泄露。


同样基于刚才的算法,增加一个索引表,增加一个索引计数,做一些++和--的操作,直到Index为零的时候才释放Bundle。


另外这是网络更新,大家做网络更新很多人还用U3D提供的3W接口下载,很早的时候一直采用那个接口,大概4年前到5年前做过一款3D的ARPU,当时我要满足我的脚本跨平台,要保证足够的效率,解决一些崩溃性的问题,那个时候自己基于HTV接口实现3G缓冲下载,下载中会在内存中存放小的断点内存数据,之间的去写数据,然后当这个小的断点数据拿到内存值写到硬盘,之后下载到本地,下载完成跟本地文件进行拼接,在中间的小内存处理过程中会定期的去清理我的缓存,我知道大家有很多其他的接口可以完成缓存,但内存开销比较大。



我会开一个多线程去下载,这个下载效率我经过以前在CDA测试,可能不是太权威的测试,性能可以提升大概30%到50%,另外就是Json数据优化,那时候网络很差,都是3G和2G,那时候属于短连接的状态,发现最大的问题就是数据量很大,每次大家要等很久的时候,后面我做序列化压缩,压缩算法很简单,我每一次遇到List相关的我只保留第一个值,多余的相同的全部隐藏,这样当数据量比较大的时候,我们平均大概能优化70%的量。

另外就是一些渲染性能,我们如果大家最近在用U3D5.4Beta版本可以发现里面增加很多接口,比如说GPU,当时在我们使用的版本中是没有的,当时遇到了很多渲染性能的问题,因为当时的项目要求就是效果要好,画面要极致,但要流畅,所以当时做了很多扩展。



有过开发经验的人比较清楚我们的做法,基本上是进他们进行各种类型的合并。包括UV包括Texture。因为当时合并贴图性能非常差,我们当时是在网格合并索引合并顶点颜色的操作都是很快速完成,但贴图的合并当时是非常非常的延迟,那个时候我没有办法,就开始做一些C++扩展,在这里我们建了一个共享线程,用GPU实现贴图拼接,然后他是一个异步进行的,渲染过程中可能会有很多模型,但是可能在一开始进行的时候会有点慢,但你加载过程之后可能大概几秒之后会把他合成一个周扣,就瞬间性能提升下来,如果5.4大家可以去看U3D的接口,应该跟这个类似的算法。


有针对性的去使用着色器,在去年和前年的时候我在北京很多游戏公司的工程师还有老板去找过我,就说我们的游戏就性能很差,就是很多的机器跑不起来,或者很多的跑的不流畅,突然到某个角落的时候就开始卡了一下,我一般去到他们公司第一件事情看他们的文件夹,就说你的着色器到底有多少,美术使用多少,因为在中国来说很多美术的经验比较少的,可能对技术对渲染了解并不是太多,比如像一些可以用多少网格,多少三角形,有多少顶点,多少张贴图,场景可以做多大,我要占多少内存,其实这种有数据指标的东西比较好掌握合理解,但是涉及渲染的时候,他们用起来开始产生困惑,比如经常看到一些公司里面的一些游戏,他很简单的一个游戏的模型,他要表达一个效果,然后他可能会使用很多的寄存器和很多的贴图,但美术在使用着色器上只会用几个参数和几张贴图,那个时候当时也分析了他们的一些诉求,所以基于他们的渲染需求,我自己写了很多的着色器方便他们做各种各样效果,当他们效果匹配的时候,基本上让他们的着色器达到最优化,分析ALU,让他每次的每个使用是最优化的,不会有多余浪费和冗余。


我也是参考了一些插件中,一大部分是我自己写的,另外就是地形系统,最早我们就发现网格数比较大,比较浪费,虽然地刷很好用,那个时候就包括LED都很好用,但唯一一个就是最早的时候网格非常多,当时开使用一些自己创建的一些地形,地形模型去在场景摆放,摆放过程中发现他没有贴图混合功能,然后我当时就是有分析U3D的系统,自己去开发了一个BlendShader还有地表混合着色器,我们的植被是可以刷的,树干地表石头都可以采取Blend绘制,然后整个模型只有一个,网格数也是非常稀少的。


我以前去做一些游戏逻辑和人工智能,大家现在都知道大家都在写脚本,但基本上我当时也做过开发,比如一些内存加密等等,但是依然解决不了就开发的时候很多漏洞和调试问题,尤其是人工智能这一块,我想实现一个流程在引擎中,那个时候Animator出来了,利用这个状态图实现有线状态机,这些状态机的脚本都在本地里面存着,我只需要更新服务器上的小怪的AI,也是可以的。


另外是代码安全的问题,就是现在因为大家都知道很多的我们开发一些游戏发布出去,经常会有反BA的工具把我们反BA掉,当时也是发了很多文档,最后找到Mono虚拟机的原码,同样开发DLL也进行了重新编译,基本上可以进行加密,最后发布到Application中。



目前现在开始用另外的方法来做,这是比较老的一个方法,另外兼容和适配,最早做游戏的时候还是,为了覆盖大部分的安卓机型,需要做一个很复杂的兼容适配,发现比任何代码和算法都解决不了多机型适配问题,那个时候开使用大数据,将所有的机型配置分级别,对他们所用的配置,数据的话会直接存到服务器端,第一次登陆打开游戏的时候,会把机型发送到服务器上,服务器根据我本地的配置在服务器寻找相关的配置资源,游戏打开的时候自动的帮玩家适配好,根据机型最优化的表现方式。

希望大家在目前的话VR还是一个起步阶段,我们还是非常缺内容的平台,希望更多的开发者加入VR开发,我们也希望能帮助开发者一起去创造一个中国VR互联网的环境。谢谢大家。

posted @ 2016-04-15 16:21 00000000O 阅读(...) 评论(...) 编辑 收藏
没有更多推荐了,返回首页