top of page

Room Builder Post Mortem

The Problems I Wanted To Solve:

Easily create modular rooms

The level layouts in Alberio relied on a large number of modular rooms.  Our art team had created modular assets for these rooms.  However, manually combining these assets into rooms took a long time.  I wanted to created a tool that would fill the gap between the modular assets and their manual implementation.  I wanted designers and artists to be able to build out the basic structure of a room in under a minute.

Easily edit existing modular rooms

Another issue with manually creating rooms was that they were difficult to edit and move around.  I wanted my tool to support editing features that made moving and editing the dimensions of existing rooms an automated process.  It was particularly important that rooms kept their contents in place when these kind of changes were made.

 

Major Iterations:

Floor/Ceiling Support

Originally the room builder just created walls and doors.  However, I noticed that a lot of time was spent filling in the floors to these rooms despite there only being two floor tile variants.  To address this I adding a feature to the room builder that automatically generated a floor and/or ceiling given a floor/ceiling tile.

Supporting Functions

Later in production issues came up with the compatibility of rooms and hallways.  I created a series of support functions to help our team deal with any compatibility issues that came up.  The most notable support function was took a given room and snapping its door to a given hallway entrance, moving all the rooms contents as well.

​

What Went Right:

Room builder was widely used

The room builder ended up being fully integrated into our team’s environmental pipeline.  Nearly ever room in the game was built with the room builder tool.  The amount of time saved by the tool was massive.

The supporting functions solved issues ahead of time

The supporting functions I gave ended up solving future issues before they arose.  The functions allowing rooms to be easily moved along with their contents allowed for our team to make large level changes with relative ease.

 

What Went Wrong:

Over reliance on the tool lead to built up technical debt 

The main issue with the room builder was that it was over used.  Our teams pipeline realied to heavily on this tool which meant that any large art changes had to be worked into the room builder.  Over time this started to hurt our team by building up technical debt and limiting the changes the art team could make.

 

What I Learned:

The end product should be separate from the tool that made it

One of the reasons the room builder started generating technical debt was because the room isn’t self was never separated from the tool.  The room builder at its core was an advanced construction script.  This meant that changes to the tool affected all the rooms previously made, slowing down the speed with which such changes could be made.  In the future I want to strive to always separate the end product from the tool that made it.  The room builder should of been able to create a room and then separate that room from future changes to the tool.

Modular tools can’t beat hand crafted art

While it didn’t become an issue within the time that Alberio was being developed, if our team had continued with the game there would of been issues with polishing the environment.  The modular nature of the room builder was inferior then hand crafted rooms from an artist perspective.  In the future I want to make sure the modular tools I design can also be edited manually.

bottom of page