Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【Unite 2018 Tokyo】C# Job SystemとECS(Entity Component System)解説


Published on

講演者:Dan Miller(Unity Technologies)


・C# Job Systemを使ったマルチスレッド対応コードの書き方

Published in: Technology
  • Follow the link, new dating source: ❤❤❤ ❤❤❤
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ♥♥♥ ♥♥♥
    Are you sure you want to  Yes  No
    Your message goes here
  • Positions Available Now! We currently have several openings for writing workers. ■■■
    Are you sure you want to  Yes  No
    Your message goes here

【Unite 2018 Tokyo】C# Job SystemとECS(Entity Component System)解説

  1. 1. A Dan Miller @DanMillerDev Intro to C# Job system and Entity Component System
  2. 2. Overview ● Terminology and System overview ● Implementing Jobs and Entities ● Building a demo
  3. 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. 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. 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. 6. Memory Layout - Classic ● Data is scattered… ● Loading from memory to cache is very slow...
  7. 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. 8. How data is processed in Classic One at a time, on the main thread
  9. 9. How ECS and the C# Job System are different than classic
  10. 10. ECS Bullet Render Spawning Player Render Health Enemy Render Position Position Health Position Spawning Entity Data Some complex parallelized behavior Render Job Render System Filter : Render Some complex parallelized behavior Health Job Filter : Some complex parallelized behavior Spawning Job Filter : Health System Spawning System Position Health Render Spawning
  11. 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.
  12. 12. How to get Started Today
  13. 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
  14. 14. Demo
  15. 15. Burst Compiler A new LLVM-based math-aware backend Compiler Technology takes C# jobs and produces highly-optimized code.
  16. 16. Additional Resources
  17. 17. Thanks! Dan Miller @DanMillerDev