Ultimate Doom Builder

Any utility that assists in the creation of mods, assets, etc, go here. For example: Ultimate Doom Builder, Slade, WadSmoosh, Oblige, etc.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
Misery
Posts: 157
Joined: Sun Nov 04, 2018 4:57 pm

Re: Ultimate Doom Builder

Post by Misery »

I am experiencing an odd "slope glitch" that occurs whenever I create a line or move a vertex. I have a map with multiple "mountains" that have sloped sides, and suddenly whenever I move anything, even only slightly, the entire sector suddenly turns into a "giant slope." It started after I added a linedef to create a player block. The line isn't attached to anything, and has no effects other than blocking players and monsters. Now any changes makes the whole sector glitch.
boris wrote:Needs more information. Extract the portion of the map that gives you the problem and post the map here.
Edit: Nevermind, I figured it out by luck. For some reason, one of the "mountains" glitched. Many of the sectors used to create the sloped side "disappeared" and had to be fixed with the Make Sector tool. I noticed it when I saw several "void" sectors on the ceiling in Visual Mode, and saw the sector wasn't highlighting properly on Classic Mode. If it occurs again, I'll post the wad like you said.
Last edited by Misery on Thu Jul 14, 2022 12:42 pm, edited 3 times in total.
User avatar
AFADoomer
Posts: 1248
Joined: Tue Jul 15, 2003 4:18 pm

Re: Ultimate Doom Builder

Post by AFADoomer »

Is there a way to clear the value of a custom text property (UDMF) in-editor?

I would expect that this would work like making any other value change - I could just replace the value with an empty entry and be done - but when I do this, then close and re-open the properties, the old (non-empty) value is restored.
boris
Posts: 702
Joined: Tue Jul 15, 2003 3:37 pm

Re: Ultimate Doom Builder

Post by boris »

Misery wrote:I am experiencing an odd "slope glitch" that occurs whenever I create a line or move a vertex. I have a map with multiple "mountains" that have sloped sides, and suddenly whenever I move anything, even only slightly, the entire sector suddenly turns into a "giant slope." It started after I added a linedef to create a player block. The line isn't attached to anything, and has no effects other than blocking players and monsters. Now any changes makes the whole sector glitch.
Needs more information. Extract the portion of the map that gives you the problem and post the map here.
AFADoomer wrote:Is there a way to clear the value of a custom text property (UDMF) in-editor?

I would expect that this would work like making any other value change - I could just replace the value with an empty entry and be done - but when I do this, then close and re-open the properties, the old (non-empty) value is restored.
Select the line (i.e. make sure you're not editing the name/type/value) and press the Del key on your keyboard.
User avatar
AFADoomer
Posts: 1248
Joined: Tue Jul 15, 2003 4:18 pm

Re: Ultimate Doom Builder

Post by AFADoomer »

boris wrote:
AFADoomer wrote:Is there a way to clear the value of a custom text property (UDMF) in-editor?

I would expect that this would work like making any other value change - I could just replace the value with an empty entry and be done - but when I do this, then close and re-open the properties, the old (non-empty) value is restored.
Select the line (i.e. make sure you're not editing the name/type/value) and press the Del key on your keyboard.
That works for other value types, but not text... The line greys out, as if it had been reset, but the value doesn't actually get cleared.
boris
Posts: 702
Joined: Tue Jul 15, 2003 3:37 pm

Re: Ultimate Doom Builder

Post by boris »

Is that for a custom field defined through Decorate/ZScript? If so please provide a minimal example showing the problem.
User avatar
AFADoomer
Posts: 1248
Joined: Tue Jul 15, 2003 4:18 pm

Re: Ultimate Doom Builder

Post by AFADoomer »

boris wrote:Is that for a custom field defined through Decorate/ZScript? If so please provide a minimal example showing the problem.
Here you go. MAP01 has an actor (editor number 3000, class 'Test') that does nothing but print the value of the 'user_test' key.
You do not have the required permissions to view the files attached to this post.
boris
Posts: 702
Joined: Tue Jul 15, 2003 3:37 pm

Re: Ultimate Doom Builder

Post by boris »

The cause is that empty input fields are treated as "do not change original value". This is used when multiple map elements selected that have differing values for their properties. For example selecting multiple sectors with different brightness levels will leave the brightness input field empty, and when hitting OK the brightness of each sector isn't changed.

This is fine for non-string fields, but for string fields there's currently no way to differentiate between "field is not supposed to change" and "user wants to change it to an empty string/remove it".

I don't really have a good solution for that right now, but as a workaround you can use this UDBScript to remove string fields:

Code: Select all

`#version 4`;
`#name Reset UDMF text fields`;
`#description Resets UDMF text fields. It will list all UDMF string fields of the selected things. Setting the option to "true" will remove the field.`;

const things = UDB.Map.getSelectedOrHighlightedThings();

if(things.length == 0)
    UDB.die('You need to select or highlight thing(s)');

// Use a Set because we only want unique field names
const  fieldNames = new Set();

// Go through all things and find all UDMF fields that are strings
things.forEach(t => {
    for(field in t.fields)
    {
        if(typeof(t.fields[field]) === 'string')
            fieldNames.add(field);
    }
});

if(fieldNames.size == 0)
    UDB.die('No UDMF text fields found in the selected things.');

const qo = new UDB.QueryOptions();

// Add all found fields to the query options (as bool)
fieldNames.forEach(f => qo.addOption(f, f, 3, false));

if(qo.query())
{
    // Go through all options and remove the fields that are set
    // to true from all things
    for(o in qo.options)
    {
        if(qo.options[o])
            things.forEach(t => t.fields[o] = null);
    }
}
User avatar
AFADoomer
Posts: 1248
Joined: Tue Jul 15, 2003 4:18 pm

Re: Ultimate Doom Builder

Post by AFADoomer »

Thanks for looking! At least I know that it wasn't user error.
User avatar
esselfortium
Posts: 3851
Joined: Tue Sep 19, 2006 8:43 pm

Re: Ultimate Doom Builder

Post by esselfortium »

Has anyone had any luck getting this to compile on macOS?

I'm currently using DBX and GZDB via Parallels, but Parallels consistently crashes with a graphics driver error when I try UDB. This has been consistent across multiple Macs, multiple OS versions, multiple versions of Parallels, etc. I tried contacting Parallels support but they didn't seem interested in a deep investigation of UDB. I suspect that it's choking on the OpenGL version being used here. So, is there a way I can get this running natively, or is there a workaround for the GL version requirement?
User avatar
Rachael
Admin
Posts: 12960
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: Ultimate Doom Builder

Post by Rachael »

What Mac OS version are you running and is it Silicon or Intel based? There might be a way to do it with older macs.

On OS 10.14 and earlier (Intel only, as far as I know...) you can try running it with Wine. You will need XQuartz installed, too.

If you have install discs for the older MacOS versions you can also run them inside Parallels, however you might want to set aside an external drive for that since OS installs tend to be a little hefty with hard disk space. I am not 100% sure this will work but it's certainly worth a shot, I think.
User avatar
esselfortium
Posts: 3851
Joined: Tue Sep 19, 2006 8:43 pm

Re: Ultimate Doom Builder

Post by esselfortium »

Rachael wrote:What Mac OS version are you running and is it Silicon or Intel based? There might be a way to do it with older macs.

On OS 10.14 and earlier (Intel only, as far as I know...) you can try running it with Wine. You will need XQuartz installed, too.

If you have install discs for the older MacOS versions you can also run them inside Parallels, however you might want to set aside an external drive for that since OS installs tend to be a little hefty with hard disk space. I am not 100% sure this will work but it's certainly worth a shot, I think.
It's an Intel-based machine running Big Sur (11.x).

Would it only work on 10.14 or earlier because of reliance on 32-bit libraries or something?
User avatar
Rachael
Admin
Posts: 12960
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: Ultimate Doom Builder

Post by Rachael »

esselfortium wrote:Would it only work on 10.14 or earlier because of reliance on 32-bit libraries or something?
Yes - that is correct.

As far as I know, native compilation for Mac OS was never attempted with UDB, only with Linux, not even sure if that's still working.

The only thing I can suggest is, if you're willing to invest a little extra money later on - use the trial version of VMWare Fusion and see if it works and whether it fits your needs. If that doesn't work out, your options are fairly limited - you can try and multi-partition your Boot device to hold an older version of OS X and symlink or copy your /Users/yourname folder over and switch to that while mapping - or you can use Boot Camp to go into Windows directly (though, my guess is if you're using a Mac in the first place you're trying to avoid that, so that's probably more of a last resort).

EDIT: I will see what I can do later on today to get it working on my Mac, but it's an M1 so it's even less likely to work there. I might be able to work through the compilation issues at least, though.
User avatar
Rachael
Admin
Posts: 12960
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: Ultimate Doom Builder

Post by Rachael »

Okay - so - I was able to get it to build on Mac OS, but unfortunately, I could not get it to run, it just crashed the framework and I could not diagnose the problem since the problem was in the framework itself and not in the program where it could be debugged.

I am told that the problem exists with Mono, which relies on code that was used as a stopgap to port applications from OS9 to OSX and may either no longer exist today, or at the very least is broken with the changes to the platform that have occurred since.

You might have better luck with this than me, though. For what it's worth, here's the compile: https://cdn.discordapp.com/attachments/ ... ild.tar.xz

I don't know if the resulting code is actually any different from building it on Linux - but in any case I built this using Visual Studio for Mac. From what I remember it was targeting x64 so it should still work, hopefully.

You'll need some form of either Mono or Xamarin to run it. If you have those, Finder should be able to find the right application and use it to execute the file. I don't actually expect it to work though - but it's worth a try.

I have since uninstalled VS for Mac since my Mac only has 220 gb of hard drive space, and it was a real space eater, I just simply can't afford to keep it on there, right now. I'll have to figure out how to get some form of a NAS working in order to do major Mac projects like this in the future, or see if I can afford an external thunderbolt terrabyte SSD.

I haven't given up on this 100% - there's still things I haven't tried yet - but this may require skills that I don't currently have.

EDIT: Oh - while I am thinking about it - are you able to post the crash you are getting in Parallels? Maybe I can help with that, instead.
dpJudas
 
 
Posts: 2869
Joined: Sat May 28, 2016 1:01 pm

Re: Ultimate Doom Builder

Post by dpJudas »

UDB can't be built natively for macOS because the mono winforms implementation never bothered to move from Carbon to Cocoa. As a result mono winforms only ever worked on 32-bit macs.
User avatar
esselfortium
Posts: 3851
Joined: Tue Sep 19, 2006 8:43 pm

Re: Ultimate Doom Builder

Post by esselfortium »

Hmmm. Thanks for trying.

I don't get a simple error message with the Parallels crash, just a lot of huge crashdump files. (To note, it's the VM itself that's crashing, so there's no crash message to be retrieved from UDB.)

Parallels says a "critical graphics error has occurred within Windows 10". (And it's happening on multiple computers, so it's not something specific with my setup here...)

Oh, actually, I tried a second time and got an error from UDB itself!

Code: Select all

***********SYSTEM INFO***********
OS: Microsoft Windows 10 Home Single Language
GPU: Parallels Display Adapter (WDDM)
UDB: R3274
Platform: x64

********EXCEPTION DETAILS********
Unable to load DLL 'BuilderNative': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at CodeImp.DoomBuilder.Rendering.RenderDevice.RenderDevice_New(IntPtr display, IntPtr window)
   at CodeImp.DoomBuilder.Rendering.RenderDevice.CreateDevice()
   at CodeImp.DoomBuilder.Rendering.RenderDevice..ctor(RenderTargetControl rendertarget)
   at CodeImp.DoomBuilder.MapManager.InitializeNewMap(MapOptions options)
   at CodeImp.DoomBuilder.General.NewMap()
   at CodeImp.DoomBuilder.Actions.Action.Begin()
   at CodeImp.DoomBuilder.Actions.ActionManager.InvokeAction(String actionname)
   at CodeImp.DoomBuilder.Windows.MainForm.InvokeTaggedAction(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Then after trying once again to create a new map after closing out of the above dialog:

Code: Select all

***********SYSTEM INFO***********
OS: Microsoft Windows 10 Home Single Language
GPU: Parallels Display Adapter (WDDM)
UDB: R3274
Platform: x64

********EXCEPTION DETAILS********
Object reference not set to an instance of an object.
   at CodeImp.DoomBuilder.Config.ProgramConfiguration.GetPluginPathPrefix(Assembly asm)
   at CodeImp.DoomBuilder.Config.ProgramConfiguration.WritePluginSetting(String setting, Object settingvalue)
   at CodeImp.DoomBuilder.Plugins.PluginManager.OnMapCloseEnd()
   at CodeImp.DoomBuilder.MapManager.Dispose()
   at CodeImp.DoomBuilder.General.CloseMap()
   at CodeImp.DoomBuilder.Windows.MainForm.OnFormClosing(FormClosingEventArgs e)
   at System.Windows.Forms.Form.WmClose(Message& m)
   at CodeImp.DoomBuilder.Windows.MainForm.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
edit: Just saw that I wasn't on the latest build, so I tried again with that. Same result.

Return to “Creation, Conversion, and Editing”