Difference between revisions of "Talk:Map size limit (blocks)"

From DoomWiki.org

m (Talk:Map size limit moved to Talk:Map size limit (blocks): disambiguation (see User talk:Quasar#Map size limit))
Line 1: Line 1:
 
This should probably be tested in -nomonsters mode.  If you still hear monster sounds after running into the void for a while, then this limit isn't the only phenomenon at work.    [[User:Ryan W|Ryan W]] 03:54, 16 September 2006 (UTC)
 
This should probably be tested in -nomonsters mode.  If you still hear monster sounds after running into the void for a while, then this limit isn't the only phenomenon at work.    [[User:Ryan W|Ryan W]] 03:54, 16 September 2006 (UTC)
 +
 +
A recent look at BSP's source code reminded me of something.  I don't believe this page is correct if blockmap compression is allowed for.  The basic idea is that multiple blocks can have the same offset, and so point to the same line list.  As long as the exact same lines are present in each block, this will work and provide a fully functional blockmap even in vanilla.  In the four linedef case shown here, only 9 blocklists are needed at most: (empty), (L1), (L1, L2), (L2), (L2, L3), (L3), (L3, L4), (L4), (L4, L1).  These would take up 48 bytes, and plus an additional 8 bytes for the file header, would leave room for up to 65507 block offsets.  This gives a potential level size of over 32000 x 32000 (by which point you've probably smashed a few other limits multiple times already).
 +
 +
Of course this is all rather silly as no actual level will have 4 linedefs, and the practical size limit is dependent more on the number of linedefs and the complexity of their arrangement than the physical bounds of the level (as empty blocks are cheap, especially with blockmap compression, and blocks loaded with linedefs are expensive).
 +
 +
If I figure out an elegant way to word this all I'll slap it in the article. [[User:Goyuken|Goyuken]] 04:08, 16 October 2007 (UTC)

Revision as of 23:08, 15 October 2007

This should probably be tested in -nomonsters mode.  If you still hear monster sounds after running into the void for a while, then this limit isn't the only phenomenon at work.    Ryan W 03:54, 16 September 2006 (UTC)

A recent look at BSP's source code reminded me of something. I don't believe this page is correct if blockmap compression is allowed for. The basic idea is that multiple blocks can have the same offset, and so point to the same line list. As long as the exact same lines are present in each block, this will work and provide a fully functional blockmap even in vanilla. In the four linedef case shown here, only 9 blocklists are needed at most: (empty), (L1), (L1, L2), (L2), (L2, L3), (L3), (L3, L4), (L4), (L4, L1). These would take up 48 bytes, and plus an additional 8 bytes for the file header, would leave room for up to 65507 block offsets. This gives a potential level size of over 32000 x 32000 (by which point you've probably smashed a few other limits multiple times already).

Of course this is all rather silly as no actual level will have 4 linedefs, and the practical size limit is dependent more on the number of linedefs and the complexity of their arrangement than the physical bounds of the level (as empty blocks are cheap, especially with blockmap compression, and blocks loaded with linedefs are expensive).

If I figure out an elegant way to word this all I'll slap it in the article. Goyuken 04:08, 16 October 2007 (UTC)