Sorry about the near 2 month bump but I saw this thread googling around for the existence of hardened clay stairs and couldn't resist adding to the discussion on page 1 about the game's internal block data structure.
It will be a good while before Mojang see it as viable to increase block data from 16 bits to 24 (by adding a new byte variable to the data structure, since there is no native 24-bit data type as far as I know). It would shoot up RAM usage by the same order of magnitude, and same for disk usage unless some compression is utilized. One way I can think of is to maintain a list of object IDs and how much data each one needs (in number of bits) and use this list to encode the data value for the block by "leaking" the next block on top of the unused bits of the previous one, then this process can be reversed when decoding the values during world/chunk loads. However this would probably shoot up loading times at the cost of the disk storage decrease and create noticeable stutters when a new chunk is in range. Another, version-compatibility murdering method would be to use one of the new 8 bits to determine whether the block in question was interacted with by the player or not, and if not then it is simply not stored on disk. The terrain generator would always kick in on chunk loads and then after that the savegame is used as a "diff file" to add whatever player interactions were made.
Programming is pretty much about finding the compromise between storage and processing. The more you compress the more you need to compute in order to decode the value back to its usable form, and the less you need to compute the more data you need to store for quick access to the usable value... Right now I think Mojang are playing well with the cards they have, even if it is a really ugly/hacky method, computers simply aren't yet in a place where we can blindly throw a 64 bit integer on every block. Until they increase the bit count from 16 to 24 (or 32) we won't be seeing hardened clay stairs/slabs I'm afraid.
If I understand it correctly the first 12 bits (0-4095) hold the ID value of the block, and the remaining 4 bits (16 unique values) are reserved for data associated with the block type, such as colour, orientation, states, etc. Hardened clay stairs would require a lot more than 16 unique values since you would have 10 colours and for every colour there needs to be orientation and state (upsidedown-or-not for example). So no, it isn't that simple. It can be done once Mojang increase the block data size to 24 bits, but keep in mind that the RAM usage of the game would increase by roughly 50% as well, and same for world size on disk (if no compression is used).
One could of course just give every block type a unique ID along with its properties, like for example block with ID 9427 is blue hardened clay stairs facing north upside down, but can you imagine the pain in maintaining this setup when you have thousands upon thousands of values? It would be about as hacky and ill-maintainable as you can get. Mojang are doing the best they can with the current computers and technology we have access to today.
look i like and not at the same time
cause its just like saying "hey you want some wool stairs" its basically that in a nutshell
I see hardened clay as being intended for building, while wool is intended for decoration and items (carpets, beds, paintings). I feel limited by the lack of hardened clay slabs and stairs while I have no desire to have wool slabs or stairs.
It will be a good while before Mojang see it as viable to increase block data from 16 bits to 24 (by adding a new byte variable to the data structure, since there is no native 24-bit data type as far as I know). It would shoot up RAM usage by the same order of magnitude, and same for disk usage unless some compression is utilized. One way I can think of is to maintain a list of object IDs and how much data each one needs (in number of bits) and use this list to encode the data value for the block by "leaking" the next block on top of the unused bits of the previous one, then this process can be reversed when decoding the values during world/chunk loads. However this would probably shoot up loading times at the cost of the disk storage decrease and create noticeable stutters when a new chunk is in range. Another, version-compatibility murdering method would be to use one of the new 8 bits to determine whether the block in question was interacted with by the player or not, and if not then it is simply not stored on disk. The terrain generator would always kick in on chunk loads and then after that the savegame is used as a "diff file" to add whatever player interactions were made.
Programming is pretty much about finding the compromise between storage and processing. The more you compress the more you need to compute in order to decode the value back to its usable form, and the less you need to compute the more data you need to store for quick access to the usable value... Right now I think Mojang are playing well with the cards they have, even if it is a really ugly/hacky method, computers simply aren't yet in a place where we can blindly throw a 64 bit integer on every block. Until they increase the bit count from 16 to 24 (or 32) we won't be seeing hardened clay stairs/slabs I'm afraid.
cause its just like saying "hey you want some wool stairs" its basically that in a nutshell
Why does it matter? I'm pretty sure that with anvil they can hold all the block id's we'll ever need.
One could of course just give every block type a unique ID along with its properties, like for example block with ID 9427 is blue hardened clay stairs facing north upside down, but can you imagine the pain in maintaining this setup when you have thousands upon thousands of values? It would be about as hacky and ill-maintainable as you can get. Mojang are doing the best they can with the current computers and technology we have access to today.
I see hardened clay as being intended for building, while wool is intended for decoration and items (carpets, beds, paintings). I feel limited by the lack of hardened clay slabs and stairs while I have no desire to have wool slabs or stairs.
Image Removed