A bit off topic, yet still relevant given the ongoing attempts for D to be usable on the games industry.

At this year's GDC Unity had a few talks of the new subsystems being transitioning from internal engine code in C++ into upper layers written in C#.

For that purpose they are introducing a new compiler, based on LLVM and targeted to a subset of C# features, they are calling it High Performace C#.

Keypoints of the subset:

- Only structs are used, no classes;
- .NET collections are replaced by native collections that manage their own memory
- No code that would trigger GC is allowed
- Compiler is aware of Unity features and is able to explore SIMD, by doing auto-vectorization, and transparently transform structs fields into optimal representations

They plan to take advantage of the new C# 7.x ref type features after integrating the new compiler infrastructure.

"Unity at GDC - C# Sharp to Machine Code"

https://www.youtube.com/watch?v=NF6kcNS6U80

Also relevant,

"Job System & Entity Component System"
https://www.youtube.com/watch?v=kwnb9Clh2Is

"A Data Oriented Approach to Using Component Systems"

https://www.youtube.com/watch?v=p65Yt20pw0g

Some might remember Mike Acton's talk at CppCon about data-oriented programming, he is one of the developers leading this effort.

https://www.mcvuk.com/development/exclusive-unity-takes-a-principled-step-into-triple-a-performance-at-gdc

Reply via email to