从外围了解UE4

  我的游戏终于全球发售咯,在97个国家得到AppStore首页推荐。当前在美国和加拿大付费排行榜的最好成绩是36名。这是当前国内最好成绩的iOS游戏吗?可能,也许吧。

更好的消息是SCE联系了我们,我们将会踏着快船向PlayStation家族进发。

  

  停止沾沾自喜,收集了大量的UE4 官方ppt,这可以让我们从外围解读。

1.虚幻4 的概览:一个程序员对UE4的一瞥

  好吧,你会被吓到的。

  • 虚幻4不像你的老奶奶一样,她非常的火辣哦
  • 他有5000以上的目录结构,40000以上的文档。好吧大师,你来上吧
  • 有多多多多多多多的代码量
  • 上百的模组
  • 成吨的工具,上千的特性
  • 一个人世纪:人月神话的人年在这里不顶事了

  那么这么个庞然大物,从哪里开始学呢?

  • 从脚趾干起,一步一步来呗
  • 大部分的代码和内容你永远都接触不到.Sounds good我很喜欢这点,我的时间有限,还有许多游戏要打,书要读,妹子要谈
  • 事实上即使是Tim Sweeny都不一定了解UE4的方方面面
  • 但是你看到了,UE4学起来并不难

2.代码的概览:

根目录结构

  • /Engine 所有的代码内容,和引擎的配置文件
  • MyProject让你放置工程的地方,不像UDK一样让你最好使用一份引擎做一份工程
  • Templates 看看引擎创建工程的时候有FPS C++ Template了吗,就是这个东西,其实你也可以创建,更牛逼的是你还可以去MarketPlace中出售.我看到了一个家伙准备出售他的跑酷系统,使用蓝图

工程目录结构

  • /Binaries 谁都知道在UDK里面这个东西有什么用,DLL
  • /Build  需要构建引擎的文件
  • /Config 配置文件
  • /Content UE3 和UDK的人都懂
  • /DerivedDataCache 看起来很先进,新玩意,缓存数据(只有引擎的,你的content和地图数据休想)
  • /Intermediate 顾名思义(只有引擎)
  • /Plugins 分项工程文件的插件
  • /Saved 自动保存,本地配置文件,截图等
  • /Source 程序员他家  

 INI 

  • 保存所有class的属性
  • 将会在启动的时候加载到CDOs 我不懂什么是CDOs 求高手
  • 组织目录结构
  • 高层覆盖底层:这个UDKer都懂,像UDKEngine->DefaultEngine
  • 组织区域
  • 键值映射
  • 从编辑器UI扩展出来的重要东东
  • 底层键入FConfig 又不懂  
  • XXX.ini->DefaultXXX.ini->BaseXXX.ini->Class Constructor

以下是目录结构

  UObject的定制区域

  [/script/ModuleName.ClassName]

  自定义定制区域

  [SectionName]

  支持的数据类型

  数值,字符串,枚举,结构,静态和动态数组

  自动序列化UObject properties

   一款先进的游戏引擎,让一名开发者在工程环节少走许多弯路。除非你是一名大师可以考虑事物构架的方方面面。对于初学者,你常使用这种强大的工具,潜意识中建立正确的工程构建之道。事情就是这么做的!

  UE4在这些方面为我们做的是值得我们该心存感激的:可复用(Blueprint就像你的碎块代码一样在不同工程之间拖拖拽拽,不像以前的kismet还得钉死在关卡中),可扩展(有了插件还有什么好说的),可维护(一直都是,UE4太谦虚了),去耦合(得深入开发才能给你举例子),高效(不会争辩)

  

  程序员看这儿:

  • Core    提供了基础核心类型和功能,Math...
  • CoreUObject 实现的UObject子系统,联网,Object
  • Engine 游戏的类,引擎的框架
  • OnlineSubsystem 所有的社交网络类,Steam,GameCenter
  • Slate 我还没有深入UMG,反正你不需要再强依赖Scleform或者MobileMenuScene或是强编HUD了。我也受够了UE3这方面的无节操

  给能钻的程序员更有趣的地方

  • PC(完美),Mac(跑不动),Linux(不会)
  • 自己定制编辑器
  • 游戏的运行循环
  • 消息提示,Steam,GameCenter...
  • 网络接口,好了,牛逼的伙计可以尝试MMORPG了,本人无爱
  • 设置,编辑器和工程文件的API你都可以动。不用UDK的条条框框是否略感自己无比强大:D
  • Slate  UI的核心地层代码
  • 目标平台,C++随你
  • UMG动态UI:
    • 我已经见到有开发者运用这套UI系统实现了自己的Flappy Bird~

  

 3.除过游戏之外的

  分析工具:手机用户的信息

  数据库管理:幸好我的工程还不是很大,否则没有数据库做AAA游戏是非常非常不可思议的

  游戏直播:自Twitch和PS4的share来了之后,PewDiePie的一行人好日子来了。咱们可以直播自己的游戏咯

  头戴:横井军平的超前思维在这个时代终于实现了,Oculus Rift。也许我们的游戏有这一天会很棒

  Json:云传输数据这一次应该能很好地操作,不像UE3中一次只能传输一个Object类数据

  版本控制:有API专门支持版本控制软件,Perforce

4.游戏本身

  这当然是我们最关心的内容了,你的游戏工程可以

  ①通过三种途径开发,Blueprint,C++或者是将两者结合

  ②包含所有模组和插件

  ③和别人分享,MarketPlace

  

  StarterKit也帮你有多重选择,你想开发FPS,横版,赛车,双摇杆射击?行你可以直接选择呗,最牛逼的你可以自己随便设。

  最后,这篇文章更像UE4的广告贴:D

时间: 2024-08-02 00:20:38

从外围了解UE4的相关文章

深入浅出UE4网络

UE4中的官方文档结构比较混乱,且有部分错误,不方便学习.笔者试图通过本文,整理出一篇关于UE4网络的文章,方便朋友们对UE4中的网络同步部分的认识,并有进一步理解.如有讲得不清楚明白的地方,还望批评指正. 本文的结构如下: 一.UE4网络综述 二.UE4中的几种同步方式 1.Actor Replication 2.Property Replication(RepNotify与Replicated Using的区别) 3.Function Call Replication 4.Actor Com

UE4材质初探

UE4的材质表面上看起来很简单,可是到了用的时候却总是没有办法实现好的效果.所以特意对文档进行阅读,初步了解了一下主要知识点. 当前使用的UE4版本:4.8.0. UE4中的材质有很多用途,可以用于光照.延迟渲染.粒子系统等等.由于暂时不会用到,目前只做了最基础的材质使用的研究,也就是说是Materia Type为Surface的情况.材质的最终输出节点上的可用项会随着功能选择的不同而有所不同.即便使用Materia Function使所有的引脚都是可用的也会在实际使用时根据选择而被禁用. 材质

[工作积累] Tricks with UE4 PerInstanceRandom

最近在用UE4的Instancing, 发现限制很多. Unity有instancing的attribute array (uniform/constant buffer),通过InstanceID来访问每个instance的数据,实现每个实例的不同的参数(通常的一种做法). 然而Unreal没有这样的功能,只有一些instancing的vertex buffer. shader: 1 #if USE_INSTANCING && !USE_INSTANCING_EMULATED 2 flo

中国VR人才需求占全球18%排名第二,UE4技术美术人才万金难求

虚拟现实持续火爆,行业市场规模也随之水涨船高,未来医疗.娱乐.房地产.教育.旅游等领域还将继续拓展VR技术的应用.资本的入局和技术的发展已经相对稳定,VR行业必将迎来更为迅猛的发展阶段. VR在中国的快速发展有目共睹,短短两年时间已经形成了较为完善的产业链,令人惊叹.而与产业链的快速发展形成鲜明对比的,却是人才的远远落后.近期,全球最大的职场社交平台领英针对全球VR人才进行了一次全面扫描.数据显示,美国VR人才占全球40%,需求占比48%,而中国人才仅为2%,需求却占全球18%,人才短缺现象十分

ue4 c++ 接口

使用UE4接口比起普通的高级语言,要多做很多工作,是因为要兼容蓝图的使用,有一些小坑需要注意,开始吧. 1.新建接口类 打开UE4编辑器,与往常一样,新建C++类,然后选择Object继承,然后取名字,这里我使用工作中我的接口名,作为例子说明,"ITrackTeam" 然后修改继承的类,而且你没有看错,就是写2个class,一个叫UTrackTeam,一个叫ITrackTeam,类名和头文件名可以不一样的,我这边命名没有遵守虚幻的规则,本来应该命名为"UITrackTeam&

ue4 SNew背后的逻辑

ue4的ui库Slate体系非常庞大,即使是在创建对象这一小事上,也是相当复杂: SLATECORE_API TSharedRef<SWidget> SNullWidget::NullWidget = SNew(SNullWidgetContent).Visibility(EVisibility::Hidden); 所有SWidget体系内的对象,都要用SNew这个宏来创建,它的内容是: #define SNew( WidgetType, ... ) \ MakeTDecl<Widget

Ue4的GitHUB版本版本管理探索

GitHUB是学生党或者业余爱好者不错的选择,如果大家都处在一个局域网一下还是推荐用SVN,毕竟GitHUB的私有仓库要钱,而且网速难以忍受. 首先说一下:Ue4 4.10 默认生成一下文件与文件夹 文件夹 .vs        备用工程文件 config        游戏设置,一些内部属性 content        游戏资源 Intermediate     缓存文件 Source                C++代码文件 文件 Ue4工程文件 Vs工程文件 首先说一下Ue4的版本管

Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 及sql2008外围服务器

转载:Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 错误原因如下: Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Cannot open connection at org.hibernate.exception.SQLStateConverter.convert(SQLStateConver

用UE4来做Zego即构的房间列表

Zego即构是一家做直播的服务商,Zego即构自己的房间列表,本文只是测试功能用,相应代码并没完全测试,请选择性参考. 我们在UE4中来实现一下,我感觉这个过程有点意思,UE4中C++与蓝图和UI的互相通信基本全部用到了. Zego即构没有专门的UE4插件,所以我们主要逻辑全部在C++中,蓝图只是辅助. 首先,我们定义一个房间结构,因为要想UE4中C++和蓝图可见可用,我们要用C++实现,并实现特定的写法让蓝图知道. USTRUCT(BlueprintType) struct FRoomBlue