# HG changeset patch # User kyberneticist@gmail.com # Date 1383760056 0 # Node ID 1664d3e63c0555a6a6d057d175b092037ae2ad08 # Parent 6153b382a125132ce2beb91a9201c1eea03922a0 Geek out a bit on map dimension constraints. diff -r 6153b382a125 -r 1664d3e63c05 PresetMaps.wiki --- a/PresetMaps.wiki Wed Nov 06 16:34:21 2013 +0000 +++ b/PresetMaps.wiki Wed Nov 06 17:47:36 2013 +0000 @@ -59,7 +59,12 @@ Image of visible land area. * Usually _width/length ratio_ of 2:1 * Typical size: 2048 x 1024 - * Max size: no limit, 0.9.18+. 4096 x 2048 or less in 0.9.17 and earlier. (note: while there is no in-game limit apart from a mild sanity check restricting width or height to < 1073741824 and total size to < 24GiB of RAM, there is a limit if hedgewars is built w/ SDL 1.2 that restricts the maximum width to 16,384 and maximum height to 65,536) + * Max size: no limit, 0.9.18+. 4096 x 2048 or less in 0.9.17 and earlier. There are a few practical limits to map size that should be examined for people trying to make very large maps. + ** SDL 1.2 - SDL 1.2 can only load maps that are 16,384px wide or less, and 65,536px high or less. + ** GIMP. GIMP 2.8 can only create PNGs that are 262,144px wide or high - is an arbitrary hardcoded sanity check. GIMP 2.10 allows 524,288 wide or high. + ** libpng - libpng can only load maps that are < 1 million px high. + ** Graphics card. This is the big one. Your graphics card probably has anywhere from 256MiB to 2GiB of vRAM. If blurry land is enabled and the map has a typical amount of empty space, you can make a map w/ ~2x the pixels as a card has vRAM. But. Most people don't like using Blurry Land, so best to limit to ~½ the pixels as a card has vRAM. Targetting support for people on 256MiB of vRAM, that means a 2:1 rectangular map should not be larger than 16,384x8192 which coincidentally fits in the SDL 1.2 width limit. + ** There is also a completely arbitrary check in game for widths/height < ~billion pixels which avoids possible integer issues, and a limit on size in pixels of 6 billion or so, which was just a basic sanity limit. However given the limitations above, these are not likely to be reached. * If there is no _mask.png_, this image will also be used for deciding what pixels are subject to collision: _alpha value_ not equal to 0 (so below max transparency) will be considered land * As of 0.9.19+, map.png is optional if a mask.png is provided. If there is no map.png, the theme will be used to decorate the map.