This is just a general list of everything that I want to finish before I release beta .1 of the voxel engine.
[x] Improve the render thread code. Make it more coherent and manageable.
[x] Change the way animated textures are handled in the render thread.
[x] Make the "chunk meshes" into either one object or classes.
[x] Make the "chunk materials" into either one object or classes.
[x] Make the render options such as sun level and base level easier to access and update.
[x] Create a shader builder so that materials can be easily created and updated for both WebGL 2 and WebGPU.
[x] Create a system for saving chunk/region data and loading it in. (already kinda exists with the DataLoader thread but was broken in Alpha 1.2.2)
[x] Implement true multi-thread world generation. (Was tested out but was also broken in a previous update)
[x] Improve the processor and meshing part of the engine.
[x] Add a way to add voxel colors. (might just provide a way to add a custom function to do so)
[x] Add support for the 45-degree angled texture flips and fix the textures when the face is flipped.
[x] Create a way to run tasks for different dimensions and for different sections of the world. So, something 1 million meters away does not block anything.
[x] Improve the physics system and implement the collider id into the voxel data that is shared with threads.
[ ] Add a fully working water/magma flow and removal algorithm.
[x] Update the RichWorld API to be like the rest of the new APIs.
[x] Add voxel tags such as "fluid-breakable" and "unbreakable". These can be either one-bit true/false flags or several bits big for numbers.
[x] Fully implement chunk/column states and have them update after actions such as world sun propagation.
[x] Implement a system to analyze a world column for any light updates, magma light updates, and fluid/magma flows and have it run them.
[x] Create a system to "infinitely" generate a world. This may be just a plug-in or a tool. Could run on its own thread. Not sure yet.
[x] Make it so that chunks store their voxel data in 4 segments. Each is 2 bytes per entry.
Segment 1 is just the voxel id.
Segment 2 is the light data.
Segment 3 is the state data.
Segment 4 is the secondary voxel id.
This maybe could be used in the future to reduce the memory footprint of chunks that do not need state data and or secondary voxel data.
[x] Add another property to chunk data to indicate which dimension the chunk belongs to.
[x] Implement column data that will be kind of like chunk data but could be used to store data about biomes. I may leave this up to the user of the engine but we will see.
This is just a general list of everything that I want to finish before I release beta .1 of the voxel engine.
DataLoader
thread but was broken in Alpha 1.2.2)