After a long time I've finally come to a conclusion that my code... Well, sucks. This is why I am raising this issue. I've decided to rework the time vortex generation, serialization, and de-serialization.
Long explanation
My time vortex code is currently functional. All it does is generates a Complete Binary Tree (BinaryTree.java), and then stores (serializes) it's nodes via in-order traversal (BTreeInorderIterator.java). This gets the job done: it generates data and makes it serializable/de-serializable. However. When you de-serialize the data it looks like some rubbish that has been thrown into a pile. You de-facto have no way to traverse it, to de-serialize it back to BinaryTree, etc. So it's just unusable after generation.
My current plan is to do more research on the topic, learning Java some more, it's design patterns, it's optimizations, etc. I apologize to the players and to the development team for delays, I am sure that the time vortex will not be available in closest updates.
Short explanation on how the time vortex system should behave
The time vortex system is a client-server system. The server generates the vortex for the world using it's seed, and stores it in the world data directory. When the client joins the world, it's asking the server for a packet containing the generated vortex data. All rendering is client-sided.
A quick breakdown of possible implementations
Apart from a binary tree a worm noise can be used as well (the noise used to generate caves in Minecraft), though this will per-se be unpredictable, whilst the binary tree is. The other way to do this is Perlin noise or Simplex noise, where N == 0 transforms to a node, and N > 0 transforms to a boundary, omitting the rest. This faces the same noise problem: It's unpredictable.
P.S
I recently was practicing in data-driven designs with Zig, so probably I will get something out of that. Data-driven time vortex is a funny sounding thing... Also, if anyone could propose a consult on the matter I will very much appreciate it.
TL;DR
After a long time I've finally come to a conclusion that my code... Well, sucks. This is why I am raising this issue. I've decided to rework the time vortex generation, serialization, and de-serialization.
Long explanation
My time vortex code is currently functional. All it does is generates a Complete Binary Tree (BinaryTree.java), and then stores (serializes) it's nodes via in-order traversal (BTreeInorderIterator.java). This gets the job done: it generates data and makes it serializable/de-serializable. However. When you de-serialize the data it looks like some rubbish that has been thrown into a pile. You de-facto have no way to traverse it, to de-serialize it back to BinaryTree, etc. So it's just unusable after generation.
My current plan is to do more research on the topic, learning Java some more, it's design patterns, it's optimizations, etc. I apologize to the players and to the development team for delays, I am sure that the time vortex will not be available in closest updates.
Short explanation on how the time vortex system should behave
The time vortex system is a client-server system. The server generates the vortex for the world using it's seed, and stores it in the world data directory. When the client joins the world, it's asking the server for a packet containing the generated vortex data. All rendering is client-sided.
A quick breakdown of possible implementations
Apart from a binary tree a worm noise can be used as well (the noise used to generate caves in Minecraft), though this will per-se be unpredictable, whilst the binary tree is. The other way to do this is Perlin noise or Simplex noise, where N == 0 transforms to a node, and N > 0 transforms to a boundary, omitting the rest. This faces the same noise problem: It's unpredictable.
P.S
I recently was practicing in data-driven designs with Zig, so probably I will get something out of that. Data-driven time vortex is a funny sounding thing... Also, if anyone could propose a consult on the matter I will very much appreciate it.
Contact me