游戏编程推荐
  • 【八】七原则之单一职责原则
    【八】七原则之单一职责原则
    单一职责原则(SingleResponsibilityPrinciple,SRP)又称单一功能原则,由罗伯特·C.马丁(RobertC.Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。
  • 【七】七原则之依赖倒置原则
    【七】七原则之依赖倒置原则
    依赖倒置原则(DependenceInversionPrinciple,DIP)是ObjectMentor公司总裁罗伯特·马丁(RobertC.Martin)于1996年在C++Report上发表的文章。
  • 【六】七原则之里氏替换原则
    【六】七原则之里氏替换原则
    里氏替换原则由麻省理工学院计算机科学实验室的里斯科夫(Liskov)女士在1987年的“面向对象技术的高峰会议”上发表的一篇文章《数据抽象和层次》里提出来的。
  • 【十二】七原则之开闭原则
    【十二】七原则之开闭原则
    在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。
  • 【十三】类关系记忆技巧
    【十三】类关系记忆技巧
    类关系记忆技巧用一个经典案例来加深和巩固对类图的理解。下图是对动物衍生关系描述的类图。这个图非常有技术含量也非常经典,大家可以好好理解一下。
  • 【一】UML使用场景
    【一】UML使用场景
    UML是用来设计软件蓝图的可视化建模语言,是一种为面向对象系统的产品进行说明、可视化和编制文档的标准语言,独立于任何一种具体的程序设计语言。
  • 【十四】GoF的23种设计模式
    【十四】GoF的23种设计模式
    这23种设计模式不是孤立存在的,很多模式之间存在一定的关联关系,在大的系统开发中常常同时使用多种设计模式,希望读者认真学好它们。
  • 【四】软件设计模式概述
    【四】软件设计模式概述
    软件设计模式又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

为什么选用虚幻4引擎?

5419

首先要说的是,游戏开发是一项高度复杂的代码开发工作,编程语言只是最基本的知识,它涉及的内容还有计算机图形学、3D数学、物理学等复杂的学科。但是若需要学完这么多知识才能开发游戏,恐怕许多人都已经断气了,更谈不上开发游戏了。所以前人就把各种复杂的代码封装起来,使得一般的游戏开发者可以更加接近游戏的逻辑和功能性方面的代码,而无需接触最底层的知识。


游戏引擎就是引擎开发者已经写好的一堆代码框架,游戏开发者可以调用这些代码框架,很容易和快速地做出游戏而不用由零开始。

为什么选用虚幻4引擎?

首先,现在流行而且出名的商业引擎主要有cocos2dx,Unity3D,UE4,CryEngine等。就现在比较火的VR,也需要用到引擎,说到VR引擎,就必然离不开Unity和Unreal这一对“好基友”。这里我主要对这两款引擎做一下分析,作为国际上两款主流游戏引擎,今年来这对基友这些年来可谓是拼得“你死我活”。在划时代的VR浪潮面前,他们也都推出专门针对VR优化的新版本引擎。那么对于开发者,究竟哪一款更适合自己呢?为此,《智慧产品圈》专门对Unity3D和Unreal Engine 4(以下简称UE4)这两款主流引擎进行分析比较,希望给读者带来对两款引擎进一步了解。


两者优缺点对比如下:

为什么选用虚幻4引擎?_Unreal虚幻引擎-游民部落(gamecolg.com)


这里我选择了UE4,我认为的UE4有独特优势。

 1)首先我是搞C++开发的,从2014年5月19日,Epic发布了Unreal4,目前最新也是Unreal4。这次版本换代也是有了巨大的改变,它已经完全移除了UnrealScript语言,并且用C++语言来代替它。在之前的版本,如果你想修改这个引擎来开发你自己的游戏,你必须用UnrealScript,也就意味着你要学习一门新的语言。不过现在,如果你要修改这个引擎,你可以用C++来完成。这对于绝大部分习惯于C++的游戏引擎工程师来说,使用自己热爱的C++语言来工作,绝对是一件天大的喜事啊。 


 2)UE4是开源的。开源就是代码是完全开放的,为什么开源如此重要?一方面是因为只有我们看到源代码的实现细节,当出错了我们才能快速准确地判断出错的成因,节省被错误折腾的时间。(你想想像Unity3D这种闭源引擎,要是出错了,你是完全看不到为什么会发生错误的。除了不断盲目Debug,查文档和谷歌之外自己对于错误束手无策。)另一方面,开源可以使得我们深入学习引擎的原理,只知其然不知其所以然必然不能走得太远,而且会走得更痛苦。


  3)UE4的画质是世界上数一数二的。游戏的画质往往由游戏引擎来决定的,一个好的游戏引擎它可以模拟出极度逼真或者极具美感的画面。读者可以自己去看看Unity3D制作的游戏和UE4制作的游戏,其精美程度是相差甚远的。(这里并不是完全指责Unity3D,毕竟它们面对的是不同的层次。)作为一名追求极致的游戏程序员,当然要想看看最好的效果是怎么实现的。


  4)UE4是免费的,游戏引擎的源代码可以从Github开源社区下载,这意味着开发者对游戏引擎有着控制权,你可以修改任何东西,包括物流引擎,渲染和图像用户界面。


  5)UE4是跨平台的,你可以用来制作Xbox One、PlayStation4(包括索尼的Project Morpheus虚拟现实设备),Windows PC,Linux,Mac OSX,HTML5,iOS和安卓,就连虚拟现实设备Oculus Rift也支持。 


下图为UE4游戏引擎制作出来的极度逼真游戏画面,你分得清这是不是现实吗?

为什么选用虚幻4引擎?_Unreal虚幻引擎-游民部落(gamecolg.com)

    它也提供了一些叫热更新的功能。什么叫热更新呢?通常,如果你想对游戏的代码进行一些修改,你必须要停止游戏才能进行修改,然后再次运行看看修改后游戏的效果。然而,使用热更新功能,你可以修改游戏而不需要停止或暂停游戏。任何在游戏代码的改变会即时更新,并且你可以看见它会在游戏中实时反映出来。 

 另一个重大的改变是,在2015年初,虚幻4已经可以完全免费下载和使用了,之前的版本是需要支付一定费用的。现在,你可以用来开发游戏,并且发行,而且不需要为UE4游戏引擎支付一分钱。只有在你赚到了3000美元收益之后,你才需要支付5%的技术使用费。 


另一个UE4提供的特性是商城,你可以在商城中购买和上传游戏资源。这些游戏资源可以包括动画,3D建模,材质,声音效果,预制游戏等等。这也是一个令没有游戏资源或者没有人力来开发资源的开发者振奋的消息。它们可以商场购买并直接应用于自己的游戏中。开发者也可以上传自己的工作成果到商城来赚钱。 


下图为UE4游戏引擎制作出来的官方示例宣传视频画面:

为什么选用虚幻4引擎?_Unreal虚幻引擎-游民部落(gamecolg.com)


特别声明:本文仅供交流学习 , 版权归属原作者,并不代表游民部落赞同其观点和对其真实性负责。若文章无意侵犯到您的知识产权,损害了您的利益,烦请与我们联系vmaya_gz@126.com,我们将在24小时内进行修改或删除。

相关推荐:

图形学推荐
  • 【二十八】游戏UI之UI界面管理
    【二十八】游戏UI之UI界面管理
    游戏UI界面之UI管理游戏UI界面之UI管理游戏UI界面之UI管理游戏UI界面之UI管理游戏UI界面之UI管理游戏UI界面之UI管理游戏UI界面之UI管理游戏UI界面之UI管理
  • 【二十七】游戏UI之透视相机模式规划
    【二十七】游戏UI之透视相机模式规划
    游戏UI界面之透视相机模式规划游戏UI界面之透视相机模式规划游戏UI界面之透视相机模式规划游戏UI界面之透视相机模式规划游戏UI界面之透视相机模式规划游戏UI界面之透视相机模式规划
  • 【二十六】游戏UI之正交相机模式规划
    【二十六】游戏UI之正交相机模式规划
    游戏UI界面之正交相机模式规划游戏UI界面之正交相机模式规划游戏UI界面之正交相机模式规划游戏UI界面之正交相机模式规划游戏UI界面之正交相机模式规划游戏UI界面之正交相机模式规划游戏UI界面之正交相机模式规划游戏UI界面之正交相机模式规划游戏UI界面
  • 【二十五】游戏UI之NGUI和UGUI简介
    【二十五】游戏UI之NGUI和UGUI简介
    游戏UI界面NGUI和UGUI简介游戏UI界面NGUI和UGUI简介游戏UI界面NGUI和UGUI简介游戏UI界面NGUI和UGUI简介游戏UI界面NGUI和UGUI简介游戏UI界面NGUI和UGUI简介
  • 【二十四】Lua与C、C++间模块交互
    【二十四】Lua与C、C++间模块交互
    Lua与C、C++间模块交互Lua与C、C++间模块交互Lua与C、C++间模块交互Lua与C、C++间模块交互Lua与C、C++间模块交互Lua与C、C++间模块交互Lua与C、C++间模块交互Lua与C、C++间模块交互Lua与C、C++间模块交互
  • 【二十二】Lua游戏配置内存优化策略
    【二十二】Lua游戏配置内存优化策略
    Lua游戏配置内存优化策略Lua游戏配置内存优化策略Lua游戏配置内存优化策略Lua游戏配置内存优化策略Lua游戏配置内存优化策略Lua游戏配置内存优化策略Lua游戏配置内存优化策略Lua游戏配置内存优化策略
  • 【二十三】Lua模块和Unity引擎C#模块间交互
    【二十三】Lua模块和Unity引擎C#模块间交互
    Lua模块和Unity引擎C#模块间交互Lua模块和Unity引擎C#模块间交互Lua模块和Unity引擎C#模块间交互Lua模块和Unity引擎C#模块间交互Lua模块和Unity引擎C#模块间交互Lua模块和Unity引擎C#模块间交互
  • 【二十一】Lua内存开销规划和优化策略
    【二十一】Lua内存开销规划和优化策略
    Lua内存开销规划和优化策略Lua内存开销规划和优化策略Lua内存开销规划和优化策略Lua内存开销规划和优化策略Lua内存开销规划和优化策略Lua内存开销规划和优化策略Lua内存开销规划和优化策略Lua内存开销规划和优化策略Lua内存开销规划和优化策略