From DoomWiki.org

(Discussing suitable thumbnail dimensions)
(Further discussion & almost-conclusion of thumbnail dimensioning)
Line 93: Line 93:
 
To get a feel for this problem, I generated the four IWADs' maps with scale 4.0:
 
To get a feel for this problem, I generated the four IWADs' maps with scale 4.0:
  
{| class="wikitable" style="width: auto||
+
{| class="wikitable" ||
|Level||[[The Ultimate Doom|Ult.Doom]]||Level||[[Doom II]]||[[Evilution]]||[[The Plutonia Experiment|Plutonia]]
+
|Level||[[The Ultimate Doom|Ult.Doom]]||Level||[[Doom II]]||[[TNT: Evilution|Evilution]]||[[The Plutonia Experiment|Plutonia]]
 
|-
 
|-
 
||'''E1M1'''||<center>1152 x 712</center>||'''MAP01'''||<center>852 x 920</center>||<center>440 x 532</center>||<center>1244 x 944</center>
 
||'''E1M1'''||<center>1152 x 712</center>||'''MAP01'''||<center>852 x 920</center>||<center>440 x 532</center>||<center>1244 x 944</center>
Line 175: Line 175:
 
So a mechanism is needed to keep large maps down to acceptable image dimensions. That's actually simple: fall back on the already specified maximum dimension for the largest of width and height. Limiting the above ''expansive'' maps to 1600 pixels results in the following new dimensions, with the effective scale added in ''italics'':
 
So a mechanism is needed to keep large maps down to acceptable image dimensions. That's actually simple: fall back on the already specified maximum dimension for the largest of width and height. Limiting the above ''expansive'' maps to 1600 pixels results in the following new dimensions, with the effective scale added in ''italics'':
  
{| class="wikitable" style="width: auto||
+
{| class="wikitable" ||
|Level||[[The Ultimate Doom|Ult.Doom]]||Level||[[Doom II]]||[[Evilution]]||[[The Plutonia Experiment|Plutonia]]
+
|Level||[[The Ultimate Doom|Ult.Doom]]||Level||[[Doom II]]||[[TNT: Evilution|Evilution]]||[[The Plutonia Experiment|Plutonia]]
 
|-
 
|-
 
||'''E1M7'''|| ||'''MAP07'''|| ||<center>1600 x 966</center> <center>''4.54''</center>||
 
||'''E1M7'''|| ||'''MAP07'''|| ||<center>1600 x 966</center> <center>''4.54''</center>||
Line 236: Line 236:
 
==Thumbnailing==
 
==Thumbnailing==
  
A user's perception of map view thumbnails &ndash; embedded next to walkthroughs &ndash; is influenced by the images' area and ratio of width and height. I think a series of map pages (e.g. of an IWAD or megawad) look best if the thumbnails' perception doesn't wildly differ from page to page. But currently the image(/file) tags used in walkthroughs define only their widths, typically 300px but sometimes varying that for unusual dimension ratios. Image tags also allow define the height, with the Wiki engine scaling the thumbnail within either maximum while preserving aspect ratio, e.g. 300x400px or 300x360px.
+
A user's perception of map view thumbnails &ndash; embedded next to walkthroughs &ndash; is influenced by the images' area and ratio of width and height. I think a series of map pages (e.g. of an IWAD or megawad) look best if the thumbnails' perception doesn't differ wildly from page to page. But currently the image(/file) tags used in walkthroughs define only their widths, typically 300px but sometimes varying that for unusual dimension ratios. Image tags also allow define the height, with the Wiki engine scaling the thumbnail within either maximum while preserving aspect ratio, e.g. 300x400px or 330x300px.
  
What would be a suitable "standard" dimension in the context of walkthrough sections? Let's explore a variety of situations:
+
What would be suitable "standard" dimensions in the context of walkthrough sections? Let's explore a variety of situations:
  
 
----
 
----
 
===Walkthrough===
 
===Walkthrough===
 
[[File:HR MAP18 map.png|thumb|300px|Nearly square @ 300px]]
 
[[File:HR MAP18 map.png|thumb|300px|Nearly square @ 300px]]
{{Map spots}}
 
 
====Essentials====
 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.
 
 
Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.
 
----
 
===Walkthrough===
 
[[File:HR MAP18 map.png|thumb|300x360px|Nearly square @ 300x360px]]
 
 
{{Map spots}}
 
{{Map spots}}
  
Line 279: Line 270:
 
----
 
----
 
===Walkthrough===
 
===Walkthrough===
[[File:HR MAP17 map.png|thumb|320px|Landscape @ 320px]]
+
[[File:HR MAP17 map.png|thumb|330px|Landscape @ 330px]]
 
{{Map spots}}
 
{{Map spots}}
  
Line 289: Line 280:
 
----
 
----
 
===Walkthrough===
 
===Walkthrough===
[[File:HR MAP17 map.png|thumb|340px|Landscape @ 340px]]
+
[[File:HR MAP17 map.png|thumb|360px|Landscape @ 360px]]
 
{{Map spots}}
 
{{Map spots}}
  
Line 349: Line 340:
 
----
 
----
  
===Summary===
+
===Summary of examples===
 +
For (extreme) portrait-oriented images, limiting height to 360px gives acceptable results.  For (extreme) landscape-oriented images, extending width to 330px or 360px helps their perception too.  For the middle ground of square-ish images, 300x300px naturally works well. Determining the (slightly arbitrary) area threshold where to switch from one dimension limit to another will take more work.
 +
 
 +
===Goal for thumbnail area===
 +
The maximum possible area at the default width and height is 90000 px<sup>2</sup> for a square image.  For other aspect ratios, my gut feeling is that two-thirds of that area, or roughly 60000 px<sup>2</sup>, is a good target to aim for in order to result in reasonably consistent user perception of thumbnails. For images that are more landscape or portrait oriented, either the width or height (respectively) can be increased to keep the area within that ballpark, but only up to a limit of 360px or maybe 390px.
 +
 
 +
In order to get a better idea of how this approach impacts a wide variety of typical full-size image dimensions, I wrote a script to generate the following table. The original dimensions increment from 400 to 1600 at 150 px steps, and thumbnail dimensions start at 300x300px until the resulting area drops below 60000. Then the limit for the smallest dimension is increased in steps of 10% (30 px) until >=60000 px<sup>2</sup> is reached again, or the maximum increase of 30% is reached. The resulting dimensions and area are listed in the '+X0%' columns.
 +
 
 +
{| {{prettytable|style=text-align: right;}}
 +
|-
 +
!style="text-align: left;"|Original!!style="text-align: left;"|Ratio!!style="text-align: left;"|Thumbnail!!style="text-align: left;"|Area!!style="text-align: left;"|+10%!!style="text-align: left;"|Area!!style="text-align: left;"|+20%!!style="text-align: left;"|Area!!style="text-align: left;"|+30%!!style="text-align: left;"|Area
 +
|-
 +
| 400 x  400|| 1.00|| 300 x  300|| 90000
 +
|-
 +
| 400 x  550|| 0.73|| 218 x  300|| 65454
 +
|-
 +
| 400 x  700|| 0.57|| 171 x  300|| 51428|| 188 x  330|| 62228
 +
|-
 +
| 400 x  850|| 0.47|| 141 x  300|| 42352|| 155 x  330|| 51247|| 169 x  360|| 60988
 +
|-
 +
| 400 x 1000|| 0.40|| 120 x  300|| 36000|| 132 x  330|| 43560|| 144 x  360|| 51840|| 156 x  390|| 60840
 +
|-
 +
| 400 x 1150|| 0.35|| 104 x  300|| 31304|| 114 x  330|| 37878|| 125 x  360|| 45078|| 135 x  390|| 52904
 +
|-
 +
| 400 x 1300|| 0.31||  92 x  300|| 27692|| 101 x  330|| 33507|| 110 x  360|| 39876|| 120 x  390|| 46800
 +
|-
 +
| 400 x 1450|| 0.28||  82 x  300|| 24827||  91 x  330|| 30041||  99 x  360|| 35751|| 107 x  390|| 41958
 +
|-
 +
| 400 x 1600|| 0.25||  75 x  300|| 22500||  82 x  330|| 27225||  90 x  360|| 32400||  97 x  390|| 38025
 +
|-
 +
| 550 x  400|| 1.38|| 300 x  218|| 65454
 +
|-
 +
| 550 x  550|| 1.00|| 300 x  300|| 90000
 +
|-
 +
| 550 x  700|| 0.79|| 235 x  300|| 70714
 +
|-
 +
| 550 x  850|| 0.65|| 194 x  300|| 58235|| 213 x  330|| 70464
 +
|-
 +
| 550 x 1000|| 0.55|| 165 x  300|| 49500|| 181 x  330|| 59895|| 198 x  360|| 71280
 +
|-
 +
| 550 x 1150|| 0.48|| 143 x  300|| 43043|| 157 x  330|| 52082|| 172 x  360|| 61982
 +
|-
 +
| 550 x 1300|| 0.42|| 126 x  300|| 38076|| 139 x  330|| 46073|| 152 x  360|| 54830|| 165 x  390|| 64350
 +
|-
 +
| 550 x 1450|| 0.38|| 113 x  300|| 34137|| 125 x  330|| 41306|| 136 x  360|| 49158|| 147 x  390|| 57693
 +
|-
 +
| 550 x 1600|| 0.34|| 103 x  300|| 30937|| 113 x  330|| 37434|| 123 x  360|| 44550|| 134 x  390|| 52284
 +
|-
 +
| 700 x  400|| 1.75|| 300 x  171|| 51428|| 330 x  188|| 62228
 +
|-
 +
| 700 x  550|| 1.27|| 300 x  235|| 70714
 +
|-
 +
| 700 x  700|| 1.00|| 300 x  300|| 90000
 +
|-
 +
| 700 x  850|| 0.82|| 247 x  300|| 74117
 +
|-
 +
| 700 x 1000|| 0.70|| 210 x  300|| 63000
 +
|-
 +
| 700 x 1150|| 0.61|| 182 x  300|| 54782|| 200 x  330|| 66286
 +
|-
 +
| 700 x 1300|| 0.54|| 161 x  300|| 48461|| 177 x  330|| 58638|| 193 x  360|| 69784
 +
|-
 +
| 700 x 1450|| 0.48|| 144 x  300|| 43448|| 159 x  330|| 52572|| 173 x  360|| 62565
 +
|-
 +
| 700 x 1600|| 0.44|| 131 x  300|| 39375|| 144 x  330|| 47643|| 157 x  360|| 56700|| 170 x  390|| 66543
 +
|-
 +
| 850 x  400|| 2.13|| 300 x  141|| 42352|| 330 x  155|| 51247|| 360 x  169|| 60988
 +
|-
 +
| 850 x  550|| 1.55|| 300 x  194|| 58235|| 330 x  213|| 70464
 +
|-
 +
| 850 x  700|| 1.21|| 300 x  247|| 74117
 +
|-
 +
| 850 x  850|| 1.00|| 300 x  300|| 90000
 +
|-
 +
| 850 x 1000|| 0.85|| 255 x  300|| 76500
 +
|-
 +
| 850 x 1150|| 0.74|| 221 x  300|| 66521
 +
|-
 +
| 850 x 1300|| 0.65|| 196 x  300|| 58846|| 215 x  330|| 71203
 +
|-
 +
| 850 x 1450|| 0.59|| 175 x  300|| 52758|| 193 x  330|| 63837
 +
|-
 +
| 850 x 1600|| 0.53|| 159 x  300|| 47812|| 175 x  330|| 57853|| 191 x  360|| 68850
 +
|-
 +
|1000 x  400|| 2.50|| 300 x  120|| 36000|| 330 x  132|| 43560|| 360 x  144|| 51840|| 390 x  156|| 60840
 +
|-
 +
|1000 x  550|| 1.82|| 300 x  165|| 49500|| 330 x  181|| 59895|| 360 x  198|| 71280
 +
|-
 +
|1000 x  700|| 1.43|| 300 x  210|| 63000
 +
|-
 +
|1000 x  850|| 1.18|| 300 x  255|| 76500
 +
|-
 +
|1000 x 1000|| 1.00|| 300 x  300|| 90000
 +
|-
 +
|1000 x 1150|| 0.87|| 260 x  300|| 78260
 +
|-
 +
|1000 x 1300|| 0.77|| 230 x  300|| 69230
 +
|-
 +
|1000 x 1450|| 0.69|| 206 x  300|| 62068
 +
|-
 +
|1000 x 1600|| 0.63|| 187 x  300|| 56250|| 206 x  330|| 68062
 +
|-
 +
|1150 x  400|| 2.88|| 300 x  104|| 31304|| 330 x  114|| 37878|| 360 x  125|| 45078|| 390 x  135|| 52904
 +
|-
 +
|1150 x  550|| 2.09|| 300 x  143|| 43043|| 330 x  157|| 52082|| 360 x  172|| 61982
 +
|-
 +
|1150 x  700|| 1.64|| 300 x  182|| 54782|| 330 x  200|| 66286
 +
|-
 +
|1150 x  850|| 1.35|| 300 x  221|| 66521
 +
|-
 +
|1150 x 1000|| 1.15|| 300 x  260|| 78260
 +
|-
 +
|1150 x 1150|| 1.00|| 300 x  300|| 90000
 +
|-
 +
|1150 x 1300|| 0.88|| 265 x  300|| 79615
 +
|-
 +
|1150 x 1450|| 0.79|| 237 x  300|| 71379
 +
|-
 +
|1150 x 1600|| 0.72|| 215 x  300|| 64687
 +
|-
 +
|1300 x  400|| 3.25|| 300 x  92|| 27692|| 330 x  101|| 33507|| 360 x  110|| 39876|| 390 x  120|| 46800
 +
|-
 +
|1300 x  550|| 2.36|| 300 x  126|| 38076|| 330 x  139|| 46073|| 360 x  152|| 54830|| 390 x  165|| 64350
 +
|-
 +
|1300 x  700|| 1.86|| 300 x  161|| 48461|| 330 x  177|| 58638|| 360 x  193|| 69784
 +
|-
 +
|1300 x  850|| 1.53|| 300 x  196|| 58846|| 330 x  215|| 71203
 +
|-
 +
|1300 x 1000|| 1.30|| 300 x  230|| 69230
 +
|-
 +
|1300 x 1150|| 1.13|| 300 x  265|| 79615
 +
|-
 +
|1300 x 1300|| 1.00|| 300 x  300|| 90000
 +
|-
 +
|1300 x 1450|| 0.90|| 268 x  300|| 80689
 +
|-
 +
|1300 x 1600|| 0.81|| 243 x  300|| 73125
 +
|-
 +
|1450 x  400|| 3.63|| 300 x  82|| 24827|| 330 x  91|| 30041|| 360 x  99|| 35751|| 390 x  107|| 41958
 +
|-
 +
|1450 x  550|| 2.64|| 300 x  113|| 34137|| 330 x  125|| 41306|| 360 x  136|| 49158|| 390 x  147|| 57693
 +
|-
 +
|1450 x  700|| 2.07|| 300 x  144|| 43448|| 330 x  159|| 52572|| 360 x  173|| 62565
 +
|-
 +
|1450 x  850|| 1.71|| 300 x  175|| 52758|| 330 x  193|| 63837
 +
|-
 +
|1450 x 1000|| 1.45|| 300 x  206|| 62068
 +
|-
 +
|1450 x 1150|| 1.26|| 300 x  237|| 71379
 +
|-
 +
|1450 x 1300|| 1.12|| 300 x  268|| 80689
 +
|-
 +
|1450 x 1450|| 1.00|| 300 x  300|| 90000
 +
|-
 +
|1450 x 1600|| 0.91|| 271 x  300|| 81562
 +
|-
 +
|1600 x  400|| 4.00|| 300 x  75|| 22500|| 330 x  82|| 27225|| 360 x  90|| 32400|| 390 x  97|| 38025
 +
|-
 +
|1600 x  550|| 2.91|| 300 x  103|| 30937|| 330 x  113|| 37434|| 360 x  123|| 44550|| 390 x  134|| 52284
 +
|-
 +
|1600 x  700|| 2.29|| 300 x  131|| 39375|| 330 x  144|| 47643|| 360 x  157|| 56700|| 390 x  170|| 66543
 +
|-
 +
|1600 x  850|| 1.88|| 300 x  159|| 47812|| 330 x  175|| 57853|| 360 x  191|| 68850
 +
|-
 +
|1600 x 1000|| 1.60|| 300 x  187|| 56250|| 330 x  206|| 68062
 +
|-
 +
|1600 x 1150|| 1.39|| 300 x  215|| 64687
 +
|-
 +
|1600 x 1300|| 1.23|| 300 x  243|| 73125
 +
|-
 +
|1600 x 1450|| 1.10|| 300 x  271|| 81562
 +
|-
 +
|1600 x 1600|| 1.00|| 300 x  300|| 90000
 +
|-
 +
|}
 +
 
 +
===Conclusions===
 +
It seems to me that this approach works well for dimension increments up to at least (360px) 20%, and the only question remaining is whether 390px (30%) is acceptable for either width or height, or both, within the overall map page layout. The tricky part about that choice is that it's also influenced by the amount of walkthrough text next to the thumbnail, the browser window width, and perhaps other factors.
  
For (extreme) portrait-oriented images, limiting height to 360px gives acceptable results. For (extreme) landscape-oriented images, extending width to 340px helps their perception.  For the middle ground of square-ish images, 300x300px naturally works well. Computing the (slightly arbitrary) ratio thresholds where to switch from one dimension limit to another will take more work.
+
Dealing with the thresholds and increments is of course less easy to do when manually building out a map skeleton into a (more) complete page, so then the above can be used as merely a guideline. But I've already written a bot script to address the issue of [[User talk:MtErebus#Map thumb captions|replacing map caption strings]], and this script will (soon) include the computations to modify the thumbnail dimensions as well. Then, at least for stock levels and megawads, and any other levels for which a .ini file is compiled, this approach can be rolled out consistently.

Revision as of 06:26, 24 October 2016

This page discusses aspects of, and improvements for, map views. Having dabbled in PostScript map printing in the (distant) past, I have a soft spot for this topic. :) This page aims to tie together all available info that's fragmented in various talk pages (or even only hidden in some contributor's heads), and document the bits I figured out for myself. And sometimes it's little more than a brain dump.

Crispness

Two tools are commonly used to create map images for this wiki: the Omgifol drawmaps.py script and SLADE 3. Other tools appear to have been sporadically used to generate map views, e.g. MAP22-castle-of-grief.svg, No_Rest_for_the_Living_Map01.png and Lost_episodes_of_doom_e1m3.png, but it's unknown what and where they are, and they don't seem to be in active use anymore, so they are not covered here.

Omgifol‎ drawmaps.py exists in three versions. These test images illustrate the differences:

omgifol images are generated via the command-line:

# image 1 & 2:
python omg/demo/drawmaps.py doom2.wad MAP01 999 PNG
# image 3:
python omg/demo/drawmaps.py doom2.wad MAP01 1079

slade3 images are generated via the following GUI steps:

  1. Open dialog tab Edit -> Preferences -> Interface -> Colours & Theme
  2. In section "Map Image Export", set Background 'White' (default) & Opacity 255 (non-transparent)
  3. Switch to dialog tab Advanced
  4. Find the map_image_* entries, and set _thickness to 3
  5. For the test image, set _height to 1079 and _width to 999
  6. Load doom2.wad
  7. From the WAD directory, preview MAP01
  8. Use the Save Map Image button, to the left just above the preview, and Save

See also the built-in Documentation -> Tutorials -> How to Create Map Images page.

Differences

Looking closely at the full-size images, there are three visible differences. In image 1, the end points of many (gray) 2-sided linedefs appear on top of the (black) 1-sided linedefs they connect to. See for example where the diagonal steps in the starting room meet the walls. This gives a ragged look to the overall map.

In images 2 and 3, this problem is solved by drawing the black lines after all the gray ones, thanks to this sorting statement:

    # draw 1s lines after 2s lines so 1s lines are never obscured
    edit.linedefs.sort(lambda a, b: cmp(not a.two_sided, not b.two_sided))

The result is a clean and crisp map image.

Image 1 is part of the very first batches of map uploads by Fredrik (author of Omgifol‎) for the UDoom, Doom2, Evilution & Plutonia IWADs in January 2005 (some superseded by Ryan W, see below). Source code of that pre-0.2 version of omgifol is not available, but most likely the sorting statement was not yet present then. It's unknown how many maps have been uploaded using this version, but assuming that v0.2 was the first public version (released in May 2005), any maps uploaded by anyone since then will likely be crisp.

Image 4, however, has the same ragged look as image 1, and therefore SLADE 3 probably does not sort the linedefs before drawing.

IMO the map pages of the official IWADs serve as "reference" for how all map pages could (eventually) look. Therefore they should have crisp map images, with the added benefit of distinguishing Doom Wiki more from its Wikia origin. Caveat is that the E1M*, E2M1-E2M5, E2M9 & E4M1 images use walkthrough spots added by Ryan W, so let's defer those for now. This is related to the marked spots discussion and maptabs RFC; see its demonstration.

TO DO:

  1. Recreate and upload all IWAD maps. I will do this soon unless someone objects.
  2. Contact Simon Judd to request improvement of map image generation. Implemented in v3.1.1.2.
  3. Revive the maptabs RFC and see if progress can be made towards adding spotted images (with walkthrough text to match) to all IWAD map pages.

Bottom line: until SLADE 3's map images are improved, the preferred wiki maps are those by omgifol (v0.2 or later)‎, IMHO. Given that it does not have a GUI, and not all regular map contributors will even read this here discussion, chances are that ragged map images will continue to be uploaded. Such is life in wiki-land. ;)

Edit: As of the v3.1.1.2 release of SLADE 3, its map images look similarly crisp as omgifol's thanks to linedef sorting, and all map contributors using SLADE 3 are advised to upgrade.

Scaling

The second visible difference, between the omgifol versions, is that some lines change very subtly. The scaling computations changed from v0.2 to the improved version, probably resulting in small rounding differences in placing the vertexes. And the original images were likely done on a 32-bit platform while my test images are done on 64-bit, also resulting in rounding differences.

The third difference, between omgifol and slade3 images, is that the former reserves a 4-pixel border while in the latter this is about 25-26 pixels. That's a matter of style. Neither difference is very interesting, so enough about these.

More relevant is the question of what a useful scale for a wiki-suitable map image is, in relation to the map's overall size.

File sizes

First, however, the file size itself depends on the tool: the above omgifol test images (since v0.2) are 17 KB, the slade3 one is 68 KB. Even accounting for omgifol using 24-bit PNG without alpha channel (transparency) and slade3 32-bit with alpha, this factor 4.0 increase seems steep. For bigger maps and images, the difference is likely proportional.

Image file size matters in general, both for websites serving them (traffic costs, server load) and for users downloading them (time), so omgifol images are clearly preferable, IMHO. But to Doom Wiki, it is of no consequence.

Controlling scale

Omgifol drawmaps through v0.2 takes its pixel-size parameter to be the required width, and the height is calculated proportionally. That's why portrait-oriented maps (e.g. MAP32, 1.8M px2) can end up being significantly larger than landscape ones (e.g. MAP03, 0.67M px2) at identical width. The improved omgifol version applies its pixel-size parameter to the largest of either width or height, making for smaller, narrower landscape images (e.g. MM2_MAP20). This is why in the above command-line for image 3, 1079 was used to arrive at the same dimensions as images 1 & 2.

SLADE 3 allows separate definitions of width and height in pixels (positive numbers), shown in step #5 above to match omgifol's test image dimensions, while negative values are taken to be the scale between map units and image dimensions. E.g. setting both to -4 for MAP01 produces a 844x912 px image. That's flexible and useful, although carelessly setting fixed dimensions without regard for the map's orientation can result in excess whitespace (e.g. D2TWID_MAP33), as does setting width and height to different scale values. Also, SLADE 3 does allow changing line thickness, while Omgifol does not.

Factors influencing the appearance of map images are:

  • map dimensions versus image dimensions, i.e. the scale
  • overall image dimensions (which affects file size, preferably kept below 250 KB)
  • line thickness versus map dimensions
  • level of detail in the map (e.g. large numbers of 2-sided linedefs)
  • whether monster caches & control sectors are edited out before generating an image

A large image of a small map like Fava_Beans_E1M1 seems excessive but is otherwise nice and clean. Conversely however, small images of big maps (e.g. 50shades_MAP06 & Breach) are, frankly, useless as many lines simply blur together. It's impossible to find one's way around them in tandem with a textual walkthrough. A large image helps a lot to understand the lay of the land (e.g. E1M8B), or compare Sunlust_MAP10 versus Sunlust_MAP10 (talk).

Line thickness should be more than 1 pixel or some lines will disappear when the map is scaled down to a thumb image next to a walkthrough. Omgifol always uses 3-pixel lines while the SLADE 3 default is 1, hence the adjustment in step #4 above, and while some experimentation with other values can be interesting, 3 is usually fine.

Lastly, editing out parts of the map that cannot be accessed by the player, such as monster caches and control sectors, affects the scale and dimensions with which the image is subsequently generated. For example, the 1000x917 px image of the edited Cchest3_MAP23 becomes a 1258x917 px image (trust me) of the original map when adjusting for the same height. The visual appearance is indeed different, but this isn't problematic unless the trimmed sectors are way outside the regular map area. And map editing is, of course, time consuming if all one wants is a quick map. :)

Useful scale

With all that covered, back to the original question: what is a useful scale, especially for a multi-map series? If all maps in series (e.g. an IWAD) are rendered at the same scale, the viewer immediately gets a good idea of the size differences between those maps. While SLADE 3 allows setting scales, it is not convenient to generate an entire batch of map images via the GUI. So I updated the Omgifol drawmaps script to accept an optional scale parameter as well, and apply that to all generated maps.

After some experimentation the value 4.0 gives acceptable results for the four official IWADs. A factor of 4.5 would also work, but SLADE 3 accepts only integer scale values, so let's stick to that. However, a fixed scale like that can result in impractically large images for really expansive maps, such as the outdoor levels in the IWADs, and modern maps for limit-removing ports (e.g. Plasmaplant).

To get a feel for this problem, I generated the four IWADs' maps with scale 4.0:

Level Ult.Doom Level Doom II Evilution Plutonia
E1M1
1152 x 712
MAP01
852 x 920
440 x 532
1244 x 944
E1M2
1336 x 984
MAP02
480 x 484
869 x 669
1084 x 997
E1M3
1064 x 772
MAP03
754 x 504
943 x 1088
996 x 1008
E1M4
938 x 704
MAP04
522 x 424
1250 x 928
752 x 916
E1M5
1000 x 816
MAP05
792 x 536
900 x 916
1120 x 1112
E1M6
1452 x 1200
MAP06
960 x 648
924 x 768
1128 x 1064
E1M7
1016 x 866
MAP07
600 x 504
1816 x 1096
627 x 1011
E1M8
1662 x 1792
MAP08
984 x 952
1768 x 1306
1064 x 764
E1M9
856 x 808
MAP09
1086 x 1020
1004 x 760
1092 x 1208
E2M1
652 x 504
MAP10
1056 x 1064
486 x 664
744 x 808
E2M2
808 x 1304
MAP11
904 x 724
1048 x 960
784 x 1200
E2M3
896 x 638
MAP12
984 x 1112
1888 x 1720
832 x 848
E2M4
984 x 952
MAP13
800 x 1176
1348 x 1904
970 x 694
E2M5
1080 x 936
MAP14
984 x 888
1224 x 1026
752 x 792
E2M6
832 x 1258
MAP15
1104 x 1838
1204 x 1258
1032 x 1088
E2M7
1000 x 728
MAP16
1208 x 1224
1568 x 1008
888 x 936
E2M8
792 x 1272
MAP17
848 x 842
1040 x 816
848 x 616
E2M9
904 x 488
MAP18
1256 x 1134
1776 x 1784
968 x 944
E3M1
584 x 1096
MAP19
1400 x 1512
1420 x 1680
984 x 640
E3M2
726 x 1096
MAP20
1304 x 1580
3663 x 2469
848 x 832
E3M3
888 x 760
MAP21
880 x 746
3976 x 1960
704 x 768
E3M4
1048 x 958
MAP22
588 x 480
2250 x 1563
1270 x 958
E3M5
1208 x 1164
MAP23
1102 x 1278
868 x 1332
952 x 1256
E3M6
1704 x 1706
MAP24
1512 x 1340
936 x 766
880 x 800
E3M7
936 x 968
MAP25
1038 x 1808
1824 x 1256
1083 x 1084
E3M8
936 x 1006
MAP26
1154 x 800
1448 x 1264
1546 x 884
E3M9
1418 x 1464
MAP27
976 x 1128
3618 x 2604
1024 x 1168
E4M1
552 x 280
MAP28
1122 x 1262
1528 x 1024
1976 x 2000
E4M2
558 x 670
MAP29
1212 x 1160
1800 x 1776
1640 x 2024
E4M3
1208 x 1112
MAP30
682 x 700
2656 x 1064
1240 x 1120
E4M4
716 x 632
MAP31
2194 x 1800
2616 x 2392
812 x 924
E4M5
1008 x 868
MAP32
1000 x 1800
1092 x 2448
1360 x 1048
E4M6
1106 x 730
E4M7
776 x 976
E4M8
928 x 1146
E4M9
582 x 1152
>= 1600
2
4
15
2

In today's era of large monitors, an image with a maximum dimension (height and/or, especially, width) of 1600 pixels seems (IMHO) of acceptable size for displaying in a browser without excessive scrolling around at 100% scaling. As indicated by italics in the table, only a few maps in most IWADs exceed that dimension. TNT: Evilution is notable however for almost half its maps being (very) expansive. And a modern level like the aforementioned Plasmaplant would be 2801 x 3399 pixels at scale 4.0, too. As rendered, its 2060 x 2500 dimensions correspond to scale 5.44 instead, but an even larger scale factor to bring its height (closer) to 1600 would blur together too many of the 2-sided linedefs.

So a mechanism is needed to keep large maps down to acceptable image dimensions. That's actually simple: fall back on the already specified maximum dimension for the largest of width and height. Limiting the above expansive maps to 1600 pixels results in the following new dimensions, with the effective scale added in italics:

Level Ult.Doom Level Doom II Evilution Plutonia
E1M7 MAP07
1600 x 966
4.54
E1M8
1483 x 1600
4.48
MAP08
1600 x 1182
4.42
E2M3 MAP12
1600 x 1457
4.72
E2M4 MAP13
1133 x 1600
4.76
E2M6 MAP15
961 x 1600
4.60
E2M9 MAP18
1593 x 1600
4.46
E3M1 MAP19
1352 x 1600
4.20
E3M2 MAP20
1600 x 1079
9.18
E3M3 MAP21
1600 x 791
9.97
E3M4 MAP22
1600 x 1112
5.63
E3M6
1598 x 1600
4.27
MAP24
E3M7 MAP25
918 x 1600
4.52
1600 x 1102
4.56
E3M9 MAP27
1600 x 1152
9.07
E4M1 MAP28
1580 x 1600
5.01
E4M2 MAP29
1600 x 1578
4.50
1296 x 1600
5.07
E4M3 MAP30
1600 x 642
6.65
E4M4 MAP31
1600 x 1313
5.49
1600 x 1463
6.55
E4M5 MAP32
889 x 1600
4.50
715 x 1600
6.13

Most of the new scale factors are not significantly larger than the default, with the exception of Evilution's MAP20, MAP21 and MAP27.

Conclusions

Scale 4.0 (for Omgifol drawmaps) or -4 (for SLADE 3) is the best scale to render the vast majority of regularly-sized maps, and especially useful when generating a series of maps so the viewer gets a good feel of the size differences between them.

Limiting the largest dimension (width and/or height) to 1600 pixels for larger maps is an acceptable compromise. With Omgifol that's handled automatically, but setting a fixed pixel limit for one dimension in SLADE 3 requires adjusting the other dimension such that little excess whitespace results, which can take some experimentation.

For modern, expansive maps with a great level of architectural detail, a larger dimension limit such as 2000-2500 pixels may need to be chosen to prevent lines blurring together. Line thickness should be 3 (in SLADE 3, already default in Omgifol).

The drawmaps commands to generate the IWADs' maps thus become:

python omg/demo/drawmaps.py DOOM.WAD E?M? 1600 4.0
python omg/demo/drawmaps.py DOOM2.WAD MAP* 1600 4.0
# same for TNT.WAD & PLUTONIA.WAD

The current drawmaps script with scale support can be downloaded from my homepage. This version also offers verbose logging of the actual scale and dimensions used for each map if the -v option is specified. This feature provided the data for the above tables.

Lastly, if no scale is specified and multiple maps are generated, then verbose logging will include the average scale used to draw those maps within the specified (or default) size.

Thumbnailing

A user's perception of map view thumbnails – embedded next to walkthroughs – is influenced by the images' area and ratio of width and height. I think a series of map pages (e.g. of an IWAD or megawad) look best if the thumbnails' perception doesn't differ wildly from page to page. But currently the image(/file) tags used in walkthroughs define only their widths, typically 300px but sometimes varying that for unusual dimension ratios. Image tags also allow define the height, with the Wiki engine scaling the thumbnail within either maximum while preserving aspect ratio, e.g. 300x400px or 330x300px.

What would be suitable "standard" dimensions in the context of walkthrough sections? Let's explore a variety of situations:


Walkthrough

Nearly square @ 300px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Walkthrough

Nearly square @ 300x300px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Walkthrough

Landscape @ 300px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Walkthrough

Landscape @ 330px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Walkthrough

Landscape @ 360px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Walkthrough

Portrait @ 300px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Walkthrough

Portrait @ 300x400px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Walkthrough

Portrait @ 300x360px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Walkthrough

Extreme portrait @ 220px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Walkthrough

Extreme portrait @ 300x360px
Letters in italics refer to marked spots on the map. Sector, thing, and linedef numbers in boldface are secrets which count toward the end-of-level tally.

Essentials

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pretium id diam eget consectetur. Cras viverra pharetra augue vitae pellentesque. Nunc magna nibh, suscipit id velit nec, dapibus facilisis nunc. Integer eget nisi efficitur, vehicula dolor id, fringilla ex. Quisque a fermentum arcu. Aliquam venenatis metus aliquam, auctor lacus vel, sodales risus. Fusce interdum molestie convallis. Vivamus cursus euismod iaculis.

Vivamus sit amet condimentum velit. Vivamus fringilla quis augue a rhoncus. Nunc lacinia commodo massa lacinia semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur eget sapien sit amet libero semper accumsan. Sed nec ultricies turpis. Quisque ut cursus nisl. Nullam tincidunt ex sit amet ligula efficitur vehicula. Suspendisse ornare eu ex ut dapibus. Suspendisse bibendum laoreet hendrerit. Praesent cursus, massa et mattis finibus, velit eros interdum felis, quis venenatis orci ligula sed dolor. Curabitur sit amet luctus turpis, eu varius sem. Nam laoreet est eget dui dictum elementum. Quisque porta quam et nisl consectetur, et vulputate elit aliquet. Etiam maximus ex a libero semper viverra.


Summary of examples

For (extreme) portrait-oriented images, limiting height to 360px gives acceptable results. For (extreme) landscape-oriented images, extending width to 330px or 360px helps their perception too. For the middle ground of square-ish images, 300x300px naturally works well. Determining the (slightly arbitrary) area threshold where to switch from one dimension limit to another will take more work.

Goal for thumbnail area

The maximum possible area at the default width and height is 90000 px2 for a square image. For other aspect ratios, my gut feeling is that two-thirds of that area, or roughly 60000 px2, is a good target to aim for in order to result in reasonably consistent user perception of thumbnails. For images that are more landscape or portrait oriented, either the width or height (respectively) can be increased to keep the area within that ballpark, but only up to a limit of 360px or maybe 390px.

In order to get a better idea of how this approach impacts a wide variety of typical full-size image dimensions, I wrote a script to generate the following table. The original dimensions increment from 400 to 1600 at 150 px steps, and thumbnail dimensions start at 300x300px until the resulting area drops below 60000. Then the limit for the smallest dimension is increased in steps of 10% (30 px) until >=60000 px2 is reached again, or the maximum increase of 30% is reached. The resulting dimensions and area are listed in the '+X0%' columns.

Original Ratio Thumbnail Area +10% Area +20% Area +30% Area
400 x 400 1.00 300 x 300 90000
400 x 550 0.73 218 x 300 65454
400 x 700 0.57 171 x 300 51428 188 x 330 62228
400 x 850 0.47 141 x 300 42352 155 x 330 51247 169 x 360 60988
400 x 1000 0.40 120 x 300 36000 132 x 330 43560 144 x 360 51840 156 x 390 60840
400 x 1150 0.35 104 x 300 31304 114 x 330 37878 125 x 360 45078 135 x 390 52904
400 x 1300 0.31 92 x 300 27692 101 x 330 33507 110 x 360 39876 120 x 390 46800
400 x 1450 0.28 82 x 300 24827 91 x 330 30041 99 x 360 35751 107 x 390 41958
400 x 1600 0.25 75 x 300 22500 82 x 330 27225 90 x 360 32400 97 x 390 38025
550 x 400 1.38 300 x 218 65454
550 x 550 1.00 300 x 300 90000
550 x 700 0.79 235 x 300 70714
550 x 850 0.65 194 x 300 58235 213 x 330 70464
550 x 1000 0.55 165 x 300 49500 181 x 330 59895 198 x 360 71280
550 x 1150 0.48 143 x 300 43043 157 x 330 52082 172 x 360 61982
550 x 1300 0.42 126 x 300 38076 139 x 330 46073 152 x 360 54830 165 x 390 64350
550 x 1450 0.38 113 x 300 34137 125 x 330 41306 136 x 360 49158 147 x 390 57693
550 x 1600 0.34 103 x 300 30937 113 x 330 37434 123 x 360 44550 134 x 390 52284
700 x 400 1.75 300 x 171 51428 330 x 188 62228
700 x 550 1.27 300 x 235 70714
700 x 700 1.00 300 x 300 90000
700 x 850 0.82 247 x 300 74117
700 x 1000 0.70 210 x 300 63000
700 x 1150 0.61 182 x 300 54782 200 x 330 66286
700 x 1300 0.54 161 x 300 48461 177 x 330 58638 193 x 360 69784
700 x 1450 0.48 144 x 300 43448 159 x 330 52572 173 x 360 62565
700 x 1600 0.44 131 x 300 39375 144 x 330 47643 157 x 360 56700 170 x 390 66543
850 x 400 2.13 300 x 141 42352 330 x 155 51247 360 x 169 60988
850 x 550 1.55 300 x 194 58235 330 x 213 70464
850 x 700 1.21 300 x 247 74117
850 x 850 1.00 300 x 300 90000
850 x 1000 0.85 255 x 300 76500
850 x 1150 0.74 221 x 300 66521
850 x 1300 0.65 196 x 300 58846 215 x 330 71203
850 x 1450 0.59 175 x 300 52758 193 x 330 63837
850 x 1600 0.53 159 x 300 47812 175 x 330 57853 191 x 360 68850
1000 x 400 2.50 300 x 120 36000 330 x 132 43560 360 x 144 51840 390 x 156 60840
1000 x 550 1.82 300 x 165 49500 330 x 181 59895 360 x 198 71280
1000 x 700 1.43 300 x 210 63000
1000 x 850 1.18 300 x 255 76500
1000 x 1000 1.00 300 x 300 90000
1000 x 1150 0.87 260 x 300 78260
1000 x 1300 0.77 230 x 300 69230
1000 x 1450 0.69 206 x 300 62068
1000 x 1600 0.63 187 x 300 56250 206 x 330 68062
1150 x 400 2.88 300 x 104 31304 330 x 114 37878 360 x 125 45078 390 x 135 52904
1150 x 550 2.09 300 x 143 43043 330 x 157 52082 360 x 172 61982
1150 x 700 1.64 300 x 182 54782 330 x 200 66286
1150 x 850 1.35 300 x 221 66521
1150 x 1000 1.15 300 x 260 78260
1150 x 1150 1.00 300 x 300 90000
1150 x 1300 0.88 265 x 300 79615
1150 x 1450 0.79 237 x 300 71379
1150 x 1600 0.72 215 x 300 64687
1300 x 400 3.25 300 x 92 27692 330 x 101 33507 360 x 110 39876 390 x 120 46800
1300 x 550 2.36 300 x 126 38076 330 x 139 46073 360 x 152 54830 390 x 165 64350
1300 x 700 1.86 300 x 161 48461 330 x 177 58638 360 x 193 69784
1300 x 850 1.53 300 x 196 58846 330 x 215 71203
1300 x 1000 1.30 300 x 230 69230
1300 x 1150 1.13 300 x 265 79615
1300 x 1300 1.00 300 x 300 90000
1300 x 1450 0.90 268 x 300 80689
1300 x 1600 0.81 243 x 300 73125
1450 x 400 3.63 300 x 82 24827 330 x 91 30041 360 x 99 35751 390 x 107 41958
1450 x 550 2.64 300 x 113 34137 330 x 125 41306 360 x 136 49158 390 x 147 57693
1450 x 700 2.07 300 x 144 43448 330 x 159 52572 360 x 173 62565
1450 x 850 1.71 300 x 175 52758 330 x 193 63837
1450 x 1000 1.45 300 x 206 62068
1450 x 1150 1.26 300 x 237 71379
1450 x 1300 1.12 300 x 268 80689
1450 x 1450 1.00 300 x 300 90000
1450 x 1600 0.91 271 x 300 81562
1600 x 400 4.00 300 x 75 22500 330 x 82 27225 360 x 90 32400 390 x 97 38025
1600 x 550 2.91 300 x 103 30937 330 x 113 37434 360 x 123 44550 390 x 134 52284
1600 x 700 2.29 300 x 131 39375 330 x 144 47643 360 x 157 56700 390 x 170 66543
1600 x 850 1.88 300 x 159 47812 330 x 175 57853 360 x 191 68850
1600 x 1000 1.60 300 x 187 56250 330 x 206 68062
1600 x 1150 1.39 300 x 215 64687
1600 x 1300 1.23 300 x 243 73125
1600 x 1450 1.10 300 x 271 81562
1600 x 1600 1.00 300 x 300 90000

Conclusions

It seems to me that this approach works well for dimension increments up to at least (360px) 20%, and the only question remaining is whether 390px (30%) is acceptable for either width or height, or both, within the overall map page layout. The tricky part about that choice is that it's also influenced by the amount of walkthrough text next to the thumbnail, the browser window width, and perhaps other factors.

Dealing with the thresholds and increments is of course less easy to do when manually building out a map skeleton into a (more) complete page, so then the above can be used as merely a guideline. But I've already written a bot script to address the issue of replacing map caption strings, and this script will (soon) include the computations to modify the thumbnail dimensions as well. Then, at least for stock levels and megawads, and any other levels for which a .ini file is compiled, this approach can be rolled out consistently.