Mapping/Checklist

From UFO:AI

This is a quick checklist of best practices, common pitfalls, hints and frequently asked questions regarding maps.

  • minimise amount of exposed faces;
  • minimise brushcount wherever possible;
  • assign func_breakable to individual brushes only;
  • stepon and actorclip brushes should always be aligned at lower boundary (0, 64 and so on);
  • spawn points and stepon brushes should always be aligned to 32 unit grid in x/y directions;
  • actorclip brushes that are meant to prevent actors from stepping on a tile altogether should always cover full 32 unit in x/y directions;
  • don't make overlapping brushes whenever possible;
  • don't make stairs steeper than 45 degrees. don't make steps too large, they will get in the way;
  • floors should be in relative height 0-4 (0-4, 64-68 etc) and never below absolute heigth 0;
  • don't clone func_group objects (they stay in the same group). Actually, better do not clone things at all, copy-paste them - that works much better to prevent accidentally grouped 10 beds in a map;
  • group, group and group some more. grouping brushes that belong together and form a single object is good, it makes mapping much easier - and it does not impact map compiling or game performance in any way;
  • to select func_group, select one brush of the func_group, then press ctrl+alt+e;
  • to create holes in existing brushes, create a brush where you want the hole to be, select it and press Shift u. remove the temporary brush afterwards;
  • brush splitting;
  • walls, railings and other things should be aligned with the 32 unit grid in such a way that they are between 32 unit tiles and occupy no more than 4 units on each direction;
  • always set your levelflags, even if you think that setting none and having the brush appear in all levels will work for you. even if your maps has only 3 levels, set levelflags up to 8th level, if the brush should be visible in higher levels. otherwise adding a new level above or below existing ones will be near impossible;
  • you can see nodraw brushes and other entities in-game by enabling r_showbox variable;
  • you can see actorclip brushes in-game by enabling r_drawspecialbrushes variable;
  • if you want to copy an object from another map, copy it from prefabs, if available - prefabs are most likely to have latest fixes to the object that could be yet not in the other maps
project-navigation