Rewrite more |
More improvements |
||
Line 1: | Line 1: | ||
The performance updates | The main goal of the performance updates is to separate FrooxEngine from Unity so that FrooxEngine can benefit from a faster runtime in .NET 9+. | ||
== The Issue == | == The Issue == | ||
Prior to separation, if Unity crashes it takes down FrooxEngine with it. Another problem is that Unity uses a slower runtime called Mono which reduces the performance of FrooxEngine considerably, as it runs FrooxEngine inside of a MonoBehavior (Unity component). | |||
Prior to separation, if Unity crashes it takes down FrooxEngine with it. Another problem is that Unity uses a slower runtime called Mono which reduces the performance of FrooxEngine considerably, as it runs FrooxEngine | |||
== The Solution == | == The Solution == | ||
Frooxius has devised a series of updates | Frooxius has devised a series of updates to address this. Each stage brings more systems from Unity into FrooxEngine, allowing more control over them and lowering Unity dependency. These are pre-requisites for the separation. | ||
The major steps: | The major steps: | ||
* [[PhotonDust]] (Particles update) [https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/587 Issue 587] | * [[PhotonDust]] (Particles update) [https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/587 Issue 587] | ||
* [[Awwdio]] (Audio update) [https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/2430 Issue 2430] | * [[Awwdio]] (Audio update) [https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/2430 Issue 2430] | ||
* | * Process-based architecture (Inter-process communication) [https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/706 Issue 706] | ||
These updates change core components of the engine, and allow it to work entirely standalone without relying on Unity. | These updates change core components of the engine, and allow it to work entirely standalone without relying on Unity. | ||
The engines will be separated into different processes and communicate via a shared memory file. | The engines will be separated into different processes and communicate via a shared memory file. Unity will still handle parts of the input, however its main function will be for the rendering. | ||
== Resources == | == Resources == | ||
<youtube>https://www.youtube.com/watch?v=9cx2-VtL_LM</youtube> | <youtube>https://www.youtube.com/watch?v=9cx2-VtL_LM</youtube> |
Revision as of 12:14, 11 June 2025
The main goal of the performance updates is to separate FrooxEngine from Unity so that FrooxEngine can benefit from a faster runtime in .NET 9+.
The Issue
Prior to separation, if Unity crashes it takes down FrooxEngine with it. Another problem is that Unity uses a slower runtime called Mono which reduces the performance of FrooxEngine considerably, as it runs FrooxEngine inside of a MonoBehavior (Unity component).
The Solution
Frooxius has devised a series of updates to address this. Each stage brings more systems from Unity into FrooxEngine, allowing more control over them and lowering Unity dependency. These are pre-requisites for the separation.
The major steps:
- PhotonDust (Particles update) Issue 587
- Awwdio (Audio update) Issue 2430
- Process-based architecture (Inter-process communication) Issue 706
These updates change core components of the engine, and allow it to work entirely standalone without relying on Unity.
The engines will be separated into different processes and communicate via a shared memory file. Unity will still handle parts of the input, however its main function will be for the rendering.