Weird impy thing
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Doom Builder > Node builder does not want to work from DoomBuilder
 
Author
All times are GMT. The time now is 22:08. Post New Thread    Post A Reply
entryway
Forum Staple


Posts: 2733
Registered: 01-04


This bug happens on some big levels. After attempt to build nodes with ZenNode or zdbsp I got the error:

---------------------------
Doom Builder
---------------------------
The nodebuilder did not build the required structures.
Please check your map for errors or select a different nodebuilder.

Your map will be saved without the nodes.
---------------------------
ОК
---------------------------


But! Through command line both nodebuilders work perfectly! Practically I can build nodes for my level directly from DoomBuilder only with bsp-w32.exe, but its nodes are buggy in some cases. I can send the level to CodeImp directly for reproducing the bug.

DoomBuilder Version 1.68.0385
ZenNode Version 1.2.1
ZDBSP Version 1.8
Doom BSP node builder ver 5.1


Quick Nodebuilder params:
Executable: D:\games\Doom2\Doom Builder\ZenNode.exe
Params: -b- %F -o %F
When to rebuild: Alway rebuild nodes

Output of ZenNode after building through command-line:
code:
D:\games\Doom2\Doom Builder\ZenNode.exe -b- HSPIRIT-Ligth.WAD ZenNode Version 1.2.1 (c) 1994-2004 Marc Rousseau Working on: HSPIRIT-Ligth.WAD *MAP01 : NODES - 6911/7189 ( 96%) SEGS - 17162/17497 ( 98%) 4.555 secs REJECT - Efficiency: 38.3%/ 0.0% Sectors: 795 18.088 secs Saving to HSPIRIT-Ligth.WAD... 1 Level processed in 22.643 seconds - 1 Level needed updating. D:\games\Doom2\Doom Builder\

Old Post 07-11-07 10:15 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04


I have added following record into nodebuilders section in DoomBuilder\Parameters.cfg
code:
deepbsp1 { title = "DeePsea Normal build"; executable = "deepbsp.exe"; parameters = "\"%F\" \"%T\""; }

It works without errors and fast as zdbsp

Old Post 07-11-07 10:45 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
hawkwind
Senior Member


Posts: 1014
Registered: 04-04


I'm surprised no one thought of this before, including myself.

Good one entryway .... :)

Old Post 07-12-07 03:19 #
hawkwind is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
doom2day
Forum Regular


Posts: 685
Registered: 08-04


ZDBSP tends to be buggy. It probably doesn't like what you are doing. It has happened to me before.

Old Post 07-12-07 04:33 #
doom2day is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04



doom2day said:
ZDBSP tends to be buggy. It probably doesn't like what you are doing. It has happened to me before.
But it works perfectly from command-line for my wad.

Old Post 07-12-07 08:37 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Doom Marine
took his ball and went home


Posts: 1677
Registered: 09-03


I'm encountering the same problem with my hell map too; the node builders that came with DB (Zennode, ZDBSP, & BSP-W32) doesn't like it.

My stargate map with 35k sidedefs got its node rebuilt just fine, but when I up the ante and tried to rebuild nodes for my 53k sidedef hell map:

---------------------------
Doom Builder
---------------------------
The nodebuilder did not build the required structures.
Please check your map for errors or select a different nodebuilder.

Your map will be saved without the nodes.
---------------------------
ОК
---------------------------


This error was encountered occasionally at a high enough sidedef count, and occurred more and more frequently as the map became more complex... until one day it consistently gave me this error.

This is really slowing down my mapping effort. 3D mode is rendered a mess without the level nodes, which makes it unusable.

The only way I could see my hell map now is to run it through ZDoom, which automatically rebuit my level's nodes.

Entryway: What commands did you use to operate the nodebuilders? I have basic knowledge of CMD, but not sure how to run a WAD through the nodebuilders with it.

Old Post 07-19-07 05:24 #
Doom Marine is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Dr. Zin
Senior Member


Posts: 1072
Registered: 01-04


I have run into this problem too (as a matter of fact I made a post about it here: http://www.doomworld.com/vb/showthr...0&highlight=map). The only real solution I have found is to use seed sectors to build the map in parts, then attach them to the main file. I think running a nodesbuilder externally could work if you reachthe point that DB stops letting the nodes build.

Old Post 07-19-07 05:44 #
Dr. Zin is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Doom Marine
took his ball and went home


Posts: 1677
Registered: 09-03


I'm not sure how to run the nodebuilders externally, instructions would be nice.

I hope Codeimp release a future DB that address this rare problem (nodebuilding and huge levels).

Old Post 07-19-07 06:07 #
Doom Marine is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04


Doom Marine
Firstly, try to extract files from this archive:
http://prboom-plus.sourceforge.net/doombuilder.zip
into your DoomBuilder folder, start DoomBuilder, press F5 (Configuration), go to the Nodebuilder page, select DeePsea in the profiles list, open your map and try to rebuild the nodes. If it will not work, then put your map in the DoomBuilder folder (with nodebuilders) and try:

zdbsp.exe DV.WAD -o TEST.WAD
or
zdbsp.exe DV.WAD -o TEST.WAD --map=MAP05

TEST.WAD will be WAD with nodes rebuilt by zdbsp.exe

Old Post 07-19-07 08:24 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Doom Marine
took his ball and went home


Posts: 1677
Registered: 09-03


Fantastic! Your plan A worked without a hitch... Thanks for your help Entryway... I think my map is calling me now...

Old Post 07-19-07 08:52 #
Doom Marine is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04


CodeImp still keep silence...

Old Post 07-19-07 09:22 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
CodeImp
Moderator


Posts: 1501
Registered: 12-03


Yes I keep silent because I don't feel like playing for helpdesk and there is no logical explanation in this topic that explains the problem. Hence, I cannot fix it either. When I know the cause of this problem, then I may be able to fix it.

Ask youself questions like these:
Have you tried other parameters in DB? The correct parameters for a normal ZenNode build are: %F -o %F
What is this -b- you added? Might be the cause? Did you change anything in any of the configurations?

Old Post 07-19-07 11:09 #
CodeImp is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04



CodeImp said:
Yes I keep silent because I don't feel like playing for helpdesk and there is no logical explanation in this topic that explains the problem. Hence, I cannot fix it either. When I know the cause of this problem, then I may be able to fix it.
I can send you test map which can't be compiled from DB directly, but can from command-line. In the evening.

Have you tried other parameters in DB?
Yes. In all cases it does not work. Neither with my parameters, nor with parameters by default.

The correct parameters for a normal ZenNode build are: %F -o %F
Does not work too.

What is this -b- you added? Might be the cause?
code:
D:\games\Doom2\Doom Builder\ZenNode.exe ZenNode Version 1.2.1 (c) 1994-2004 Marc Rousseau Usage: ZenNode {-options} filename[.wad] [level{+level}] {-o|x output[.wad]} -x+ turn on option -x- turn off option √ = default -b[c] √ - Rebuild BLOCKMAP c √ - Compress BLOCKMAP


Did you change anything in any of the configurations?
Only Invert mouse and Filtering.

Old Post 07-19-07 11:41 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
CodeImp
Moderator


Posts: 1501
Registered: 12-03


Doom Builder does not like an empty or missing BLOCKMAP lump as result from the nodebuilder. But if the same problem occurs with "normal" settings, then there may be something else going on.

Old Post 07-19-07 11:58 #
CodeImp is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04



CodeImp said:
Doom Builder does not like an empty or missing BLOCKMAP lump as result from the nodebuilder. But if the same problem occurs with "normal" settings, then there may be something else going on.
Check your PM. Only deepbsp.exe and bsp-w32.exe can build nodes directly from doombuilder for that level

Last edited by entryway on 07-19-07 at 12:16

Old Post 07-19-07 12:09 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04


Try this test map
http://prboom-plus.sourceforge.net/testmap.zip

ZDBSP 1.9 does not want to build nodes for this map even from command line
code:
zdbsp.exe testmap.wad -o tmp.wad ----MAP01---- Unhandled exception. ZDBSP cannot continue.


ZenNode works correctly from the command line
code:
ZenNode.exe testmap.wad -o testmap.wad ZenNode Version 1.2.1 (c) 1994-2004 Marc Rousseau Working on: testmap.wad MAP01 : BLOCKMAP - * Level too big to create valid BLOCKMAP * 0.012 secs NODES - 8/8 (100%) SEGS - 28/28 (100%) 0.002 secs REJECT - Efficiency: 0.0%/ 0.0% Sectors: 3 0.009 secs 1 Level processed in 0.023 seconds - No Levels needed updating. 43.478261 levels/sec

but does not work directly from DoomBuilder.

deepbsp works without errors from DoomBuilder.

Last edited by entryway on 07-19-07 at 13:56

Old Post 07-19-07 13:43 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
CodeImp
Moderator


Posts: 1501
Registered: 12-03


Yes, I just ran it through Doom Builder in debug mode and built it with ZenNode and normal parameters. The problem is the BLOCKMAP: the nodebuilder can't make a BLOCKMAP because the map is too big (not in number of elements, but the aera used). Doom Builder notices the missing BLOCKMAP lump and will tell you the nodebuilder failed (which is very true and understandable now that we know what causes it). If you really want a map this big, just let the engine or another nodebuilder take care of it, they have tricks that allow for ridiculous large blockmaps.

Old Post 07-19-07 13:58 #
CodeImp is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04


But I can't use 3d mode without building the nodes!!!

Why you don't want to build blockmap in doombuilder like other ports do?
It's only one simple function in prboom-plus for example.
See P_CreateBlockMap in
https://www.crowproductions.de/repo...2/src/p_setup.c

And why this large map works correctly if I use deepbsp or bsp32 in DB?

Old Post 07-19-07 14:06 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
CodeImp
Moderator


Posts: 1501
Registered: 12-03


Other nodebuilders (such as deepbsp and bsp32) may have techniques that allow for this huge blockamp. If you use deepbsp or bsp32 in DB, then you can use 3D mode, not?

If for some reason you don't want to use those nodebuilders in DB to use 3D mode, then you could try to disable DB checking the blockmap lump by going into the game configuration and changing the "BLOCKMAP" setting in the "maplumpnames" structure. Usually it is set to 4 which means BLOCKMAP is supposed to be generated by the nodebuilder. Set it to 0 and DB will completely ignore this lump (means it will also not be in your WAD file!)

Old Post 07-19-07 14:14 #
CodeImp is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04



CodeImp said:
Other nodebuilders (such as deepbsp and bsp32) may have techniques that allow for this huge blockamp. If you use deepbsp or bsp32 in DB, then you can use 3D mode, not?
Yes, it works.


If for some reason you don't want to use those nodebuilders in DB to use 3D mode, then you could try to disable DB checking the blockmap lump by going into the game configuration and changing the "BLOCKMAP" setting in the "maplumpnames" structure. Usually it is set to 4 which means BLOCKMAP is supposed to be generated by the nodebuilder. Set it to 0 and DB will completely ignore this lump (means it will also not be in your WAD file!)
It works too, but I think you should make that behaviour more user friendly.

Old Post 07-19-07 14:27 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
CodeImp
Moderator


Posts: 1501
Registered: 12-03


I think you should bitch at the authors of the nodebuilders to make them work with huge blockmaps or just choose a different nodebuilder... thats my think.

Old Post 07-19-07 14:33 #
CodeImp is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04


IIRC, it is impossible to build correct blockmap for big levels in original doom format. It is impossible because it uses 2-byte offsets. If it is impossible, it should not be built. Most of ports rebuild blockmap if size of lump is greater than 0x10000/2. So I think you can change BLOCKMAP value in maplumpnames to zero for following configs (at least): Boom.cfg, ZDoom*.cfg

Last edited by entryway on 07-19-07 at 16:34

Old Post 07-19-07 14:49 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1638
Registered: 04-02


Yes the BLOCKMAP size is limited by the format. There is no such thing as "huge blockmaps".

glBSP always writes a BLOCKMAP lump, even if it overflows (with the assumption that ports will detect the overflowed size and generate their own).

Note prBoom 2.4.5 code does not check for zero size lumps:
code:
if (M_CheckParm("-blockmap") || (count = W_LumpLength(lump)/2) >= 0x10000) P_CreateBlockMap();

BTW entryway, the maximum size is 0x10000*2 bytes not 0x10000/2, right?

Old Post 07-20-07 03:13 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
myk
volveré y seré millones


Posts: 15226
Registered: 04-02



Ajapted said:
the maximum size is 0x10000*2 bytes not 0x10000/2, right?
That's what the ZenNode author seems to say, in regard to the Doom map format. The standard engine, though, can only handle up to 64 KB (Venetian blinds crashes will occur at certain locations of the level if it's bigger).

Old Post 07-20-07 05:34 #
myk is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1638
Registered: 04-02


To make a correction: the latest glBSP, version 2.20, will write an empty lump if the BLOCKMAP overflows. I had forgotten about that.

Looking at my code now, it doesn't seem right. It will flag an overflow for 0x10000 bytes or more (and output an empty lump), even though PrBoom and other ports support upto 0x20000 in size. Hmmmm...

Old Post 07-20-07 07:27 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04



Note prBoom 2.4.5 code does not check for zero size lumps:
The latest two versions of PrBoom (2.4.6+) and PrBoom-Plus (2.4.6.1+) do it:
code:
if (M_CheckParm("-blockmap") || W_LumpLength(lump)<8 || (count = W_LumpLength(lump)/2) >= 0x10000) P_CreateBlockMap();



BTW entryway, the maximum size is 0x10000*2 bytes not 0x10000/2, right?
oh, sorry :)

Last edited by entryway on 07-20-07 at 07:55

Old Post 07-20-07 07:34 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
entryway
Forum Staple


Posts: 2733
Registered: 01-04


So, DoomBuilder behavior is at least not friendly to users in this point IMO. Many of maps are too large for BLOCKMAP, but DB likes only deepbsp and its false BLOCKMAP which is not used in ports. Also deepbsp is not included in DoomBuilder, hence users cannot work with huge levels at all (in a configuration by default)

Old Post 07-20-07 07:56 #
entryway is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
All times are GMT. The time now is 22:08. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Doom Builder > Node builder does not want to work from DoomBuilder

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.