Structural Integrity FTW!
voxel structural integrity game challenge building features idea
Starting with "structural integrity" itself, I needed to simplify and define what it is and how it works. It needs to be easy and intuitive and must take into account the gameplay feature's I'm focusing on. Firstly, I wanted to simplify how players make buildings. The easiest route to have the interface define certain parameters the player can use as "building blocks" (not actual blocks though) for making a building. Examples could be floor, wall, ceiling, beam, column, etc. Each category can have different designs and even an interface for users to create their own! Each can be defined by a couple parameters too: floors and walls have 2 dimensions; columns and beams have a length and thickness, roofs have a height and slope, etc. By defining these parameters, players can create and integrate pre-made building parts in an exponential range of combinations.
Structural Integrity itself is defined as, "the effective up/down 'glue' that holds vertically to the area it's defined over." Basically if I define an area of structural integrity over a horizontal plane, then that plane provides 'glue' to the volume above and below it. If the second floor of a building holds walls above it and a chandelier below it, then that works.
The following picture is a diagram I threw together to show the brief idea of what this means for creating structures in the game:
Columns provide vertical structural integrity in a circular (or maybe square -- it is a voxel game, after all) pattern around the beam; floors provide structural integrity above and below it, and walls provide vertical structural integrity horizontally to it. Buildings can then use walls and columns to hold up floors above the first floor, and floors can provide structural integrity to the walls above it without walls needing to match down below too.
That's just a first idea budding in my mind. I've got a long way to get this working/prove it's a good design; for now, I wanted to post this and see if there might be any feedback/ideas while I flesh out the idea. I'll be back in a couple days with hopefully more thorough definitions and examples.