Right now I'm tackling my redo of the prop and saving systems, and will move onto biomes before getting back to the meat of the game's content.
For biomes, removed them originally because they were distracting, and filled the wall with clutter. I really love how lonely, small, and isolated it feels on the bare face of the wall. But still, I want a bit of variety, so isolated zones of the game content will contain hand-placed biomes, and much further out will be procedural ones for the more adventurous player. I am considering having some random hideouts/save points in this procedural wilderness, but that is a low priority feature.
I've redone the prop system of the game. Before, I had two scripts that defined how world objects called props behaved: Prop and DynamicProp. These scripts each had variables that further distinguished one prop from another in terms of functionality (e.g. a DynamicProp could also be called an Entity or Activator depending on how it was set up). Now, I have made a seperate script for each type of prop:
Static Prop - props that are saved and loaded with chunks, and never move from their position. E.g. buildings.
Dynamic Prop - props that are capable of moving and transitioning from one chunk to another. E.g. doors, elevators.
Entity Prop - dynamic props that can be interacted with, usually picked up and moved around. E.g. debris, small objects
Activator Prop - props that are stationary execute a state-changing function (open -> closed, off -> on) when activated. E.g. Switches, doors.
Trigger Prop - invisible objects that trigger events when the player touches them. E.g. checkpoints.
Container Prop - dynamic props that track and are responsible for other entity props. E.g. an elevator containing cargo.
Also, I have created a script that defines "SuperChunks." SuperChunks are an area of space occupied by groups of 64x64 regular chunks. The player's current SuperChunk is always in a square that is at 0,0,0 in the lower left corner and 4096,4096,0 in the upper right. When the player walks from one SuperChunk to another, the entire world shifts so that the new SuperChunk fits into the square. That way, the player is never more than a few kilometers from the world origin. This cuts down on floating-point errors that arise when the player coordinate numbers get to high.