Coping with different shaped rooms in a 2d grid
Crossbones+ - Reputation: 2892
Posted 25 September 2012 - 06:57 AM
Currently I have the room shapes as follows:
Living room 2x2
But a bedroom should be wider than the hall so those sizes don’t work visually.
One option would be to decrease the tile sizes and increase the number of tiles that made up the rooms.
Living room 3x3
But that means more tiles, and more tile art.
Another option I came up with is to use scaling of adjacent rooms. So all tiles are the same internally but during the rendering the hall is rendered at half width and the adjacent rooms tiles are scaled to fill in the missing width. In this way the size difference is only a visual trick.
The third option I came up with is an inside outside approach. Where by a polygon defines an inside space and that inside space can have different sized tiles as long as the overall layout fits with in the polygon. In this way the rooms can be all sorts of size but the overall layout of the building fits within the standard 2d grid of the rest of the map. But this requires additional complexity in the content generation to cope with filling the polygon.
I should note that all maps will be procedurally generated.
So what do people think is the best way to tackle this problem? I’m leaning to 2 or 3 at the moment.
Writing Blog: The Aspiring Writer
Legacy - Black Prince Saga Book One - By Alexander Ballard (Free this week)
Crossbones+ - Reputation: 3129
Posted 25 September 2012 - 08:11 AM
I wouldn't really recommend scaling, though. It's harder to maintain a consistent look and feel to the environment tiles if this tile here is scaled 1:1 and that tile over there is scaled 2:1, while this tile yonder is scaled 1:2. All that scaling will have a noticeable effect on the look of things. Plus it sort of plays hell with the placement of things if tiles can be arbitrarily scaled, as it breaks your grid. In procedural generation, the grid is still the king, at least if you want to keep things simple.
Edited by FLeBlanc, 25 September 2012 - 08:13 AM.