Jump to content
  • 0

vanilla friendly features


Bucket

Question

Are there source port features that can be coded into a WAD that will be safely ignored by Vanilla Doom? Like say you wanted a complex skybox that would show up in ZDoom but would default to a plain sky texture when played in Vanilla. The finer points of WAD architecture are lost on me, especially when it comes to source ports.

Share this post


Link to post

6 answers to this question

Recommended Posts

  • 4

Yes, despite the naysayers above, there's a lot of stuff that you can do that will not impact vanilla.

 

The skybox thing is a good example. You can have a MAPINFO lump that changes the sky used. The port will use the MAPINFO lump while vanilla Doom will ignore it and use its hardcoded values.

 

Doom will also ignore unknown linedef types, so for example if you want to make an ocean, you can make a very large sea sector that the player can't explore, but you can also mark the outer edges with the "line_horizon" special (it's line type 337 in Doom format) so that in ZDoom the sea will truly extend to the horizon while in vanilla it'll just be your large water sector.

 

Another example is using slopes (line types 340 to 347 in Doom format), for example to make a decorative arch on the ceiling more convincing. In vanilla it'll have the familiar crenelated look because you'll see everything flat, but in ZDoom it'll be correctly slanted to create the arch.

 

@pcorf has often used this to put ZDoom-specific secret exits, that will work in ZDoom but cannot be reached in vanilla. See 2002 ADO or Whispers of Satan.

 

The problem is with unknown sector types. Doom does not ignore those, though it only checks them when the player enters them. So if they're not used in player-visitable areas, it should be fine, and will only cause crashes for users of the iclip/idspispopd codes. Of course that means you can only use effects that are useful even when outside of playable area.

 

Finally, there's unknown map things. Those will trigger errors unless they are flagged not to appear on any skill level, then they'll be ignored. So special effects that depend on map things that ignore skill level (like player spawn points) can work in a vanilla-friendly way; but on the top of my head I can't really think of any.

 

Some advanced effects can be used with ACS, but setting it not as map scripts (as those require the Hexen map format or UDMF), but as a library.

https://zdoom.org/wiki/Using_ACS_in_Doom-format_maps

 

While they were not targeting vanilla exactly, you can look at Ancient Aliens and Eviternity for two prominent examples of map sets out there that had special ZDoom-specific enhancements while still working on other ports without issues.

Edited by Gez

Share this post


Link to post
  • 0

Someone can probably tell you better than me, but in my experience, advanced port features require advanced formats that cannot be executed in vanilla doom.
For example, all boom format action lines require the map to be in boom format. If you try to play a Boom map in Chocolate Doom, the sourceport will simply show an error and not allow you to play.
Same with UDMF and all other sourceports other than GzDoom/Eternity/Edge (and now DSDA, although I believe still in limited capacity).

Share this post


Link to post
  • 0

Nope, this is plainly impossible.

 

You need to decide yourself: Do you want to support vanilla, which means fairly limited pool of options, mapping limits, etc. OR sourceport, so unlimited.

 

Share this post


Link to post
  • 0

I will add a little bit to the answer from Gez.
 

You can also use different MAPINFOs, of which there are several today. Most of all I always recommend to use this bunch to cover as many potential ports as possible: UMAPINFO (for overwhelming number of modern ports), ZMAPINFO (for ZDoom family), EMAPINFO (for Eternity Engine), MAPINFO (hexen format, not zdoom, for something old and obsolete, like ZDaemon). You can also use these different MAPINFOs to connect your own specific features. 


A prime example is the OGG or MP3 version of the soundtrack. You can add to your wad file a midi version of the soundtrack with the correct name (to be read by the original doom) and you can also add an mp3/ogg version with your own file name which you will then link to from MAPINFO. Totally vanilla ports can't read MAPINFO and will actually ignore it, which means they won't play mp3/ogg music and won't break. In general, almost any port today that supports UMAPINFO, ZMAPINFO and EMAPINFO can play ogg/mp3 music without problems. In hexen MAPINFO you have to specify the midi version, because the same ZDaemon cannot play mp3/ogg (As pointed out to me below, this is possible, more details at the end of the post).
 

If we talk about any other features, in ZMAPINFO and EMAPINFO you can turn on the map thunder lightning (as well as add appropriate thunder sound, it is in the resources of Eternity Engine, if you need it).
 

In general, read in detail the capabilities of different MAPINFO and you will be able to get the information you need.
 

As well you can poke around inside my Hotel of the dead, I used it all there, since I was aiming for my wad to comfortably handle as many ports as possible.

Spoiler

 

 

Also, if I'm not mistaken, in Doom 64 for Doom 2 for ZDoom-family ports enabled the animated sky this way.

Spoiler

 


The only thing, I can not say exactly about Chocolate Doom and the original Doom on DOS, but if we talk about Limit-Removing ports and above, it should definitely work. Perhaps someone can correct me if there is some exception.

UPD:

15 hours ago, AF-Domains.net said:

DRON12261, ZDaemon does support mp3/ogg sound lumps. This is confirmed.

Well, maybe my mistake, thanks for the correction, @AF-Domains.net. Honestly I kinda had a problem with this in ZDaemon when I was developing Hotel of the dead and I just had silence on the level, maybe for ZDaemon it was necessary to format the mp3/ogg file properly. Anyway, speaking about MAPINFO itself, I guess there are older ports that can use it but, can't play mp3/ogg, so out of harm's way in the hexen format MAPINFO I would still specify the midi version of the soundtrack. Updated the info above.

Edited by DRON12261

Share this post


Link to post
  • 0

DRON12261, ZDaemon does support mp3/ogg sound lumps. This is confirmed.

 

There are also wads used on ZDaemon with a said mp3/ogg lump defined in the MAPINFO that function without a problem. (3waymadness-ctf-v5.wad)

Share this post


Link to post
  • 0

As for the actual structure within the .WAD, lumps that aren't recognized by doom.exe are just ignored. So pretty much as long as it doesn't share a name with something that already appears in the IWAD, and isn't placed after S_START or F_START, it should not affect vanilla. This is why mods that use Dehacked will often have an embedded DEHACKED lump for ports that will recognize it, and a separate .deh file for vanilla/choco.

 

If you want more specifics then check out https://doomwiki.org/wiki/WAD

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...