Each time I’m prototyping new game I’m using such system to create gameplay spaces faster than using static meshes or BSP. Was using this in first person, third person and isometric/topdown game prototypes. It can help graphics artist and level designers to decide which spaces will work with gameplay before even creating modular meshes.
Hope it will help someone too.
Grid based room generation
It’s important to stick with grid when creating games. With room builder you are stuck with the grid. Grid can be changed for your type of game.
Empty spaces and platforms
You can add empty spaces for doors and holes. Platforms can be added as well.
Using instanced static mesh
Room builder is using instanced static meshes to build room.
Room builder is using world space grid material to better visualize dimensions. You can change materials for whole room, ground, ceiling, walls and platforms.
Room Builder Blueprint Documentation
Change whole room material if not using UseSeparateMaterials.
Change grid mesh. If you want to use your mesh make sure:
– Pivot is the same as original mesh,
– Mesh dimensions are the same as GridSize,
How big should be grid. It should match with Grid Mesh dimensions.
How big room should be.
Change walls scale. Can be useful when using bigger grid size.
Should room builder create ceiling.
Hide Ceiling in Editor
Should room builder hide ceiling in editor. Useful when editing room which have ceiling.
Should room builder create walls.
Place for creating empty spots for doors, holes etc.
Place for adding platforms to room.
Change collision type for all instanced static meshes.
Automatic Text Update
By default text is generated to show you how much gameplay space room have. Can be turn off if you want to use custom text.
Use Separate Materials
If you want to use separate materials to walls, ground, ceiling and platforms.
You can change separate materials (if UseSeparateMaterials is set)
Text Render Color
Change text render color.
Draw Empty Locations Debug
This is helpful to visualize how big empty locations are.
How to add new room
Just move RoomBuilder/Blueprints/BP_RoomBuilder blueprint into your level like you move other Actor Blueprints.
How can I use custom grid mesh?
Yes you can use your own mesh with your own dimensions. Just make sure pivot is the same as original mesh used by room builder.
Can I create prefabs?
Yes you can.
- Put Room Builder into your level,
- Mess with it – create a room,
- Then when room is selected go to Edit Blueprint -> Create Child.
How this is better than BSP?
- It’s harder to maintain grid when using BSP,
- You can’t create prefabs from BSP,
- Creating rooms in BPS is slower (for me, maybe some BSP experienced dev can create room in 1s) . Placing room builder creates room for you,
- It’s faster to iterate room and making changes,
- Room builder can be moved around with all platforms and empty spaces, no need to create groups,
- BSP pivots aren’t always good for what you are doing,
- It’s harder to click on BSP brush when you want to iterate,
- Generally for me it’s faster to create rooms using room builder than BSP,
How this is better than using modular static meshes?
Basically the idea behind room builder is to use it before graphics artist will create modular assets. While you are prototyping your gameplay spaces you shouldn’t be dependent of meshes dimensions decided by graphics artist.
Another thing is it’s faster to build rooms using room builder than having modular meshes. You will be changing sizes, doors and holes a lot – and you don’t need to move X meshes to change room size from smaller to bigger.