3. C# Job System
Multi-thread your code in a safe, accessible and efficient way
● API for scheduling jobs that run on multiple threads as well as linking
dependencies
● Provides protection from pitfalls of multi-threaded code by giving easy to
understand errors messages for things like dependencies and race
conditions
4. Entity Component System
A new way for writing high-performance code by default
● Data-Oriented approach to development that allows you to separate data
from the processes that manipulate that data.
Entity a lookup index (database key) into the parallel streams
Components parallel streams of data, grouped by archetype
System code that manipulates data
5. What is Classic
The current Object oriented design pattern, GameObjects and Monobehaviors
● Data and processes are coupled together
● Largely dependant on reference types
6. Memory Layout - Classic
● Data is scattered…
● Loading from memory to cache is very slow...
7. Extra information and data
● Unity components contain extra data when referenced
● Instantiating is a problem
● Moving data from Memory to cache is very slow
8. How data is processed in Classic
One at a time, on the main thread
9. How ECS and the C# Job System
are different than classic
11. ECS & C# Job System
● Data is tightly packed in memory
● Data is being processed in parallel
● Only worry about the specific data you want to operate on.
13. Available in 2018.1
● Change scripting runtime version to use .NET 4.x Equivalent (instead of .NET 3.5)
● Change package manifest to include ECS packages