The results of some manual data mining

Soylent_greenSoylent_green Join Date: 2002-12-20 Member: 11220Members, Reinforced - Shadow
<div class="IPBDescription">What is the profile of a good NS map?</div>I thought it be fun to deconstruct some NS maps. I'm going to try to not draw conclusions here and just present data, methodology and some sources of errors.

The intent is to establish charted waters; the region inhabited by official or formerly official maps. Even if you want to design a map that is unconventional it helps to have a decent idea of what conventional is.

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->/------------------------------------------------------------------------------------------------------------\
| Map       | #RT | #DRES | Aspect | Area % | Coverage % | Adj. Area | Vent % | Hall % | Room % | Pop. proxy |
\------------------------------------------------------------------------------------------------------------/
| Altair    | 10  | 0     | 1.01   | 67%    | 49%        | 33%       | 10%    | 46%    | 44%    | 36         |
| Ayumi     | 9   | 0     | 1.29   | 50%    | 42%        | 21%       | 16%    | 48%    | 35%    | 35         |
| Bast      | 8   | 0     | 1.07   | 60%    | 50%        | 30%       | 16%    | 32%    | 52%    | 36         |
| Caged     | 10  | 0     | 1.02   | 61%    | 46%        | 33%       | 6%     | 40%    | 54%    | 39         |
| Eclipse   | 9   | 0     | 1.26   | 65%    | 42%        | 28%       | 9%     | 47%    | 44%    | 44         |
| Eon       | 9   | 0     | 1.17   | 80%    | 37%        | 30%       | 8%     | 42%    | 51%    | 36         |
| Hera      | 10  | 0     | 1.02   | ???    | 45%        | ???       | 4%     | 32%    | 64%    | 40         |
| Lost      | 9   | 0     | 1.22   | 40%    | 51%        | 20%       | 9%     | 46%    | 45%    | 41         |
| Lucid     | 10  | 0     | 1.01   | 47%    | 38%        | 17%       | 10%    | 45%    | 44%    | 33         |
| Machina   | 11  | 0     | 1.35   | 68%    | 50%        | 34%       | 7%     | 43%    | 50%    | 30         |
| Metal     | 10  | 0     | 1.04   | 71%    | 44%        | 31%       | 11%    | 42%    | 47%    | 49         |
| Mineshaft | 10  | 1     | 1.07   | ???    | 38%        | ???       | 1%     | 47%    | 52%    | 9          |
| Nancy     | 9   | 0     | 1.04   | 68%    | 35%        | 24%       | 7%     | 41%    | 52%    | 39         |
| Nothing   | 10  | 0     | 1.01   | ???    | 34%        | ???       | 10%    | 44%    | 45%    | 39         |
| Origin    | 10  | 1     | 1.25   | 70%    | 48%        | 34%       | 16%    | 46%    | 38%    | 43         |
| Shiva     | 11  | 1     | 1.14   | ???    | 45%        | ???       | 6%     | 43%    | 50%    | 26         |
| Tanith    | 10  | 1     | 1.14   | 59%    | 45%        | 27%       | 14%    | 37%    | 50%    | 50         |
| Veil      | 10  | 1     | 1.12   | 66%    | 47%        | 30%       | 5%     | 45%    | 50%    | 49         |
\------------------------------------------------------------------------------------------------------------/<!--c2--></div><!--ec2-->

#RT: Number of RTs in the map.

#DRES: Number of double res.

Aspect: Long axis divided by short axis of a bounding box encompasing the map in hammer. RR not included. 1 is a square, 2 is twice as long.
Area %: Area of bounding box encompasing map in hammer as percentage of maximum(divide by 8192*8192). Could not decompile Hera, Nothing, Mineshaft or Shiva to get this number.

Coverage %: Percentage of minimap(cropped to approximate hammer's bounding box) composed of non-void pixels.

Adj. Area: Bounding box area multiplied by coverage.

Vent %: Percentage of non-void minimap pixels composed of vent. Level over level makes this number unreliable. Clear-cut definition of vent; wherever the minimap says you have to crouch to move as a marine.

Hall %: Percentage of non-void minimap pixels composed of hallway. Subjectivity makes this number unreliable.

Room %: Percentage of non-void minimap pixels composed of room. Subjectivity makes this number unreliable.

Pop. proxy: The number of servers NSBrowser has seen playing this map in the last week. Poor proxy for popularity, would much rather have something like time spent on this map by players the last week.

Methodology: Decompile maps, note the size of a bounding box around the map. Extract minimap sprites to .bmp format, select void pixels and create a mask. Colour void pixels 0x000000 black. Colour vents 0x00ff00 green, colour corridors 0x0000ff blue, colour rooms 0xff0000 red, colour things which aren't clearly corridors or clearly rooms(mixed) as 0x7f0080. Mark the bounding area around the minimap, flatten image and use the blur->average filter(colours the selected area with the mean colour of the selected area). Sum the colour components and divide by 255, this is the coverage %; divide the green component by the sum of the components, this is vent fraction; divide the red component by the sum of components, this is room fraction; divide the blue component by the sum of the components, this is the corridor fraction.

Subjectivity creeps in when judging whether something is a room, a corridor or a bit of both; I tried to apply functionalism to restrain subjectivity a bit. If players just pass through from one side to the next without stopping it's a corridor even if in appearance it is a small room. If players frequently reloc there, put a phasegate there or if there is an RT it is at least a mixed area even if it is corridor like in appearance(e.g. power core on Veil). If it is a hive room, a double res or a marine start it is always a room regardless of shape.
Sign In or Register to comment.