转自mobilehub公众号(ID: mobilehub),作者:屠敏

VR浪潮席卷而来,相对于资本的狂热,现实中真正需要的是有实力的VR硬件研发团队和专业内容制作队伍。对于入门级的开发者而言,游戏引擎的选择成为了一大难题。

目前虚拟现实游戏开发引擎有很多种,其中两大主流的引擎为Unity和Unreal Engine,目前这两种引擎支持最大VR平台,如Oculus Rift、HTC Vive、Gear VR和Playstation VR等。本文将解析Unreal Engine和Unity引擎优缺点,为入门级的开发者选择提供一些建议。

Unity - 手游的天下

Unity 3D是Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。起初它只能运行在Mac系统下,到了后来开始支持Windows系统,可发布游戏至Windows、Mac、Wii、iPhone和Android平台。

Unity优点

  • 手游的第一选择,网站上有很多的教程和文档(特别对于入门级开发者);

  • 使用C#和JavaScript编码(C++可以在特定领域使用,但并不推荐);

  • 比较友好,可用插件较多,开发效率高;

  • 简易且直观的UI界面及易上手学习设置;

  • 适用用低配置的硬件。

Unity不足

  • 相比Unreal Engine4(UE4)3D画质不是最好的;

  • 材质Shader复杂;

  • 源代码不公开;

  • Unity免费,Unity Pro和Unity iOS Pro仅提供30天全功能试用期;

Unreal Engine(UE)- 开发者的天堂

提到游戏引擎开发不得不提虚幻(UE),UE是目前世界最知名授权最广的顶尖游戏引擎,占有全球商用游戏引擎80%的市场份额。像业内人士分析的那样,根据项目类型和预算来看,预算充足就用虚幻,想快速开发就用Unity。大型游戏项目还是虚幻更合适。

UE优点

  • 入门级的开发者可以在网上找到很多教程和文档;

  • 有专用的设计资源和优化公司,打造高端和沉浸式VR;

  • 使用蓝图(可视化编程)。拖拽节点和定制C++代码。然而,并非听起来这么容易,蓝图有自身的学习曲线;

  • 免费;

  • 可预先构建框架,快速创建环境和粒子系统,百万级渲染;

  • 更好的画质,材质编辑器较好;

  • 引擎的源代码可以从Github开源社区下载,意味着开发者实质上可以修改任何任何东西,包括物理引擎、渲染和图形用户界面。

UE不足

  • C++(仅限于初级开发者不熟悉这门语言);

  • 加载时间比较久;

  • 实时处理较差。

总结

总的来说,两种引擎是开发VR的主流引擎。Unity 3D相对比较轻便,更适合开发轻量级的体验或Demo。但是,它能具有更好支持VR功能。UE4则是重量级。Unity看起来更适合开发者,UE4更适合对于动画,美术感兴趣的设计师。选择引擎主要还是看要开发什么样的项目。根据项目再去看需要什么样的引擎。如果你有足够的时间,可以尝试两种开发引擎,然后做出适合自己的选择。

北京动点软件长年承接Unity、UE4外包

欢迎联系QQ:372900288 免费评估报价

承接Unity外包 U3D外包 Unity3D外包 小型Unity项目外包用Unity还是UE4的更多相关文章

  1. Unity3d外包公司 长年承接Unity3d项目外包

    承接Unity3d体感企业项目.游戏项目外包 北京公司.专业团队,成员为专业Unity3d产品公司一线开发人员,有大型产品开发经验: 提供优质的售后服务,保证产品质量,轻量级产品可以提供规范清晰的源代 ...

  2. Unity3d外包团队:Unity3d最新版本更新内容

    GPU Instancing Improvement 只能改进了一些功能吧,原GPU Instancing shader可参考 https://docs.unity3d.com/Manual/GPUI ...

  3. 承接AR定制AR项目外包(正规公司,内附案例)

    京团队长年承接AR项目外包 咨询QQ:372900288  微信:liuxiang0884 以下是AR项目案例演示,索取更多案例请通过以上方式在线联系我们

  4. IT项目外包有哪些注意事项

    2015年两会上,李克强总理在政府工作报告中首次提出“互联网+”计划,各种互联网创业项目也如雨后春笋般破土而出.由于很多创业团队并没有自己的技术团队,所以软件外包成为很多创业项目普遍采取的一种方案.在 ...

  5. 用HTML代码加载Unity内容(unity频道:http://unity3d.9ria.com/)

    Unity内容在浏览器通过Unity网络播放器插件加载.HTML代码与这个插件通常不直接通信,而是通过UnityObject的脚本帮助.其主要任务是Unity的内容嵌入一个非常简单的任务,通过从各种浏 ...

  6. [Unity3D]Unity3D游戏开发Android内嵌视图Unity查看

    ---------------------------------------------------------------------------------------------------- ...

  7. 小型web项目的模块化(转)

    背景   目前团队中新的 Web 项目基本都采用了 Vue 或 React ,加上 RN,这些都属于比较重量级的框架,然而对于小型 Web 页面,又显得过大.早期的一些项目则使用了较原始的 HTML ...

  8. Unity3D外包(u3d外包)—就找北京动点软件(我们长年承接U3D外包、Maya、3DMax项目外包)

    一.关于动点: 北京动点飞扬软件,因致力于虚拟现实技术的开发而创立,在虚拟现实开发领域有着卓越的技术和领先的思想.   我们为用户专业定制的项目,细分了多种工作流程,软件独立自主研发,编程简化用户操作 ...

  9. 虚拟现实外包—动点飞扬软件专门承接VR/AR场景、游戏、项目外包

    VR外包AR外包公司(虚拟现实外包公司)承接虚拟现实项目开发(企业.教育.游戏.企业大数据展示等) 有VR/AR.Unity3D项目.游戏外包业务欢迎 联系我们 QQ:372900288 TEL:13 ...

随机推荐

  1. Python request 在linux上持续并发发送HTTP请求遇到 Failed to establish a new connection: [Errno 11] Resource temporarily unavailable

    并发数被限制 vim /etc/sysctl.conf 添加 net.ipv4.ip_local_port_range = 1024 65535   保存 /sbin/sysctl -p 让修改生效 ...

  2. 【Linux】Mac PD set centos static ip

    2,修改Centos的网络设置. (1)进入脚本. vi /etc/sysconfig/network-scripts/ifcfg-eth0 My Mac ip: # 从dhcp改成static BO ...

  3. 【HBase】-NO.140.HBase.1 -【HBase】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  4. 运维面试题之k8s

    前言: 到了如今年k8s已经是事实上的容器集群标准了,是时候展现我真正的祖传k8s实力了 吐槽: 我干嘛要知道这些,能用不就行了k8s真香 Kubernetes有哪些特性? Kubernetes是自动 ...

  5. React browserHistory.push()传参

    1.browserHistory.push({                "pathname":'/interface_log',                state: ...

  6. Module 3 - Azure - Web Apps

     Module 3 - 微软云 Azure - Web Apps 1. Create new Web application in the Azure Portal Azure Portal -> ...

  7. Mac截图操作,自定义快捷键

    选择system preferences 下面能看到系统定义的快捷键,可以自己修改

  8. Cocos Creator cc.Button (脚本事件内容)

    cc.Class({extends: cc.Component,properties: {}, onLoad: function () { var clickEventHandler = new cc ...

  9. JDK8 HashMap--treeify()树形化方法

    /*创建红黑树*/ final void treeify(Node<K,V>[] tab) { TreeNode<K,V> root = null;// 定义红黑树根节点roo ...

  10. var,dynamic的用法

    private void Form1_Load(object sender, EventArgs e) { var dt = Getuser() as IEnumerable<dynamic&g ...