Currently, the IO thread has full access over the world and players and modifies them. This is generally bad and can cause very bad issues and errors in the future.
We thus establish the following principles:
- Main thread processes packets
- Main thread processes connection events (mutation, disconnect, add to world)
- Chunks will be generated on Chunk Worker threads
- CavernServer will interact with Godot only on the main thread
Furthermore, these changes will also be made:
- Removal of most Godot signals used to append things in the world
- Chunks will be added by CavernServer instead of Godot
- Entities will be added by CavernServer instead of Godot
- CavernServer will handle the player node directly instead of Godot
This will lead to minor performance improvements and overall less traumatizing errors for me to deal with
Currently, the IO thread has full access over the world and players and modifies them. This is generally bad and can cause very bad issues and errors in the future.
We thus establish the following principles:
Furthermore, these changes will also be made:
This will lead to minor performance improvements and overall less traumatizing errors for me to deal with