Tall Worlds Mod

FAQ

When will you release Tall Worlds mod?
I don't know. =)
How high can I build in a tall world?
Tall Worlds mod raises the height limit to 16,777,216 blocks. Half of this height will be above sea level, and half will be below. Sea level will be at y=0
Will all those extra blocks add more lag?
Tall Worlds Mod can potentially reduce lag. It probably won't increase lag.

Long answer:
Minecraft already breaks the world up into vertical chunks that are 16x16x256 blocks. Tall Worlds further breaks the world in to 16x16x16 chunks. Smaller chunks means the game has greater flexibility in removing blocks you can't see. If a lot of those 16x16x256 chunks are not visible to players, then Tall Worlds can throw away the invisible blocks and probably run a bit faster than vanilla Minecraft.
What about lighting? Aren't sunlight calculations tricky if all the blocks aren't loiaded?
Yes. They are tricky. Read on, brave adventurer:

Having top-down lighting clearly leads to problems when you have to deal with vertical segments (ie cubic chunks, or cubes, as I call them) being missing. One possible solution is to just load the cubes on-demand to finish the lighting calculations and then unload them when you're done. Of course, this is a ridiculous solution since loading cubes that are nowhere near players is a waste of resources.

What I've done in Tall Worlds accomplishes the same end goal, but in a much much more efficient way. From what I can tell from staring at (decompiled) sources, very little information is actually needed to calculate skylight. Just block position and opacity. So loading all those cubes dynamically is really unnecessary to compute lighting. All we need is the position and opacity information. Block IDs, metadata, etc are all not needed. What I do in the mod is, for every x,z coordinate, keep a data structure that can efficiently answer queries about block position and opacity. This data structure is saved at the chunk (which I've started calling a column). As long as one cube in a column is loaded, the column must be loaded, and so must the opacity information for the whole column. Therefore, it's possible to calculate sky light for any block in the column without actually requiring that block be loaded.

There's a little bit of bookkeeping to keep this opacity index synchronized with the column state, but it's not hard to implement. The only trick is that unloaded cubes can become "stale." If one cube in a column is loaded and a change is made that would affect sky light for unloaded cubes, those cubes are not relit immediately. If they're not loaded, there's little reason to re-light them right away. But, you have to make sure that when the cube is loaded the next time, it gets re-lit before use.

I've implemented and tested this for my mod and it seems to work reasonably well most of the time. I haven't gone on a torture test though and really try to push on the corner cases. I should probably do that some time though. I might post another youtube video if I can get a particularly nasty edge case working well in the system.

Will my favorite mod X work with Tall Worlds?
It depends

Long answer:
Tall Worlds changes so many things in Minercaft that it actually requires a completely new kind of mod loader, called M3L. If your favorite X mod is designed to run on M3L, then it will work. Other mods are not guaranteed to be compatible.
Are you planning to make Ships Mod compatible with Tall Worlds?
Yes! Ships Mod will eventually be redesigned to run on M3L. How awesome would it be to explore gigantic deep oceans in submarines?! =)
Are you planning to support 3D biomes (like Terraria)?
If I had infinite time, I'd love to do that! It probably won't happen in the first release though.