Unreal Engine 4公布好长好长时间了。直到近期才有时间细致去看一下。

TimSweeney老大一句话“IF YOU LOVE SOMETHING, SET IT FREE”。原来须要几十万授权金才干拿到的东西,就从$19。变成免费了。并且开源。作为一个国际顶尖的引擎,能走出这一步,对我等普通开发人员真是福音啊。

如此的牛X。再加上开源,相信Unreal Engine 4会火起来的,你看看近期E3上的产品展示也能感觉到。只是。Unreal的定位毕竟是“国际顶尖”,而非Unity3D那样的“开发大众化”。所以上手是有一定难度的。

以下我把对Unreal Engine 4的初步印象总结一下,特别针对像我一样有Unreal Engine 3的同学。希望很多其它的同学来已经学习Unreal。

UnrealScript去掉了

开发语言上最大的变化。莫过于把UnrealScript去掉了。

UnrealScript吧,当年来看还是一个非常NB的东西。要知道Unreal一代公布是1998年的事儿,而JAVA语言也就是95年才公布的。

据说Tim Sweeney在開始设计Unreal的时候以前考虑过使用Java作为上层语言。只是那时候Java还不成熟。所以他參考Java,实现了这个一个面向对象的,单根继承的脚本语言。只是。随着时间流转。Epic似乎并没有花太大的力气去演进UnrealScript。在Unreal Engine 3的时代。它确实显得有点老旧了,书写起来比一些现代语言确实有非常多不方便的地方。

所以。去掉就去掉吧。只是。值得注意的是,官方也留出了整合其它脚本语言的接口。比如LUA。

C++11

底层非常多基础代码看上去有非常强的亲切感。底层架构设计思路沿用了很多。

底层依旧是使用C++,只是用了非常多C++11的特性,代码看上去简洁了不少。

项目的编译、构建使用UnrealBuildTool,这应该是从3代延续过来;另外,就是添加了一个UnrealHeaderTool工具。猜想是依据UCLASS。UPROPERTY等宏,生成自己定义反射信息用的,详细的还待进一步研究。

Blueprint Visual Scripting

据说这是UE4最牛X的改进了。看了看,原来是Kismet的延伸,连源码非常多都是UKismentXXX那一套。

UE3里面的Kistmet仅仅限于在一个关卡中使用,而Blueprint扩展了。关卡能够有唯一的一个Level Blueprint,相当于原来的Kismet;另外添加了Blueprint Class,大概就是用Blueprint创建自己定义的Actor、Pown之类的,由于有了这个功能所以原来的Archetype顺带也就被替代了。

事实上。作为老一代屌丝Coder。我一直对Kismet那种表达式层级可视化编程,一直不太感冒(像Unity的PlayMaker那样,提供更高层级抽象的可视化工具更好)。

只是。既然是UE4主推的个东东,还是得看看。

只是,整体上给Designer一套可视化编程的东西。让他们自己实现一些关卡逻辑、游戏规则之类的。还真是一个特别好的方法。当然,我们这些Coder的工作还是不会丢掉的。比如游戏框架,游戏一些底层功能、经常使用模块还是要C++写好(或者使用LUA脚本?),封装给Blueprint来使用的。

AnimTree哪去了

UE3的AnimTree给我震撼太大了,所以特别关心UE4的动画系统。

看了一下,貌似被分解成了BlendSpace和AnimGraph。

  • BlendSpace
    好比说“站立、走、跑”这三个动作,在UE3的AnimTree里面是有一个特定的node来混合的,依据移动速度不同。

    在UE4里,则须要创建一个BlendSpace1D资源。然后暴露出Speed參数。

  • AnimBlueprint
    使用Blueprint,AnimGraph,状态机等等控制角色的动画,怎么看上去和Unity的Mecanim有点像呢。唉~
看来AnimTree是真的不见了,非常遗憾。由于我认为那个使用树形结构来抽象的动画系统,实在是非常清晰并且强大。

渲染系统

基于物理的渲染(PBR:Physically-Based Rendering)效果真的是太NB了,Unity5尽管也是PBR,好像比UE4还是略逊一筹啊。这个无需多言了,各种DEMO视频大家都看了不少了。渲染流程也全然走延迟渲染了。

但多线程渲染,SceneProxy、Material之类的基础架构没怎么变。

Behavior Tree

这个东西好像在国外的游戏AI领域这几年挺流行了,是个非常高大上的东西。UE4直接做了,太好了。
另外,还有非常多重大改进。比如Package,资源导入,添加插件支持等,这里就不一一细说了。

推荐看一下官网的文章吧。作为本文的补充

从Unreal Engine 3到Unreal Engine 4的更多相关文章

  1. [原][unreal][UE][spark]分析unreal engine 虚幻引擎的粒子编辑器:Cascade

    参考:https://www.raywenderlich.com/270-unreal-engine-4-particle-systems-tutorial (使用了一个飞机射击游戏的粒子来展示,全英 ...

  2. Python Falling back to the 'python' engine because the 'c' engine does not support regex separators

    环境 Anaconda3 Python 3.6, Window 64bit 书籍 O'Reilly出版的Wes McKinney编的<Python for Data Analysis> 警 ...

  3. 游戏音频技术备忘 (三) 集成Wwise到Unreal Engine

    当前受众较广的商业游戏引擎有 Unreal Engine.Unity.cocos2d-x等,在音频领域的第三方中间件则有Wwise.FMOD.Criware等,言多且烦,我们首先集成Wwise到 Un ...

  4. Unreal Engine 4 系列教程 Part 1:入门

    原文:Unreal Engine 4 Tutorial for Beginners: Getting Started 作者:Tommy Tran 译者:Shuchang Liu 本篇教程将引导你安装U ...

  5. 实例甜点 Unreal Engine 4迷你教程(1)之如何用C++将纹理绘制在UserWidget的Image小部件上

    完成本迷你教程之前,请前往完成以下迷你教程: 无前置教程待完成. 本教程适合的人群: 初学者,具有开发经验两周: 本示例的目的:为了在代码中实现UMG中的这个功能: 说明:这是一些列迷你教程的首篇,所 ...

  6. 转-ArcGIS Engine许可初始化

    关于初始化Engine许可的,其实原理都很简单,大家一般都没有问题,但又往往会因为不够细心加上Engine的“小脾气”,让不少程序员都要在这里犯错. 以Engine9.2为例,应用程序是强制初始化许可 ...

  7. 虚幻4外包团队-推荐非常全面的的Unreal教程

    <Unreal SDK 游戏开发从入门到精通(UnrealScript语法.UI Scene界面.UDK独立开发游戏)> 课程讲师:Shark  课程分类:.net 适合人群:初级 课时数 ...

  8. MEMORY Storage Engine MEMORY Tables TEMPORARY TABLE max_heap_table_size

    http://dev.mysql.com/doc/refman/5.7/en/create-table.html You can use the TEMPORARY keyword when crea ...

  9. 云计算平台简介(App Engine)

    云计算平台简介(App Engine)     1   简介 App Engine: 应用程序引擎,是托管网络应用程序的云计算平台. 1.1  什么是云 云计算通常简称为“云”,是一种通过 Inter ...

随机推荐

  1. SAP学习之路

    此贴记录学习SAP过程~如有错误请指出~ 6.看着网上学习SAP的貌似比較花精力.学习好的话发展前景还是不错的 5.尽管还不是非常懂.可是还是充满期待,期待着java转型abap. 能够在虚拟机上安装 ...

  2. 懒加载js实现和优化

    1.懒加载的作用和原理 在我们展示多图片的场景下,类似淘宝或者百度图片,由于图片的数目过多,全部从服务器请求会给用户糟糕的用户体验,为了提升用户体验,我们这里使用懒加载,随着下拉逐步加载. 每个图片的 ...

  3. 18.链表管理内存实现c语言自动释放内存

    运行截图: 创建记录分配的内存地址大小和地址的结构体 struct MEM { void *p; int size; }; 创建管理内存结构体的链表 typedef struct LinkNode { ...

  4. POJ 3037 SPFA

    题意: 思路: 我们可以发现 到每个点的速度是一样的 那这就成水题了-. 裸的SPFA跑一哈 搞定 //By SiriusRen #include <cmath> #include < ...

  5. vsphere client和vsphere web client的区别

    vsphere client是一个运行在windows桌面上的客户端,在linux环境下无法运行,在vsphere5.0以后,VMware在逐渐弱化vsphere client的作用,现在很多高级功能 ...

  6. 【hdu 3987】Harry Potter and the Forbidden Forest

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=3987 [Description] 给出一张有n个点的图,有的边又向,有的边无向,现在要你破坏一些路 ...

  7. WINDOWS 安装 M2Crypto for Python2.7

    WINDOWS 安装 M2Crypto for Python2.7运行环境 WIN8.1 + Python2.7 + VS2008(Microsoft Visual C++ 9.0) VS2008 可 ...

  8. 【编程】概念的理解 —— socket

    socket:A socket is something into which something is plugged or fitted (also called a receptacle). A ...

  9. Office GVLK 密钥对照表(kms激活专用)

    Office2016系列: Office Professional Plus 2016:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99 Office Standard 2016:JNRGM ...

  10. js中event事件处理

    1. HTML事件  直接添加到HTML结构中 function show() { alert('hello'); } <body> <button id="btn&quo ...