|Frontpage|     |Documentation|     |Blockmap theory|     |Downloads|

Case study: Alien Vendetta, simplified collission geometry

Author

(c) 2017 Kim Roar Foldøy Hauge

Description

This case study was done using ZokumBSP 1.0.9-rc1. Newer versions may change the data produced.

One of the goals of ZokumBSP was to reduce the blockmap so that one could make even bigger maps. One of the datasets used heavily in the testing looked at was Alien Vendetta. This 32 map set for Doom 2 is well known in the community for being a high quality map set, utilizing many complex special effects, advanced level geometry and most importantly for for the goals of ZokumBSP, several very large maps, made by different people and with different tool chains. There is an earlier case study that goes into detail about various options and the results.

Raw data from ZokumBSP processing av.wad

This test is performed without updating the reject tables and node tree.

$ ./ZokumBSP -n- -r- -t -bso=3z=0g=0 av.wad

ZokumBSP Version: 1.0.9-rc1 (c) 2016-2017 Kim Roar Foldøy Hauge
Based on: ZenNode Version 1.2.1 (c) 1994-2004 Marc Rousseau

Working on: av.wad

  MAP01   : GEOMETRY -  1359/1359  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP -  4074/5386  (75.64%)   Compressed: 91.76%  0.011 secs
  MAP02   : GEOMETRY -  1203/1203  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP -  4360/5228  (83.40%)   Compressed: 91.67%  0.013 secs
  MAP03   : GEOMETRY -  2549/2549  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 13828/16900 (81.82%)   Compressed: 68.97%  0.100 secs
  MAP04   : GEOMETRY -  2418/2418  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 12988/16192 (80.21%)   Compressed: 71.48%  0.152 secs
  MAP05   : GEOMETRY -  2328/2328  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP -  8168/9630  (84.82%)   Compressed: 83.38%  0.026 secs
  MAP06   : GEOMETRY -  2192/2192  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 15194/31992 (47.49%)   Compressed: 67.54%  0.191 secs
  MAP07   : GEOMETRY -  1355/1355  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP -  7210/9072  (79.48%)   Compressed: 76.95%  0.073 secs
  MAP08   : GEOMETRY -  2602/2602  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 21350/25490 (83.76%)   Compressed: 61.07%  0.228 secs
  MAP09   : GEOMETRY -  3729/3729  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 14182/18276 (77.60%)   Compressed: 81.08%  0.096 secs
  MAP10   : GEOMETRY -  7555/7555  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 24630/29086 (84.68%)   Compressed: 92.53%  0.146 secs
  MAP11   : GEOMETRY -  8299/8299  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 35758/41868 (85.41%)   Compressed: 74.35%  0.443 secs
  MAP12   : GEOMETRY -  3193/3193  lines      Reduced to: 100.00  0.002 secs
 *          BLOCKMAP - 13468/16592 (81.17%)   Compressed: 82.09%  0.128 secs
  MAP13   : GEOMETRY -  3005/3005  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 18392/22036 (83.46%)   Compressed: 70.51%  0.179 secs
  MAP14   : GEOMETRY -  3991/3991  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 18178/22924 (79.30%)   Compressed: 79.22%  0.232 secs
  MAP15   : GEOMETRY -  3435/3435  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 18206/22978 (79.23%)   Compressed: 71.47%  0.269 secs
  MAP16   : GEOMETRY -  3110/3110  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 12806/15816 (80.97%)   Compressed: 83.72%  0.101 secs
  MAP17   : GEOMETRY -  2099/2099  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP -  8576/10524 (81.49%)   Compressed: 79.70%  0.032 secs
  MAP18   : GEOMETRY -  4817/4817  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 25306/31080 (81.42%)   Compressed: 72.93%  0.426 secs
  MAP19   : GEOMETRY -  5353/5353  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 25312/29028 (87.20%)   Compressed: 75.88%  0.201 secs
  MAP20   : GEOMETRY - 14839/14839 lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 51470/65114 (79.05%)   Compressed: 84.82%  0.930 secs
  MAP21   : GEOMETRY -  4366/4366  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 11978/13188 (90.82%)   Compressed: 95.41%  0.017 secs
  MAP22   : GEOMETRY -  2223/2223  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP -  9370/11164 (83.93%)   Compressed: 84.05%  0.052 secs
  MAP23   : GEOMETRY -  5295/5295  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 21344/28308 (75.40%)   Compressed: 82.88%  0.273 secs
  MAP24   : GEOMETRY -  3982/3982  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 26184/50166 (52.19%)   Compressed: 69.97%  0.325 secs
  MAP25   : GEOMETRY -  7095/7095  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 37106/64088 (57.90%)   Compressed: 75.85%  0.696 secs
  MAP26   : GEOMETRY -  4710/4710  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 20188/25578 (78.93%)   Compressed: 79.95%  0.289 secs
  MAP27   : GEOMETRY -  7328/7328  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 38080/47002 (81.02%)   Compressed: 75.39%  0.774 secs
  MAP28   : GEOMETRY -  6700/6700  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 26372/30490 (86.49%)   Compressed: 85.39%  0.203 secs
  MAP29   : GEOMETRY -  4111/4111  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 19634/24334 (80.69%)   Compressed: 78.34%  0.238 secs
  MAP30   : GEOMETRY -  1952/1952  lines      Reduced to: 100.00  0.001 secs
 *          BLOCKMAP - 14172/16968 (83.52%)   Compressed: 63.31%  0.116 secs
  MAP31   : GEOMETRY -  4816/4816  lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP - 19292/24852 (77.63%)   Compressed: 79.14%  0.177 secs
  MAP32   : GEOMETRY -   914/914   lines      Reduced to: 100.00  0.000 secs
 *          BLOCKMAP -  5536/6910  (80.12%)   Compressed: 72.77%  0.043 secs

Changes would have been written to av.wad ( 23,633,203 bytes )

32 Levels processed in 7.195 seconds - 32 Levels need updating.
0.224844 secs/level

Processing 32 maps took a bit over 7 seconds on a 3.2GHz multicore Opteron. This is about three times faster than in the previous case study, where the runtime was a bit over 20 seconds. The output is lengthier longer due to the extra GEOMETRY pass that is present in 1.0.9. The map set has no manual geometry optimizations, so all the maps have a size of 100.00% of the original size.

Simplified geometry compression

For information about what simplified collission geometry is, see the blockmap theory page. This case study focuses on full compression, using the the blockmap pswitch -bg=2. Compared to the -bo=2 set, we gain the following additional compression on these 32 maps:
./ZokumBSP -n- -r- -bg=2o=2z=0s av.wad

ZokumBSP Version: 1.0.9-rc1 (c) 2016-2017 Kim Roar Foldøy Hauge
Based on: ZenNode Version 1.2.1 (c) 1994-2004 Marc Rousseau

Working on: av.wad

  MAP01   : GEOMETRY -  1147/1359  lines      Reduced to: 84.40%  0.015 secs
 *          BLOCKMAP -  3634/4074  (89.20%)   Compressed: 90.49%  0.011 secs
  MAP02   : GEOMETRY -  1011/1203  lines      Reduced to: 84.04%  0.130 secs
 *          BLOCKMAP -  3976/4360  (91.19%)   Compressed: 90.94%  0.014 secs
  MAP03   : GEOMETRY -  2311/2549  lines      Reduced to: 90.66%  0.149 secs
 *          BLOCKMAP - 13376/13828 (96.73%)   Compressed: 68.24%  0.108 secs
  MAP04   : GEOMETRY -  2055/2418  lines      Reduced to: 84.99%  0.150 secs
 *          BLOCKMAP - 12074/12988 (92.96%)   Compressed: 69.17%  0.156 secs
  MAP05   : GEOMETRY -  2136/2328  lines      Reduced to: 91.75%  0.143 secs
 *          BLOCKMAP -  7784/8168  (95.30%)   Compressed: 82.70%  0.027 secs
  MAP06   : GEOMETRY -  1994/2192  lines      Reduced to: 90.97%  0.141 secs
 *          BLOCKMAP - 14792/15194 (97.35%)   Compressed: 66.93%  0.195 secs
  MAP07   : GEOMETRY -  1218/1355  lines      Reduced to: 89.89%  0.013 secs
 *          BLOCKMAP -  6936/7210  (96.20%)   Compressed: 76.25%  0.074 secs
  MAP08   : GEOMETRY -  2360/2602  lines      Reduced to: 90.70%  0.150 secs
 *          BLOCKMAP - 20800/21350 (97.42%)   Compressed: 60.32%  0.232 secs
  MAP09   : GEOMETRY -  3475/3729  lines      Reduced to: 93.19%  0.289 secs
 *          BLOCKMAP - 13562/14182 (95.63%)   Compressed: 79.96%  0.098 secs
  MAP10   : GEOMETRY -  6914/7555  lines      Reduced to: 91.52%  0.532 secs
 *          BLOCKMAP - 23278/24630 (94.51%)   Compressed: 92.45%  0.160 secs
  MAP11   : GEOMETRY -  7777/8299  lines      Reduced to: 93.71%  0.554 secs
 *          BLOCKMAP - 34704/35758 (97.05%)   Compressed: 73.76%  0.457 secs
  MAP12   : GEOMETRY -  2616/3193  lines      Reduced to: 81.93%  0.165 secs
 *          BLOCKMAP - 12308/13468 (91.39%)   Compressed: 80.44%  0.150 secs
  MAP13   : GEOMETRY -  2498/3005  lines      Reduced to: 83.13%  0.160 secs
 *          BLOCKMAP - 17258/18392 (93.83%)   Compressed: 68.83%  0.196 secs
  MAP14   : GEOMETRY -  3309/3991  lines      Reduced to: 82.91%  0.300 secs
 *          BLOCKMAP - 16748/18178 (92.13%)   Compressed: 77.59%  0.263 secs
  MAP15   : GEOMETRY -  2946/3435  lines      Reduced to: 85.76%  0.170 secs
 *          BLOCKMAP - 17126/18206 (94.07%)   Compressed: 69.88%  0.282 secs
  MAP16   : GEOMETRY -  2688/3110  lines      Reduced to: 86.43%  0.165 secs
 *          BLOCKMAP - 11958/12806 (93.38%)   Compressed: 82.59%  0.113 secs
  MAP17   : GEOMETRY -  1939/2099  lines      Reduced to: 92.38%  0.140 secs
 *          BLOCKMAP -  8174/8576  (95.31%)   Compressed: 78.30%  0.033 secs
  MAP18   : GEOMETRY -  4355/4817  lines      Reduced to: 90.41%  0.322 secs
 *          BLOCKMAP - 24260/25306 (95.87%)   Compressed: 71.83%  0.463 secs
  MAP19   : GEOMETRY -  4689/5353  lines      Reduced to: 87.60%  0.340 secs
 *          BLOCKMAP - 23970/25312 (94.70%)   Compressed: 74.79%  0.221 secs
  MAP20   : GEOMETRY - 13698/14839 lines      Reduced to: 92.31%  1.193 secs
 *          BLOCKMAP - 49026/51470 (95.25%)   Compressed: 83.95%  0.963 secs
  MAP21   : GEOMETRY -  4062/4366  lines      Reduced to: 93.04%  0.302 secs
 *          BLOCKMAP - 11376/11978 (94.97%)   Compressed: 95.18%  0.018 secs
  MAP22   : GEOMETRY -  2005/2223  lines      Reduced to: 90.19%  0.142 secs
 *          BLOCKMAP -  8930/9370  (95.30%)   Compressed: 83.36%  0.057 secs
  MAP23   : GEOMETRY -  4995/5295  lines      Reduced to: 94.33%  0.330 secs
 *          BLOCKMAP - 20736/21344 (97.15%)   Compressed: 82.40%  0.285 secs
  MAP24   : GEOMETRY -  3801/3982  lines      Reduced to: 95.45%  0.291 secs
 *          BLOCKMAP - 25790/26184 (98.50%)   Compressed: 69.65%  0.337 secs
  MAP25   : GEOMETRY -  6204/7095  lines      Reduced to: 87.44%  0.626 secs
 *          BLOCKMAP - 35260/37106 (95.03%)   Compressed: 74.75%  0.772 secs
  MAP26   : GEOMETRY -  4134/4710  lines      Reduced to: 87.77%  0.319 secs
 *          BLOCKMAP - 19002/20188 (94.13%)   Compressed: 78.85%  0.306 secs
  MAP27   : GEOMETRY -  6656/7328  lines      Reduced to: 90.83%  0.528 secs
 *          BLOCKMAP - 36678/38080 (96.32%)   Compressed: 74.61%  0.810 secs
  MAP28   : GEOMETRY -  6177/6700  lines      Reduced to: 92.19%  0.158 secs
 *          BLOCKMAP - 25314/26372 (95.99%)   Compressed: 84.87%  0.232 secs
  MAP29   : GEOMETRY -  3789/4111  lines      Reduced to: 92.17%  0.069 secs
 *          BLOCKMAP - 18970/19634 (96.62%)   Compressed: 77.69%  0.246 secs
  MAP30   : GEOMETRY -  1768/1952  lines      Reduced to: 90.57%  0.022 secs
 *          BLOCKMAP - 13798/14172 (97.36%)   Compressed: 62.64%  0.120 secs
  MAP31   : GEOMETRY -  4114/4816  lines      Reduced to: 85.42%  0.097 secs
 *          BLOCKMAP - 17816/19292 (92.35%)   Compressed: 77.58%  0.205 secs
  MAP32   : GEOMETRY -   833/914   lines      Reduced to: 91.14%  0.008 secs
 *          BLOCKMAP -  5374/5536  (97.07%)   Compressed: 72.17%  0.046 secs

Saving to av.wad...

32 Levels processed in 15.763 seconds - 32 Levels needed updating.
0.492594 secs/level

The level of improvement is noticable on all of the maps, ranging from as low as a 98.50% of the original size on map24 to map01, where the reduction results in a blockmap that is 89.20% of the original size. The biggest map in the set, map20, that in the release version was near the limit of a blockamp, is with this additional algorithm reduced from 51470 bytes to 49026 bytes, 95.25% of the compressed size.

Conclusion: Reduced geoemtry compression

Reducing the geometry of the collission is not only a viable way to reduce the blockmap in most cases, it is also a useful tool in the hand of the map designer. Since splitting lines so that the two new lines still point in the exact same direction will no longer add to the size of the blockmap, detail can be added to a map without overflowing the maximum lump size. The simplified geoemtry also leads to fewer collission detection tests runetime, and potentially a higher framerate.

It should be noted that new lines will show up in an editor if one tries to edit a map with this type of geometry, since the known editors aren't aware of this technique. This algorithm is an advanced technique and should only be used for final versions of maps and maps where one is very near the size limit and other techniques do not yield satisfactory results.