afonsolage / projekto

Voxel game made with Bevy Engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:
image

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

Projekto Overview

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.