[Unity3D] [译] Job System & ECS - 工作系统和ECS

原文 job system and ecs

默认状态下的性能表现

及早访问Unity的新型高性能多线程系统,充分利用当前可用的多核处理器 - 无需编程头痛

重建核心基础

我们正在重建Unity的核心基础。Unity正在推出一种新的高性能多线程系统,它将使您的游戏能够充分利用当今可用的多核处理器,而不会遇到繁重的编程问题。默认情况下,由于:

  • 新的C#作业系统
    • 为您提供安全,简便的沙箱,您可以在其中编写并行代码。
  • 实体组件系统(ECS)
    • 默认情况下用于编写高性能代码的新模型。
  • Burst编译器
    • 可生成高度优化的本机代码。

您可以使用新的多线程系统来创建在各种硬件上运行的游戏。默认情况下,您还可以充分利用出色的性能,通过更多单元和更复杂的模拟创建更丰富的游戏世界。

C#作业系统

新的C#作业系统利用了当今计算机中的多核。它旨在将此方法打开到C#用户脚本,并允许用户编写安全,快速,有效的代码,同时防止多线程的一些陷阱,如竞争条件。

多核心的利用

C#作业系统公开了Native C ++作业系统,允许C#脚本与Unity内部组件一起工作。

安全的环境

提供对多线程的一些陷阱的保护,例如竞争条件。

实体组件系统 (ECS)

一种设计游戏更好的方式

ECS是一种编写代码的方式,专注于您正在解决的实际问题:组成游戏的数据和行为。

除了出于设计原因更好地接近游戏编程之外,使用ECS使您处于利用Unity的C#作业系统和Burst Compiler的理想位置,让您充分利用当今的多核处理器。

使用ECS,我们正在从面向对象转向数据导向设计,这意味着重用代码更容易,并且更容易让其他人掌握并做出贡献。

Burst编译器

优化代码

新的基于LLVM的后端编译器技术可以获取C#作业并生成高度优化的机器代码。

为所有平台提供最好的

针对您正在编译的平台的特定功能进行了优化。

减少手工编码

在多个平台上获得手动调整的汇编程序代码的许多优点,而无需繁琐的工作。

Megacity演示在Unite LA 2018上亮相

在Unite Los Angeles,我们介绍了我们目前在ECS基础上的进展以及使用Megacity演示的Burst。基于我们来自Unite Austin的“Nordeus”演示的经验,游戏代码团队与FPS Sample团队合作,创造了一个充满未来感的城市景观 - 充满飞行的车辆,数十个非常详细的游戏对象和独特的音频源 - 展示了什么是可以使用Unity 2019.1中的DOTS。

视频来自Youtube,需要咳咳出去看


***

Megacity具有4.5M网格渲染器,20万个独特建筑物,100k独特音频源,以及基于样条的交通车道上飞行的5000辆动态车辆。了解如何利用Unity的“默认性能”来创建充满复杂对象和模拟的丰富游戏世界。