I have a hardware related question due to some software I'm developing, but not being a hardware person means I've had trouble finding anything other than the most vague information. First, a bit of background.
I'm developing a game engine and am currently deciding how best to implement the environment. I think a good way would be a quadtree such that each node has pointers to children that are null if there's nothing interesting in the children (e.g., if three quadrants are entirely dirt and the other is dirt and sky, then the pointers to the three quadrants are null and they're filled in with the base material of the node, in that case dirt). This method would let me have continuous materials (not blocks), while still not taking up a ton of space on the hard drive unless something goes Horribly Wrong, such as the world being entirely filled with streaks of multiple materials.
So, designing this, I realized I don't know enough about hard drive disk access to know if this is a feasible idea. In an ideal world this would be no problem - lookup time is just following pointers that logarithmically cut the area down, so the total depth of the tree wouldn't be a big problem. But that's ignoring disk access. I don't know how far apart pieces of data have to be before that starts to matter, and I don't even really know enough about filesystems to know if a few hundred megabyte file is likely to be in pieces far across the disk or close together. If the maximum depth of a tree is, say, ten nodes, is there going to be appreciable slowdown from jumping from pointer on disk to pointer on disk ten times? Or is it going to be pretty negligible? Would storing the pointers themselves in a quadtree in memory at start time be worth it in this case?
I can find broad information (lookup time is not linear to distance, because of the disk parts accelerating and decelerating) and some other broad stuff, but nothing that really lets me truly answer my question.
If anyone has some vastly superior idea for representing the world, too, feel free to let me know. But I'd really like to know about hard drive access at well - it's disconcerting that in the middle of designing something I hit a wall that I don't know how to begin to research in detail.
