Research: Indoor CQC Map Generation (1)

Objective: write an algorithm that can create a floor plan (single story) that is reasonable enough to be used as a top-down close quarter combat (CQC) game map.

I don’t know how to do it yet, so I’d study some basic floorplan design principles. The remaining of the article would be my notes watching this video.


Inputs

  • Size of the floorplan
  • Number of stories
  • Single/Multi-family
  • Number of each type of rooms, also garage
  • Thickness of external/internal walls

Features of Space/Room

Y/S/N – Yes/Semi/No

  • Sqft needs (Y/S/N)
  • Adjacencies (list of room references, immediate or not)
  • Public access (Y/S/N)
  • Daylight/Views (Y/S/N)
  • Acoustical privacy (Y/S/N)
  • Plumbing (Y/S/N)
  • Special equipment (DW, MW, Refri…)

Macro Constraint Solving

  1. Fill in the features of each unary feature (anything other than adjacency) with average value + variation
  2. Create a few reasonble and strict requirements on adjacency
  3. Constraint solving on adjacency
  4. Generate Relationship-Diagram (9:08 in the video)

Grouping by Constraints

  1. Group rooms by their features. (e.g. kitchen+living room + dining room since none of them requires privacy)
  2. Place rooms in different directions and makes it somewhat reasonable.

Abstract Floor Plan

  1. Follow the grouping result, draw circles of correct scale with respect to the actual space requirement, at the approximate place we planned earlier.
  2. Ensure each “connected component” is pure, rather than mixed with private and non-private.
  3. Set daylight direction and try to satisfy lighting/view requirements.
  4. Resolve adjacency problems by not allowing adjacency edges to cross. (How)

Bubble Diagram

Draw bubbles (fat circles just like in the abstract floor plan) and make them fit.

Block Diagram

Growing bubbles and make them squarer. Okay to leave some space in between squares as hallways.

(How to make things align though?)

Figure out room sizes

Tip: sum of furniture area + circulation room ~= final room size

Ideas: pre-make furniture assets so save some difficulty generating furnitures.

Open Correct Doors

  • Open correct doors according to the adjacency map.
  • Make sure every room can be accessed
  • Special restrictions for bathroom
  • Keep doors away from beds, toilets, desks

Walls

  • Pluming walls
  • Exterior walls
  • Seperating walls
  • No walls (Imaginary walls that’s removed with common sense, e.g. living & dining & kitchen)
  • Half walls (Shelves or anything that works as a half-separation)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s