I see that a lot of you want me to allow painting of not just full blocks, but also stairs, slabs, and additionally be able to paint blocks in different colors on different sides.

In short, I would love to do it! I would have done it long ago, had it been possible. Unfortunately, it’s not with the current data layout. To explain further I need to get slightly more technical, please forgive me.

There are exactly 4 bits of extra information associated with each block in the terrain. It means each blocks can have up to 16 “variants”. As you can guess, painted planks use all 4 bits to specify “color variant” of the planks, that’s why they can have 16 different colors.

In stairs, these bits are used for a different purpose: to determine how the stairs are rotated and whether they are upside down or not. Similarly in slabs (although there is no rotation).

There just isn’t enough bits to make stairs or slabs paintable, because these bits are already used for something else. The same reasoning applies to painting planks different colors on different sides. There are 6 sides, so we would need 6 * 4 = 24 bits to encode 6 sides (and chose from 16 different colors on each).

As any programmer worth his salt will tell you, some clever encoding schemes can be used (and I do a lot of these with the electrics), but they are not magic and won’t turn 4 bits into 24.

The only way we can have proper painting (or some approximation of it) is when I increase the number of bits per block. This can be done, but it heavily increases the memory usage of the game, and may have grave consequences for low memory devices (e.g. Lumia 610 or iPod 4)

Even if I did increase it, painting all sides in 16 different colors is utopia, 24 bits per blocks is just too much. At most we could have about 18 bits available (which is still a massive jump from 4). This is enough for 6 sides painted in a choice of 8 different colors. Personally, I don’t think it’s a good solution – although it allows you to paint all sides separately, it restricts you to use just 8 different colors, which, in some sense, is worse than what we have now. And it still does not solve painting stairs or slabs.

Most likely, If I do increase the number of bits, some other encoding scheme will need to be used that allows you to paint a lot of different things, and some limited form of painting different sides.

It’s all restricted by memory though. If Apple put full 512MB on the iPod 4 back in 2010 and if Microsoft did not do the crazy thing of suddenly releasing “low spec” devices like Lumia 610 with only 256MB of memory…