Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Soundblock

Simple 3D in Doom

Recommended Posts

I guess the easiest way to refresh your memory/learn how 3D (rooms-over-rooms) work in Doom is to open up an existing map and see how the author did this, then following his (or her) example.

My question is, are there any known maps out there that carry just a little bit of 3D in them, so as to make them easy to dissect & understand? I know ZDoom Community Project for one has plenty of 3D, but I'm afraid I'd get lost in the amount of tricks performed in those maps, if I was to open them up.

I did some deep water sector stuff for Boom when that first surfaced and I'm assuming the principle is much the same, having checked out Chubz' tutorial.

For 3D stuff I was thinking to use Doom Builder 2 & map for ZDoom...

As a side note, I find it interesting how the aesthetics of 3D in Doom is quite... brittle? Some maps end up looking like Quake maps, others like early 3D games. Only a few seem able to retain the Doom feeling, whilst including 3D. I think its integral for successful 3D in Doom, to have the map carry that signature Doom 2.5D look, using the effect in a way that's harmonic to the way this plays & looks.

Share this post


Link to post

All CDoom maps. Not that there are many of them out there, and they are virtually all made by Carlos, who's also the port's author.

The 3D effect (in mapping) is achieved by using auxiliary/dummy sectors, which get "overdrawn" on top of the normal render. E.g. if you want to add another floor and ceiling to a sector, you have to make a dummy sector somewhere else on the map (usually outside( which has the textures and ceiling/floor heights you want to achieve, and "tag" it for the target sector (multiple "auxiliary" sectors can point to the same target sector, if you want more than one extra layer).

During rendering, the engine seeks and "overdraws" such sectors over the existing render, which often results in less-than-perfect visuals.

Share this post


Link to post

Have a look at Espi's MAP27 in http://www.doomworld.com/idgames/themes/TeamTNT/ed4_rfo/ed4_rfo1.zip to see how portals work in ZDoom to create fake room-over-room scenes. It's very restrictive what kind of geometry you can draw using this technique (e.g., can't have any upper texture in bottom portal when looking at that bottom portal from the upper portal's perspective - else you get HOM.)

Sector_Set3dFloor action special is more flexible but the number of control sectors get silly for a large single player level (Darkdome, eat your heart out.)

I can email you a work-in-progress (maybe I already have?) that shows some 3D floor usage.

Share this post


Link to post

UDMF now allows multiple tags for one sector. It can dramatically decrease the number of control sectors you need for certain types of structures.

Share this post


Link to post

Alright. I've got a map that's ready for play, as soon as I get a single 3D sector inserted into it. Thanks for the tips, I'm still looking into them. I'm a little worried by ChubzDoomer's ageing tutorial advice to modify the Doom Builder 2 install - modifying the editor seems like it might cause instabilities or incompatibility issues. Also, there's the source port compatibility for the finished result to think of. Any way, I want that 3D spice on a few of my maps, so here goes. To illustrate, the highlit sector in the below image is where I'm trying for a typical 3D bridge, where gameplay takes place both on top and underneath it. Like a pig's tail dead end that you have to back-track out of. I'm a little worried by some of the warnings here that this might be un-achievable, but here goes the experimentation. Dave the Daring looks like he's pulling something like this off in his latest screens...

Share this post


Link to post

While it's not Doom as such, 'The Adventures of Square' manages to use 3D floors in a farily restrained manner that retains a Doom like feel, and is worth checking out simply on it's own merits.

3D Floors are pretty simple and very robust in ZDoom, and I'd recommend them over messing around with portals and silent teleports. That said, they can rack up quite quickly so it's helpful to keep them visually organised:

Share this post


Link to post
Soundblock said:

I'm a little worried by ChubzDoomer's ageing tutorial advice to modify the Doom Builder 2 install - modifying the editor seems like it might cause instabilities or incompatibility issues.

As you said, that tutorial is aging, and the information in it is obsolete -- 3D floors have been in ZDoom for a long while now, since v2.6.0 released way back in 2012, and we're currently finding that the current version, v2.7.1, is getting old and a 2.8.0 wouldn't be untimely.

Setting a 3D floor is simple and does not require changing your map editor -- in the worst case, the editor will not know what the 3D floor line type is and will not display it in preview mode, which is slightly inconvenient but really not an obstacle. You're an old timer, you've known how back in the days map editors didn't even have a 3D preview! And people still made maps! Walking in the snow, uphill, both ways! :p

Anyway. If your map is in the old Doom format, you'll need to be satisfied from a choice of preset 3D floor effects (unless you feel like writing your own map translator -- it's actually quite simple, but I can understand it's not a motivating idea).

Standard 3D floor linetypes in Doom format:

	special 281 = "-- 3D Floor (solid, opaque)";
	special 289 = "-- 3D Floor (solid, opaque, no light effects)";
	special 300 = "-- 3D Floor (solid, 50% translucent, no light effects)";
	special 301 = "-- 3D Floor (swimmable, 50% translucent)";
	special 302 = "-- 3D Floor (non-solid, 50% translucent, foggy)";
	special 303 = "-- 3D Floor (non-solid, invisible)";
	special 304 = "-- 3D Floor (swimmable, opaque)";
	special 305 = "-- 3D Floor (non-solid, invisble)";
	special 306 = "-- 3D Floor (solid, invisible)";
	special 400 = "-- 3D Floor (solid, opaque)";
	special 401 = "-- 3D Floor (solid, opaque, monsters see-through)";
	special 402 = "-- 3D Floor (solid, opaque, shoot-through)";
	special 403 = "-- 3D Floor (swimmable, opaque)";
	special 404 = "-- 3D Floor (swimmable, 80% opaque)";
	special 405 = "-- 3D Floor (swimmable, 60% opaque)";
	special 406 = "-- 3D Floor (swimmable, 40% opaque)";
	special 407 = "-- 3D Floor (swimmable, 20% opaque)";
	special 408 = "-- 3D Floor (swimmable, invisible)";
	special 413 = "-- 3D Floor (solid, flat, opaque)";
	special 414 = "-- 3D Floor (solid, flat, 80% opaque)";
	special 415 = "-- 3D Floor (solid, flat, 60% opaque)";
	special 416 = "-- 3D Floor (solid, flat, 40% opaque)";
	special 417 = "-- 3D Floor (solid, flat, 20% opaque)";
Put that on a linedef, set the linedef's sector tag to the tag of the sector where the 3D floor must appear, and you're set! The control sector (linedef's front sector) will be used for the heights and textures of the 3D floor. Control sector's floor->3D floor's bottom; control sector's ceiling->3D floor's top. The sides of the 3D floor will use the same texture as the linedef.


If you're using Hexen or UDMF, then the linedef type you need to use is 160. You have a lot more options this way, but it works the same. Don't forget to set opacity to 255 if you want an opaque floor -- if you leave it to 0, the 3D floor will be invisible.

Share this post


Link to post

UDMF is very good.

Say, Soundblock, how many kroners would you charge for modifying the Doom status-bar face into looking like a different-looking marine, like the ginger marine holding Daisy's head at the end of Ultimate Doom?

Share this post


Link to post

Thanks for getting specific Gez. With a bit of fiddling I got some brand new geometry doing what I'd expect it to, but the map I've already constructed doesn't follow on as willingly. The bridge ends up wafer thin, even though I've given the control sector a lower floor value than its own roof value. Still might use the end result, a mid texture took care of the wafer thinness nicely. At least until I can figure out why the propped-in bridge doesn't work as well as the constructed-from-scratch one.

gemini09 said:

UDMF is very good.

It looks nice and powerful. Is there perhaps a conversion tool out there, that translates ZDoom-in-Doom format to UDMF? Currently I lose all my linedef flags when jumping between the formats in Doom Builder.

You could always go ahead and give me an offer in NOK about that HUD, but I doubt I'd find the time to do it. I've kept pixel-pushing a chore of love so far and it might take some serious figures to move it out of that zone. Besides, working after a likeness sounds like a chore. Sorry.

EDIT:
Appending an image of the 3D bridge in its current form:


Share this post


Link to post
Soundblock said:

Is there perhaps a conversion tool out there, that translates ZDoom-in-Doom format to UDMF?

Yes, check out the converters linked here: https://www.doomworld.com/vb/post/1424328

Appending an image of the 3D bridge in its current form:
http://www.monstercute.com/uploads/2/8/1/9/2819457/1410631_orig.png

There is no 3D floor. Check common mistakes: 1. Absolute floor/ceiling heights of the control sector in comparison with the target sector. 2. Alpha transparency not being zero (invisible). 3. Bad flags/types of the 3D floor (making it invisible).

Share this post


Link to post
Soundblock said:

Thanks for getting specific Gez. With a bit of fiddling I got some brand new geometry doing what I'd expect it to, but the map I've already constructed doesn't follow on as willingly. The bridge ends up wafer thin, even though I've given the control sector a lower floor value than its own roof value.

What special are you using? I believe the 413-417 range will always be wafer-thin.

Share this post


Link to post
Soundblock said:

I'm a little worried by ChubzDoomer's ageing tutorial advice to modify the Doom Builder 2 install - modifying the editor seems like it might cause instabilities or incompatibility issues.


Yep, there's no longer any need to do that. Just grab GZDoom Builder, which has the GZDoom Visual Mode enabled by default, and you're golden.

I'll probably make an updated 3D Floors tutorial one of these days that covers GZDoom Builder and UDMF format.

Share this post


Link to post
scifista42 said:

There is no 3D floor. Check common mistakes: 1. Absolute floor/ceiling heights of the control sector in comparison with the target sector. 2. Alpha transparency not being zero (invisible). 3. Bad flags/types of the 3D floor (making it invisible).


Had the wrong type of 3D sector set, somehow. Should have been 281, was 413. Now set back to default 281. New & improved screenshot included.

Does alpha transparency only apply to UDMF? Can't find a setting for it in the Zdoom-in-Doom format.



Share this post


Link to post
Soundblock said:

Does alpha transparency only apply to UDMF? Can't find a setting for it in the Zdoom-in-Doom format.

Hexen format and UDMF only. For Doom format you can't pass parameters to line specials, instead each linedef type is associated a set of parameters in the default map translator.

Share this post


Link to post

I'll never understand people's hesitation to just use GZDoom Builder. Is it the name? You can map for vanilla with it, you know. It just reminds me of all those people that still use XWE. I mean, I'm usually slow to take on new things but I took one look at GZDB and I was like "Yeah, never going back."

Then again, I use a ton of 3D floors over 3D floors and sector slopes and fixed-height polyobjects so it's no wonder.

Share this post


Link to post

That always reminds me of the saying

You can lead a horse to water but you can't make it drink


If they don't want to use GZDoom Builder, for whatever reason, it's their loss.

And in the context of 3D floors, they also miss out using boris's 3D_Floor_Plugin.

Share this post


Link to post
Jaxxoon R said:

I'll never understand people's hesitation to just use GZDoom Builder. Is it the name? You can map for vanilla with it, you know. It just reminds me of all those people that still use XWE. I mean, I'm usually slow to take on new things but I took one look at GZDB and I was like "Yeah, never going back."

Then again, I use a ton of 3D floors over 3D floors and sector slopes and fixed-height polyobjects so it's no wonder.

Wait, are you saying that XWE is no longer popular to use? My god... the world has changed more than I realised.

Share this post


Link to post
Jaxxoon R said:

I'll never understand people's hesitation to just use GZDoom Builder.


Anti-aliasing. Blurring. Pixel-mudding, call it what you will. I like my aliases where they are, thank you very much. Shame about the loss of all those neat GL features, but if I went fully down that route I'd end up with normal maps and the like anyway. Yuck.

Its like the old painting versus airbrushing discussion. To each his own.

I might make some GL maps one day, but one thing at a time.

Share this post


Link to post

soundblock, gzdoombuilder's name is misleading, you can use it to make maps in any format, vanilla included, why the author maxed chose to name it that way is anyone's guess

about renaming it doom builder 3, wouldnt that cause more confusion? i mean people could think it is for doom 3. just 'doom builder' should be fine imo

Share this post


Link to post

If so, then Doom Builder 2++. Or Doom Builder 2X, or Doom Builder X2, or Doom Builder X.

Or Doom Builder 2+G, as a reference to DB2 as well as GZDB.

Share this post


Link to post
raymoohawk said:

...., why the author maxed chose to name it that way is anyone's guess


Not really.
You may have noticed that Doombuilder2 has no support for GZDoom features, not even a GZDoom
configuration setup. That's where MaxED stepped in.

While Codeimp was still coding Doombuilder2, MaxED concurrently started adding OpenGL stuff
to his branch of DB2 and called it GZDoom Builder, because he was more interested in mapping for
GZDoom. And over time, when Codeimp was satisfied that he had done as much for DB2 as he wanted
to, and he wanted to pursue Rampage M, he handed the development domain over to MaxED.

There have been several posts in the past to belabour the name GZDoom Builder, but the name stuck.
If somebody has a problem with the editor being named GZDoom Builder because they imagine
some limitation, that only shows that they have not tried it out for themselves. There have been
god knows how many posts in the past pointing out the capabilities of GZDB.

Over the last 10 years, MaxED has done an excellent job to bring the editor up to the latest standards
and still keeps improving it.

Sure, there are some who just want to keep mapping with Doombuilder2.
Like I mentioned, it's their loss.

Share this post


Link to post

I surely respect MaxED (and respect you), but look how so many people are still genuinely misinformed, even after years, and new ones keep coming. It says something. Yes, it's all their fault, but guess what gives incentive to the fault, and see how strong the incentive is. Changing GZDB's name would prevent it for good.

Share this post


Link to post

It's just a name, just like Doombuilder or Doombuilder2. I don't see anybody saying that the name
Doombuilder should be changed to Hexenbuilder or Hereticbuilder or Whateverbuilder because they
want to map for Hexen or Heretic or Zandronum.

Looking back on posts concerning GZDoom Builder, even after being informed that GZDoom Builder
allows mapping for all kinds of formats, from vanilla to Zandronum, there still remains a reluctance,
almost an aversion, to using GZDoom Builder.

Is it such an overwhelming task to go to the GZDoom Builder homepage on the ZDoom forum and
inform oneself of the capabilities of the editor?

Or is there some psychological obstacle to the name GZDoom, which makes vanilla mappers go
into conniptions at the thought of advanced features?

Lighten up guys, it's just a name for a great editor.

But the fact still remains that 3D floors, or rooms over rooms over rooms, is still easiest to
accomplish in DiH or UDMF format with ZDoom or GZDoom.

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
×