Game Mechanics Ability to make upside-down half-tile

This may seem like a very small addition, but actually it's a pretty big one.

First of all, every single tile in Terraria would need an additional sprite for upside down (and left or right) blocks, which is a huge amount of work. Secondly, tiles only have room for two more slope variants, so you wouldn't be able to add upside down, left and right half tiles, only two of the three.

That's not saying it's a bad suggestion, only that on the technical side things get pretty finicky.
 
Wait, What? Why Is That?
Okay, so this is rather technical, but I'll try to explain it.

Every tile in Terraria has a bunch of data that defines its state. For instance, if it contains any wires (and which colours of wire), what paint is applied to it, and of course what slope it has. Because a world has so many tiles, this data is quite expensive to have, so ideally you want to use as little data per tile as possible.

This data is stored in bits, and an individual bit can either be 0 or 1, acting like a switch that can be either on or off. Slope data has three bits assigned to it (000), giving it a total of eight (two to the power of three) different slope states. One (0) is reserved for "no slope", four (1, 2, 3 and 4) are reserved for diagonal slopes and one (5) is reserved for half-blocks. That only leaves you with two unused states: 6 and 7. If you wanted to add more than two slope states, you'd have to allocate additional bits.

In the most ideal situation, you would have unused bits available, but that would still require you to shuffle around the existing allocations (not strictly necessary, but not doing so would make slope handling unnecessarily cluttered). If those bits are not available however, you'd have to allocate additional bits to every tile in the world, which for a game that already uses a relatively high amount of memory is a hard sell. And regardless of whether you already have unused bits available or need to allocate more, you are committing them to give yourself eight additional slope states, but you're only using one of them. That's not efficient. Sure, you could come up with seven extra ones, but that also means you have to sprite seven new frames for every tile in the game, which would take an immense amount of time and frankly defy the point of being efficient in the first place.

In short, you can only add two more slope states before you have to start doing expensive concessions, on top of the already cumbersome task of drawing the slopes. That is, at least in my eyes, the biggest hurdle to overcome here.
 
Back
Top Bottom