I find problem in that Minecraft is generated. As in the worlds are technically infinitely expansive. Meaning we'd need cloning. Scratch that. Cloning is not what they do. We need instancing. Instancing (Something that Alice doesn't know how to do) is where you take a place in memory, have it "Exist", and point all necessary data to the original object. For example, if I wanted to instance a box five thousand times with an offset of the box's width divided by two in the X direction, I would call for a memory location and
reference the data with a pointer, meaning
not copy it,and change
only the location of the object in the X direction by adding the width of the box divided by half, which gets multiplied by the iteration of the instance.
To put it in what at least seems like Java/psuedocode terms,
Code:
ArrayList <Boxes> box;
for (i = 0; i < 5000, i++){
box[i].add(new Box);
box[i].setXdirection = box.get(xPosition) + ((box[i].getWidth / 2) * i);
Note that this is only an example made so you could understand the idea. The code for instancing is nothing like that at all.
Now, perhaps I did not explain why we would reference/instance instead of copy/clone. A reference is a pointer. A clone is a full copy. Needless to say, a full copy would take up more space than something that would simply point to something else for its data. And what happens if we have five thousand copies of a single object, all taking up memory space? Catastrophe. Or lag. However you want to see it. Five thousand references? Well, it shouldn't be
that bad. Just five thousand spots that probably only take up a few megabytes of memory if even that. The only time you would encounter lag with such referencing is if you had the camera pointing at all five thousand at once and your computer had to render them all.