pavatus / ait

Adds the TARDIS from Doctor Who that you can interact with in a new plethora of ways. Updated for Fabric 1.20.1.
GNU Lesser General Public License v3.0
30 stars 15 forks source link

[TODO] Time vortex implementation #321

Closed nitrogenez closed 3 months ago

nitrogenez commented 5 months ago

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

github-actions[bot] commented 3 months ago

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] commented 3 months ago

This issue was closed because it has been inactive for 4 days since being marked as stale.