Building Tool Idea: rooms and spaces. simple and complex

Hey, after watching the latest stream I think I have a good idea for how to deal with some of the issues that have come up with the new drag based room builder.

One issue that came up was that of interior walls. To deal with this I think you could think of two classes of volumes: rooms and spaces. Rooms preserve all exterior walls as they enter a new volume. Spaces however, do not have any walls that exist within another volume. When you grab or select any volume, you could toggle it between the two states. I think this would be pretty intuitive and easy to learn about. You would just flip a certain volume between the two states a few times and then have a pretty good idea of what each volume was, and how to modify the interior to your liking.

For simple volumes (ie hexahedrons) this works pretty well. However, some of the volumes tend to get pretty complex and just like in the iteration that was shown most of the time (4th I think), you’ll often want to manipulate those complex volumes as a group rather than thinking of each of the underlying volumes.

I think the solution is that you can think of any complex volume as the combination of multiple simple spaces. (ie multiple hexahedrons with no interior walls). So if you can merge and break apart complex volumes into simple spaces, then there’s basically nothing you can’t do. Merging is dead simple and will always be intuitive, so you just need a reasonable way to break apart a complex volume. Saving the initial set of underlying spaces would be a pretty good start, but once you deform that complex volume things get tricky. There could be a couple different algorithms you could use, and I can think of two off the top of my head. If you want details let me know.

Note, a complex volume could still be a space or a room. While that might be a bit mind blowing on paper, I’m pretty sure it would be intuitive in-game.

1 Like

Groups and Layers. Important concepts for anyone designing anything on a computer, whether it’s in a game, a CAD app, or Photoshop. The asks are the same:

  1. “I want different types of assets.”
  2. “I want to be able to manipulate each asset type individually.”
  3. “I want to be able to link different assets together.”
  4. “I want to be able to manipulate (move/add/change/delete) linked assets (groups)”
  5. “I want to be able to designate the visual priority of assets and groups of assets. (layers)”

How that translates to Stonehearth might be:

  1. I want (at least) rooms with walls, and spaces with no walls.
  2. I want to customize each room or space individually. Examples:
    a. size and shape
    b. voxel-level paint and eraser tools
    c. wall and flooring materials/colors/windows/doors/decorations/etc.
  3. I want to multi-select any combination of rooms and spaces and link/group them together.
  4. I want to be able to move/add/change/delete groups.
  5. I want to be able to define the visual priority of each room or space (as well as groups of rooms/spaces).

The above combination of abilities should be relatively easy to teach with the right UI/UX, and would give a rich but accessible tool set for novices and experts alike.

If I just want a single-room hut with a default color scheme and roof, you just use the room and roof tool, add in some doors and windows and you’re done. If I want a 144-room mansion filled with unbelievable custom detail in each room, all the linking and group and prioritization capabilities allow for that too.