UE构建基础和实践:一、概述

序言

构建这个概念是和应用程序包及资源等相关的,它的特点是使用脚本控制一系列的任务的处理,以减少人力操作带来的成本和操作失误风险。

在UE的概念里,构建往往是和打包相关的(如编译、cook、压缩打包等)。但是在项目日常的开发中,构建的语义会更加的广泛,据我所知它可能包含:

  • 打各个平台的应用程序包
  • 编译引擎
  • 编译客户端
  • Cook资源
  • 资源扫描
  • 脚本扫描
  • 生成表格、协议、navmesh等各类资源
  • ...

我们编写自动化脚本和使用CI/CD平台(如jenkins,鹅厂的蓝盾等)以自动化流水线的形式进行任务来提高生产力。

经典的构建样例

以出应用程序包为例:UE的构建应用程序包需要相关的代码和各种资源,我们可以抽象出其任务节点:

  1. 检查各个仓库(分支等),并拉取:
    • 客户端代码
    • 美术资源
    • 引擎
    • 自动化脚本
    • ...
  2. 按照次序执行各种自动化脚本
  3. 分析归档构建结果(各种统计,版本号相关等)
  4. 把构建结果上传的仓库/服务器
  5. 通知执行人构建结果

UE的打包构建

构建入口代码流

跟进UE的构建入口:
image

可以看到最后都是调用到了UAT的BuildCookRun.Automation脚本
注:RunUAT可以直接使用命令构建,也可以运行BuildGraph脚本

打包构建大概的流程阶段和文件流

这里先做一个大概的总结,后续系列文章里我会贴出我的实践测试以及关键代码流。
image

结语

这个系列我打算以一个经典案例——构建应用程序包为切入点,完整的实践和分析一个构建流程,并理解构建的基本流程和相关知识技能。这一篇大概描述了下UE的构建的宏观上概念,有些地方没有实践不太好理解,我会在后面的文章通过结合实践和分析来解释这些概念。最后,UE项目的构建是复杂的工作,本系列文章只是介绍了它的原生的基本用法,它大多只是执行UE预定义的参数和命令。在实际生产环境中,会对其进行优化和修改以符合实际需要(实际上,我们项目对其做了一定程度上的修改和优化)。

附录

项目打包整体工作流参考

image

  • 资源cook处理和打包平台关联,可以延迟到打包阶段进行,采用多机器并行来加速
posted @ 2023-07-24 12:09  寡人正在Coding  阅读(784)  评论(0编辑  收藏  举报