Project Overview
afonsolage opened this issue · comments
After a while I decided to try again this project. Since Bevy is more mature and has new features, I'm willing to use more the Bevy ECS system and rely less on async tasks.
To have a better understanding where I left off, I decided to draw some pictures which would help me to get back again to the big picture of the project.
World Plugin Overview
To kick things off, there is an overview of the World Plugin:
Ignoring the WireframeDebugPlugin
, everything is handled by TerraformationPlugin
and PipelinePlugin
. Naming aside, at the time, I wanted to have a pipeline rendering setup, but at the end, everything is just a mesh, so it got a nice simplification. As for terraformation, the idea is simple, everything related to world gen would be there.
World Gen Flow
This graph is trying to highlight the main functions, plugins and mods which act on the world gen flow. I've also highlighted where the code runs, be it on Bevy itself, where the Set is used, or on a task pool.
The main point of this flow is since everything is offloaded to async tasks, the logic running inside Bevy itself sends request using GenesisCommandBuffer
.