0
\$\begingroup\$

There are lots of materials on how to procedurally generate levels for a videogame, but they mostly focus on obtaining the layout of the level and exist in a vacuum where having generated said layout means you have reached the end goal. For 3D games, however, it is rarely ideal to just have empty rooms connected by similarly empty corridors - you want to have some kinds of props and decorations all over the level to make it more appealing.

What approaches are there to reasonably decorate a procedurally generated level?

Before you can even begin to place props in a room you need to know what type of room it is, because what props are acceptable candidates for placement depends on the room(bookcases are welcome in libraries, but not in bathrooms). The problem with any generic level generation algorithm is that you end up with a bunch of nondescript rooms, so you will need to have an algorithm that somehow identifies and assigns room types by their properties.

The problem grows more complex when you realize that some props have more placement constraints - chandeliers can't be placed randomly as we expect them to be placed according to some spatial patterns.

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Interior design is a broad topic. What context(s) are you working with in terms of types of environments & decorators? \$\endgroup\$
    – Pikalek
    Sep 10 '20 at 15:15
  • 2
    \$\begingroup\$ There are as many approaches as there are games that use them. To get good answers, you need to narrow this down to the specific problems your game needs to solve. What kinds of rooms and decorations do you have in your game? What kinds of constraints does each have? What kind of generator are you using? What kinds of properties should it use to assign room types? \$\endgroup\$
    – DMGregory
    Sep 10 '20 at 15:18
1
\$\begingroup\$

To begin with, let us set some constraints: -we are working with a 3D tile based system (the procedural environment is made of 3D model segments) that can be connected logically to each other. -the tiles are used to form rooms and hallways, and you need to keep track of rooms for theming.

Each 3d tile contains more than just its mesh and texture. It will also contain positions for the props in the scene. Each prop position should be tied to a list which contains the acceptable props. E.g. a prop position next to a wall might be able to have bookshelves, tables, or banners, whereas a prop position on the ceiling might be able to have lamps, or skulls dangling, etc. You can further refine this by assigning theme tags to the individual props to know what options you have to pick from for a particular room theme.

When you generate your room, you can randomly assign a theme for the room and then scatter a random number of props to the available prop positions. Or, you can make every position have a prop. It is all artist's choice at that point.

As I recall, this is very similar to how Bethesda made the dungeons for skyrim and oblivion, although they created premade templates of tile/prop combinations and used those to quickly assemble the dungeons manually.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.