Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
baja blast rd.

*** The "ask a miscellaneous editing question" thread ***

Recommended Posts

I noticed today that the map I've been working on kicks out a "This map has an incomplete BSP tree" error in the Zandronum console when launched.

It seems to depend on the node builder: ZenNode and ZDBSP both cause it, but DeepBSP doesn't.

Weirdly though, I can find no actual negative effect in game. It doesn't seem to cause anything.

So: should I worry about it?

And if I should worry about it, is there an issue with using DeepBSP? I heard it lacks the compatibility of other node builders (I'm making a limit-removing but otherwise vanilla Doom 2 map) but in this day and age is it really still that niche?

Share this post


Link to post

You should worry about it, because it's clearly something wrong and different ports may react differently to it, some may even crash.

Check out your map in (GZ)Doom Builder's "Map Analysis" mode, and if it finds any unclosed sectors or similar problems, fix them.

Doomwiki lists ports that support nodes generated by DeepBSP, so use it only if you're comfortable with your map being unplayable in other ports.

And if you really aim for limit-removing compatibility, your primary playtesting port should be at least PrBoom-plus with -complevel 2, not Zandronum.

Share this post


Link to post
scifista42 said:

You should worry about it, because it's clearly something wrong and different ports may react differently to it, some may even crash.

Check out your map in (GZ)Doom Builder's "Map Analysis" mode, and if it finds any unclosed sectors or similar problems, fix them.

Doomwiki lists ports that support nodes generated by DeepBSP, so use it only if you're comfortable with your map being unplayable in other ports.

And if you really aim for limit-removing compatibility, your primary playtesting port should be at least PrBoom-plus with -complevel 2, not Zandronum.


Well then... bugger. :(

So I ran the Map Analysis mode in GZDB - there were a couple of small things (linedefs meeting other linedefs but missing a connecting vertex) which I fixed, but re-compiling in ZDBSP and re-testing still results in the error.

I play tested using PRBoom (2.5.1.4) complevel 2 as you suggested, and complevel 0 too for shits and giggles, and from a brief playthrough everything seems to work fine. (incidentally, I only mentioned Zandronum above as it has a console to tell me things like incomplete BSP trees, whereas the likes of PRBoom and Crispy don't).

Any idea what my next steps should be? I'm relatively new to mapping, and I'm not sure where to start diagnosing this when there aren't any obvious symptoms.

Edit:
Ah, it seems fixing those intersecting linedef errors has stopped the error message appearing when using ZenNode (which does have better comptability than DeepBSP, right?). It's introduced a couple of HOM effects with some self-referencing sector bridges, but I know how to fix those.

Looks like it's just an issue with ZDBSP.

Share this post


Link to post

If Map Analysis mode shows no errors, but the error in the game persists, the next step would be to try rebuilding the map's nodes in all available node builders and see if one works any better (sometimes one nodebuilder fails on a map while another nodebuilder doesn't). Note that after you change a node builder configuration in the editor's options, you need to move at least one vertice in the map and only then save it, otherwise the nodes won't be rebuilt.

Share this post


Link to post
scifista42 said:

If Map Analysis mode shows no errors, but the error in the game persists, the next step would be to try rebuilding the map's nodes in all available node builders and see if one works any better (sometimes one nodebuilder fails on a map while another nodebuilder doesn't). Note that after you change a node builder configuration in the editor's options, you need to move at least one vertice in the map and only then save it, otherwise the nodes won't be rebuilt.


Thanks! Yes ZenNode seems to do the trick. I also tried BSP-W32 and that just instantly crashed, so I'm glad at least one worked!

Incidentally do you have to move a vertice to trigger a re-build of the nodes? I've been typically moving a Thing about instead, would that work too? (It does say "building nodes" during the save process).

Share this post


Link to post

The editor technically wouldn't have to rebuild the map's nodes if there wasn't a structural change to map geometry, but GZDoom Builder seems to be doing it anyway, at least sometimes. Making a structural change is just a way to be sure it will happen. EDIT: Or maybe what I said is outdated info, and GZDoom Builder is already smart enough to know to rebuild nodes after a nodebuilder configuration has been changed.

Share this post


Link to post

That makes sense - as Things don't affect nodes, right?

Thanks for the advice! Really appreciated.

Share this post


Link to post

I'm trying to make a normal animated texture with 6 frames but I can't seem to get it to work. Could someone tell me how to do it? I've tried multiple ways.

Share this post


Link to post
scifista42 said:

Right. See the last couple paragraphs of the "Node Building" section on this doomwiki page for more info.


Oh balls. Despite Zandronum merrily telling me the ZenNode build was fine, turns out a quarter the map is completely broken.

So now I have ZDBSP where I'm told it's broken, but works fine. ZenNode where I'm told it's fine, but it's broken. And DeepBSP that I'm told is fine and works fine, but isn't compatible with everything. :'(

Interestingly, it is literally only Zandronum that is complaining about an incomplete BSP tree. I get nothing like that in any other source port, including GZDoom.

I'm starting to wonder if actually the BSP in ZDBSP is fine, and Zandronum is being weird. Are there any other ways of automatically checking the integrity of a BSP?

Edit: Zandronum 3.0 isn't giving me the error either. I really am starting to think it's just a bug with the particular build of Zandronum 2 I've got.

Share this post


Link to post
Bauul said:

So now I have ZDBSP where I'm told it's broken, but works fine.

Nobody has ever said this (I hope). ZDBSP is about the most stable node builder available, with full support for precision verts in ports that support it, and plenty of compatibility for ones that don't. The only thing it lacks is a proper reject builder (which typically isn't needed anyway).

Bauul said:

And DeepBSP that I'm told is fine and works fine, but isn't compatible with everything.

I'm concerned about who you have been asking these questions. DeepBSP is largely sane, but has been out of date for years and tends to be somewhat unpredictable as a result. Zennode is also old but we've had it for so long we tend to know its limits, and for a while was pretty much the standard node builder anyway. It still is for vanilla projects most of the time, as it still has a working reject builder.

Share this post


Link to post

It is strange how rumors can persist.

Yes, the older versions of ZDBSP were quite broken - to the point where I had to add some really bad fudging code in GZDoom to account for that - but these issues have been fixed almost 10 years ago. Yet, some people read these old posts and spread the misinformation, never noticing how out of date it is.

Share this post


Link to post
Edward850 said:

Nobody has ever said this (I hope). ZDBSP is about the most stable node builder available, with full support for precision verts in ports that support it, and plenty of compatibility for ones that don't. The only thing it lacks is a proper reject builder (which typically isn't needed anyway).

I'm concerned about who you have been asking these questions. DeepBSP is largely sane, but has been out of date for years and tends to be somewhat unpredictable as a result. Zennode is also old but we've had it for so long we tend to know its limits, and for a while was pretty much the standard node builder anyway. It still is for vanilla projects most of the time, as it still has a working reject builder.


No no, you misunderstand. I wasn't saying ZDBSP was broken, I was talking about the error messages each of the Node Builders were giving me when building my particular map. When I said "I'm told it's broken, but works fine" I meant I'm told (by Zandronum) my map is broken, but then it actually plays fine.

My post was simply saying that I have a dilemma, because:

If I build my map using ZDBSP, I get an error message in the Zandronum console that my map has an incomplete BSP tree, but in practice works perfectly.

If I build my map using ZenNode, I don't get any error messages, but in practice half the map is completely broken.

If I build my map using DeepBSP, I don't get any error messages and in practice my map works perfectly, but I lack compatibility with some source ports.

I wasn't making any statements about the Node Builders themselves. I have literally no perception of them outside whether they can successfully build my map or not. :)

Share this post


Link to post
Bauul said:

No no, you misunderstand. I wasn't saying ZDBSP was broken, I was talking about the error messages each of the Node Builders were giving me when building my particular map. When I said "I'm told it's broken, but works fine" I meant I'm told (by Zandronum) my map is broken, but then it actually plays fine.

My post was simply saying that I have a dilemma, because:

If I build my map using ZDBSP, I get an error message in the Zandronum console that my map has an incomplete BSP tree, but in practice works perfectly.



That essentially means that the engine does not use the BSP tree you built, it rebuilds it with its internal node builder (which is identical to ZDBSP.)

So:

1. Which version of ZDBSP are you using?
2. How large is your map? (Number of sidedefs is the most important number here.)
3. What node building options are you using?

Share this post


Link to post
RetroNova10 said:

I'm trying to make a normal animated texture with 6 frames but I can't seem to get it to work. Could someone tell me how to do it? I've tried multiple ways.


I'm assuming that you're using Vanilla, as that's what Real Men (tm) use. So, in the TEXTUREx lump, name the first frame, for example, WFALL1 (or whatever you want, the animated texture names are inside the EXE, AFAIK), name the last frame WFALL4, and put the remaining 4 frames between those. You can name those as you wish. Now, give a wall the WFALL1 texture and things should work!

If I'm wrong, please correct me.

If you're working with Boom (ugh), read up on the ANIMATED lump. I don't use it, so can't help you on that one.

(links inside, if you're lazy)

Share this post


Link to post

Is there a way to increase size of textures displayed in "Browse textures" window in GZDoomBuilder?

They're so tiny on the big screen that it's hard to pick one, especially when using resource wad that I am not acquainted with.

_______

EDIT: OK, just found it in the preferences/interface :)

Share this post


Link to post
Graf Zahl said:

That essentially means that the engine does not use the BSP tree you built, it rebuilds it with its internal node builder (which is identical to ZDBSP.)

So:

1. Which version of ZDBSP are you using?
2. How large is your map? (Number of sidedefs is the most important number here.)
3. What node building options are you using?


Zandronum rebuilds BSP trees when you launch a map? I didn't know that. I thought only Risen3D did that.

1. I'm using whatever version of ZDBSP comes with the latest build of GZDoom Builder 2.3. Not sure exactly the version number I'm afraid.

2. The map currently has 62,667 sidedefs (28,607 vertices, 34,554 Linedefs and 7,862 sectors). Also, the maps formatted to Doom: Doom 2 (Doom format).

3. None outside of the prebuilt GZDB ones. I was using 'ZDBSP - Normal (zero reject)' as I understand it's the most vanilla compatible version (which is what I'm aiming for, with the exception of utilizing limit-removal).

The ironic thing is if I was testing this in any other source port, I wouldn't have ever seen that "incomplete BSP tree" message and wouldn't be doubting my use of ZDBSP at this point.

Share this post


Link to post
Bauul said:

2. The map currently has 62,667 sidedefs

Which makes it too large for regular vanilla-format nodes to handle. You'll need to build either ZDoom extended nodes or deep nodes.

Bauul said:

Zandronum rebuilds BSP trees when you launch a map?

Not always, but only if it detects something wrong with the map's own nodes, or if you set a console variable gennodes to true.

Share this post


Link to post

And just when I thought I was getting my head around it!

Ok, so I created a new profile in GZDB for ZDBSP with extended nodes (zero reject), using the parameters: "-R -X -o%FO %FI" (I hope that's right! I can only presume the "%FO %FI" bit is where GZDB slots in the WAD path).

I re-compiled it (moved a vertex and re-saved), and re-tested using Crispy, PRBoom+, ZDoom, GZDoom, Zandronum 2.1.2 and Zandonrum 3.0. Nothing seems to be any different to running it without extended nodes: every source port plays it fine (from what I can tell), but Zandronum 2.1.2 tells me there's an incomplete BSP tree. None of the other source ports give any kind of warning.

I'm therefore guessing I've done something wrong with the command line parameters if there's no difference?

Share this post


Link to post

The parameters seem OK. Actually, the latest version of GZDB has this exact combination of parameters under the "ZDBSP - UDMF Normal (zero reject)" configuration. If you open your wad in SLADE3 and look at the map's lumps, are SEGS and SSECTORS lumps empty? If they're non-empty, then you haven't successfully built ZDoom extended nodes. Did you really set the new config in Game Configurations before building the nodes? If you've created the config by manually editing a textfile in GZDB's files, did you restart GZDB after that?

Share this post


Link to post

The SEGS and SSECTORS lumps are empty according to SLADE3. So that means it did successfully compile with extended nodes?

Just to double check, I went back and checked the previous version of the map (the non-extended version)to see if there was a difference and in that version the SEGS and SSECTORS do have data.

The only other lump that changed substantially is the NODES lump is about double the size in the Extended version, which I guess makes sense as they use longer strings?

So what does this mean? That the incomplete BSP error Zandronum is giving me isn't related to the size of the map?

On the other hand, according to this thread I just found, ZDBSP automatically bounces over to Extended nodes when the SEGS pass 65536 anyway. I can only presume my map is over that, which would explain why ZDBSP was working fine when ZenNode has stopped working (in the ZenNode build, about halfway through the level the geometry just... runs out).

So I wonder if I've been running an Extended build this whole time anyway? Except the non-extended ZDBSP version does have data in SEGS and SSECTORS. Hmm.

Sorry for all the newbie questions. Last time I compiled a Doom map was using DEU in about 1996, so I'm rather playing catchup!

Share this post


Link to post
Bauul said:

I can only presume my map is over [65536 segs]

Number of segs is always at least as high as the number of sidedefs, but it tends to be higher, depending on how complex the map is. The exact number isn't known until the nodes are actually built, and may depend on the node building algorithm. Your map probably exceeds the limit during node building in Zennode and BSP-W32 at least.

Bauul said:

Except the non-extended ZDBSP version does have data in SEGS and SSECTORS. Hmm.

It's theoretically possible that the number of segs didn't exceed 65536 with ZDBSP's node building algorithm as opposed to Zennode's algorithm, but there's a more probable explanation: Are you sure that the previous version really had nodes built with ZDBSP and not one of the other node builders that you've been trying previously?

Bauul said:

So I wonder if I've been running an Extended build this whole time anyway?

I don't know, but if that's really the case, I recommend you to use deep nodes instead, which you said already worked, and ZDoom extended nodes are similar to deep nodes in that only few ports support them, anyway.

Share this post


Link to post
scifista42 said:

It's theoretically possible that the number of segs didn't exceed 65536 with ZDBSP's node building algorithm as opposed to Zennode's algorithm, but there's a more probable explanation: Are you sure that the previous version really had nodes built with ZDBSP and not one of the other node builders that you've been trying previously?


Woah, you were absolutely correct! I was accidentally looking at version compiled with a different node builder. Both the "normal" and "extended" versions of ZDBSP do generate zero SEG and SSECTOR lumps, which makes sense if ZDBSP is automatically running extended anyway due to the size of map. It also explains why only ZDBSP and DeepBSP were compiling it successfully when everything else failed.

I don't know, but if that's really the case, I recommend you to use deep nodes instead, which you said already worked, and ZDoom extended nodes are similar to deep nodes in that only few ports support them, anyway.


Thank you! That all makes sense. I guess I'll never know what the error was with ZDBSP that Zandonrum was complaining about, but it doesn't reoccur with DeepBSP so as you suggest, I might as well use that.

Although in the course of reading up about all this I have discovered it might all be immaterial anyway if I pass 65536 sidedefs and have to convert to UDMF. :)

Thank you again for taking the time to explain all this. I know it must be tedious dealing with newbie questions but it is really, genuinely appreciated, so thank you.

Share this post


Link to post
Bauul said:

Although in the course of reading up about all this I have discovered it might all be immaterial anyway if I pass 65536 sidedefs and have to convert to UDMF. :)

You're right that non-UDMF maps can't have more than 65536 sidedefs (EDIT: Wait, thanks to sidedef compression, they actually can, so long as the sidedefs can be compressed to a number below 65536, and I think this would give you room for a lot more linedefs), but converting the map to UDMF will make your map incompatible with any port except (G)ZDoom, Zandronum and Eternity, and will force you to use ZDBSP and ZDoom extended nodes after all.

Share this post


Link to post
bzzrak said:

I'm assuming that you're using Vanilla, as that's what Real Men (tm) use. So, in the TEXTUREx lump, name the first frame, for example, WFALL1 (or whatever you want, the animated texture names are inside the EXE, AFAIK), name the last frame WFALL4, and put the remaining 4 frames between those. You can name those as you wish. Now, give a wall the WFALL1 texture and things should work!


Hmmm... doesn't seem to work. Isn't there a zDoom way? That's what I'm using.

Share this post


Link to post

Real quick question I'd like to know,

How does one change the music during a level?

I'm assuming through Slade, but not sure how.

The map I'm working on is in BOOM format.

Share this post


Link to post
A2Rob said:

How does one change the music during a level?


If your map is on MAP01, all you have to do is insert the MIDI into the .wad in SLADE3 and rename it to "D_RUNNIN".

If your map is on another slot, you'll have to figure out what to rename it to here: http://doomwiki.org/wiki/Doom_II_music

Share this post


Link to post
Rayzik said:

If your map is on MAP01, all you have to do is insert the MIDI into the .wad in SLADE3 and rename it to "D_RUNNIN".

If your map is on another slot, you'll have to figure out what to rename it to here: http://doomwiki.org/wiki/Doom_II_music


Not sure if I understand. I know how to rename the files in Slade. I'm saying, at a certain point in the level, I want to change the current song playing, then at another point, change it back. I think you answered half my question though, as far as having a second music file for the level.

It is MAP01 by the way.

Share this post


Link to post
RetroNova10 said:

Hmmm... doesn't seem to work. Isn't there a zDoom way? That's what I'm using.

The ZDoom way: http://zdoom.org/wiki/ANIMDEFS

A2Rob said:

Real quick question I'd like to know,

How does one change the music during a level?

I'm assuming through Slade, but not sure how.

The map I'm working on is in BOOM format.


Try that: http://doomwiki.org/wiki/MUSINFO

It's not a Boom feature per se, but it'll work with pretty much all modern source ports that are currently used for Boom-compatible maps.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×