Remix.run Logo
chadgpt3 22 days ago

They actually added a lot of indirection to the code soon after being acquired. Instead of an array containing the number 1 (meaning dirt) it now contains a pointer to an object with a string name and a hashmap of properties. Instead of drawing a cube in code, it's loaded from an interpreted DSL - all possible calls to that DSL are fixated at load time. The chunk generation process creates and executes a graph of micro-tasks which forms that weird pixel map you see when creating or loading the world. It transitions each chunk through about 15 different states on the way from nonexistent to fully loaded.

They used to talk about wanting to store block update relationships to prevent BUD (block update detector) behavior. I didn't like it at the time, but from a certain perspective it would have been an improvement. Instead they spent their complexity points on pointless memory waste.

mastermage 22 days ago | parent [-]

the id change was actualy much needed for the modding community. As there was only 65 536 possible IDs which in some modpacks was not enough especially accounting microblocks. And also you had massive ID conflicts that you had to manually set in configs every time. Because there was no separation of ids per mod.

chadgpt3 22 days ago | parent [-]

In 1.7 there was automatic ID allocation. The limit could have been expanded to 4 bytes.

Filligree 21 days ago | parent [-]

Having run multiple 1.7 servers, the automatic ID allocation only sort of worked. It was by far the biggest headache.