Code Sample: New Unity* Entity Component, C# Job System, and Burst Compiler

ID 671675
Updated 6/1/2018
Version Latest
Public

author-image

By

File(s):

Download
License: Intel Sample Source Code License Agreement
Optimized for...  
OS: Windows® 10 (64 bit)
Hardware: N/A
Software:
(Programming Language, tool, IDE, Framework)
C#, Microsoft Visual Studio* 2015, Unity*
Prerequisites: Familiarity with Microsoft Visual Studio, 3D graphics, parallel processing.

Introduction

Low, medium, and high. Standard fare for GPU settings, but why not CPU settings, too? Today the potential power of the CPU on your end users’ machines can vary wildly. Typically, developers will define a CPU min-spec, implement the simulation and gameplay systems using that performance target, and then call it a day. This leaves the many potentially available cores and features built into modern mainstream CPUs sitting idle on the sideline. The new C# job system and entity component system from Unity* don’t just allow you to easily leverage previously unused CPU resources, they will also help run all your game code more efficiently in general. Then you can use those extra CPU resources to add more scene dynamism and immersion. In this article, you’ll see how to quickly get started learning these new features.

Unity is attacking two important performance problems for computing in game engines. The first problem under assault is inefficient data layout. Unity’s Entity Component System (ECS) improves management of data storage for high-performance operations on those structures. The second problem is the lack of a high-performance job language and SIMD vectorization that can operate on that well-organized data. Unity’s new C# job system, entity component system and Burst compiler technology leave those shortcomings in the dust.

The Unity entity component system and C# job system are two different things, but they go hand-in-hand. To get to know them, let’s look at the current Unity workflow for creating an object in your scene, and then differentiate from there.

Get Started

Get Started with the New Unity* Entity Component, C# Job System, and Burst Compiler

References

Unity
Unity Entity Component System Documentation
Unity Entity Component System Samples
Unity Entity Component System Forums
Unity Documentation
Learning about efficient memory layout
Ship Asset Used in Demo

Updated Log

Created May 17, 2018