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

Enforcing Vanilla gameplay/compatibility in MAPINFO

Recommended Posts

Is there an easy way to enforce vanilla compatibility settings in MAPINFO without having to specify every single map and what sky/music/name they should use?  I just want ZDoom/GZDoom to assume the DOOM II defaults so I'll only need to set compatibility in MAPINFO.  I didn't realize that MAP07: The Ball Game in my vanilla megawad, "DOOM 87: The Lost World," was broken in ZDoom/GZDoom because I assumed that the normal behavior wouldn't be affected (walls tagged 666 don't lower when the Mancubi die).  This WAD is designed to be fully vanilla-compatible and I play it in vanilla on my DOS PC.

 

 

Also, can I somehow enable ghost monsters?  I really don't understand why this isn't a compatibility option that the user can enable.  This means that MAP21 and MAP26 have traps that won't function.

 

Here's the current MAPINFO

 

Quote

defaultmap
nocrouch
nojump
nofreelook
compat_limitpain
compat_nopassover
compat_crossdropoff
compat_dropoff
compat_corpsegibs
compat_invisibility
compat_soundtarget
compat_stairs
compat_useblocking
compat_spritesort
compat_missileclip

 

map MAP01 "House of Doom"
titlepatch CWILV00
sky1 RSKY1
next MAP02
secretnext MAP02
music D_RUNNIN

I didn't paste the info for the other maps here since it's just the same format as MAP01.

 

Thank you for reading this :)

Share this post


Link to post
17 minutes ago, DCG Retrowave said:

Is there an easy way to enforce vanilla compatibility settings in MAPINFO without having to specify every single map and what sky/music/name they should use? 

Nope. MAPINFO is a per-map definition format. You can't apply sweeping changes to already existent entries, you can only apply definitions to new ones, so changing defaults still requires you to define each subsequent entry after it to apply those defaults. Behold the trap that GZDoom enforces on people who don't even use the port, you as a modder still have to manually explicitly define everything their port needs because otherwise it'll always assume it's own behaviour. It's annoying as it sounds. And this of course leads into...

 

17 minutes ago, DCG Retrowave said:

Also, can I somehow enable ghost monsters?  I really don't understand why this isn't a compatibility option that the user can enable and this means that MAP21 and MAP26 have traps that won't function.

That would be also no. For whatever reason this option is only every exposed to its internal compatibility definitions. They explicitly don't want people making new maps with this behaviour for some draconian reason. https://forum.zdoom.org/viewtopic.php?f=4&t=23967&p=465634&hilit=ghost+monsters+mapinfo#p465634

I see no reason to believe Graf Zahl has changed his opinion on this, so you might as well just forget about GZDoom as a compatibility vector unless they "graciously" add you to their explicit compatibility list.

Edited by Edward850

Share this post


Link to post
8 minutes ago, Edward850 said:

Nope. MAPINFO is a per-map definition format. You can't apply sweeping changes to already existent entries, you can only apply definitions to new ones, so changing defaults still requires you to define each subsequent entry after it to apply those defaults. Behold the trap that GZDoom enforces on people who don't even use the port, you as a modder still have to manually explicitly define everything their port needs because otherwise it'll always assume it's own behaviour. It's annoying as it sounds. And this of course leads into...

 

That would be also no. For whatever reason this option is only every exposed to its internal compatibility definitions. They explicitly don't want people making new maps with this behaviour for some draconian reason. https://forum.zdoom.org/viewtopic.php?f=4&t=23967&p=465634&hilit=ghost+monsters+mapinfo#p465634

I see no reason to believe Graf Zahl has changed his opinion on this, so you might as well just forget about GZDoom as a compatibility vector.

Thanks for the info!  I wouldn't have bothered with a MAPINFO at all, but I don't expect most players to check the README.TXT for compatibility settings and gameplay requirements.  Having to learn all of this ZDoom-specific stuff for a vanilla WAD seems ridiculous to me.  If I could just force "Doom (Strict)" and disable map-breaking features like jumping and crouching, that would be amazing.

 

Currently, the text screens and MAP07's Dead Simple functions are the only broken things I'm aware of.  I'm just not sure how to get these working.

 

My reaction when I checked MAP07 after a ZDoom user reported the issue to me was "What kind of DOOM port breaks Dead Simple?!?"  Yeah, I'm a little frustrated right now :D

Share this post


Link to post

Assuming that someone wanted to add such a feature in a ZDoom fork, where in the various definition files would be the prudent place to put it?  Both in terms of general compatibility and the ghost monsters bit?

Share this post


Link to post
17 minutes ago, AlexMax said:

Assuming that someone wanted to add such a feature in a ZDoom fork, where in the various definition files would be the prudent place to put it?  Both in terms of general compatibility and the ghost monsters bit?

Currently, compat flags are stored as cvars and are listed in menudefs. The ghost monsters bit is stored in a list only accessible by compatibility.txt, which I think might be stored in a non-public location in the internal mapinfo array.

Share this post


Link to post
1 minute ago, Edward850 said:

Currently, compat flags are stored as cvars and are listed in menudefs.

 

I mean more in the sense of "I want to target "doom compatibility (strict)" or something approaching it in all maps by default" where would such a feature go?

Share this post


Link to post

MAPINFO would seem like the relevant location, I can't think of many situations where you'd only want a specific map to have specific compatibility changes but there could be a situation I haven't thought of. Though honestly? I'd rewrite history and make that the default unless explicitly stated otherwise by MAPINFO or GAMEINFO. It'd have solved just about every compatibility headache imaginable, like the people who seem to think Doom/2 have jumping by default and all of the various pre-ZDoom vanilla megawads because ZDoom is the first thing they ever touch.

Share this post


Link to post
1 hour ago, Edward850 said:

MAPINFO would seem like the relevant location, I can't think of many situations where you'd only want a specific map to have specific compatibility changes but there could be a situation I haven't thought of. Though honestly? I'd rewrite history and make that the default unless explicitly stated otherwise by MAPINFO or GAMEINFO. It'd have solved just about every compatibility headache imaginable, like the people who seem to think Doom/2 have jumping by default and all of the various pre-ZDoom vanilla megawads because ZDoom is the first thing they ever touch.

Jumping on Dead Simple and freelook on the Icon of Sin :O

Share this post


Link to post

@DCG Retrowave Yeah, that sucks hard. I had to go through this as well so I can feel your frustration here. I think the best you can do (besides MAPINFO settings) is adding an ACS message on the start of each map saying the player need to change the settings to play this mapset. Put it on the center of the screen and don't make it dissapear unless they change it. Unfortunately I don't know nothing about ACS scripting, but it may be a good idea to ask to someone else about it. You can also redirect a new MAP21 and MAP26 on MAPINFO with a exclusive GZD version of your maps so you don't need to change the original ones with the ghost behavior. Doom 64 for Doom 2 have alternative maps compatible with different source-ports. Try to talk with @Mechadon, maybe he can help you with that.

Edited by Noiser

Share this post


Link to post
14 minutes ago, Noiser said:

I think the best you can do (besides MAPINFO settings) is adding an ACS message on the start of each map saying the player need to change the settings to play this mapset. 

So fun facts, putting it in MAPINFO overrides the compat flags so the user wouldn't need to do anything there, and ghost monsters is a compat flag the user can't even set themselves so no ACS message would ever help there. It's litteraly entirely up to Graf if your map is allowed to have them in his port, it's nuts. 

Share this post


Link to post

Nope. They explicitly forbid that from happening because they don't like ghost monsters. I'm not joking. 

 

For clarification, here's the compat flag, it's in a section explicitly marked only of the internal compatibility use: https://github.com/coelckers/gzdoom/blob/5b03e86a2b288726dd08c913024d07ac79ab8fb1/src/doomdef.h#L232

And a ZDF discussion on the subject: https://forum.zdoom.org/viewtopic.php?f=4&t=23967&p=465634&hilit=ghost+monsters+mapinfo#p465634

 

Confusingly, it does re-enable resurrecting crushed corpses because ZDoom strangely changed how they worked in such a way that by default prevents resurrection, but enabling that is separate from the ghost monsters behaviour which is only allowed in the internal compatibility file. 

Edited by Edward850

Share this post


Link to post

A quote from Graf Zahl on that thread.

 

Quote

In my opinion: Every map using AV ghosts == fail by default. (Yes, that includes Plutonia2 MAP32. I found that map unplayable even without those abominations. I wonder how much worse it is now...)

As long as I have anything to say about it this will not be exposed more than it is right now. For what it's worth I wouldn't have put half of the maps on that compatibility list there. To be blunt, I already regret that this compatibility crap has been added at all. In retrospect it should have been dumped into the deepest abyss of hell!

 

So basically, Graf is suggesting that he's not a very epic DOOMER because he can't even kill a few SS Nazi ghosts :D

 

decino: "It's not difficult.  It's just weird."

 

 

Due to Graf's personal preference on ghosts, he wants to ruin all the fun for new mappers.  If GZDoom wasn't so popular, this wouldn't be an issue.  The problem is that many casual players are starting with this port for classic DOOM and have no idea how significantly the gameplay is modified, especially by default.

Share this post


Link to post
7 hours ago, Edward850 said:

So fun facts, putting it in MAPINFO overrides the compat flags so the user wouldn't need to do anything there, and ghost monsters is a compat flag the user can't even set themselves so no ACS message would ever help there. It's litteraly entirely up to Graf if your map is allowed to have them in his port, it's nuts. 

Goddamit. So I think the solution here is to keep the MAPINFO settings and make an alternative map and\or decorate for the ghost enemies. Send me a PM @DCG Retrowave, I can try to help you if you want.

Edited by Noiser

Share this post


Link to post

I just looked at the source code that Edward850 linked.  This is both hilarious and stupid.

 

Quote

Emulate old bugs for select maps. These are not exposed by a cvar or mapinfo because we do not want new maps to use these bugs.

 

BCOMPATF_VILEGHOSTS = 1 << 2, // Monsters' radius and height aren't restored properly when resurrected.

 

GZDoom is literally discouraging mappers from designing DOOM maps.  GZDoom is intentionally trying to be incompatible with something that nearly all source ports allow optionally.  GZDoom is trying to set a new standard by changing DOOM.  It's one thing to expand on DOOM's capabilities (like Boom and MBF), but GZDoom is sacrificing compatibility for the game it tries to imitate so it can completely reimagine DOOM.

Share this post


Link to post

Are there any other vanilla bugs that ended up more like gameplay features which GZDoom artificially destroys compatibility for? This is extremely bizarre. All instances of this should probably be documented, perhaps so a simple decorate mod can be made which reinstates proper behaviour, even if Salty Member doesn’t like it?

 

Also, and this is a pure side note, but I have no idea why anyone who plays a decent amount of Doom wouldn’t have at least one backup vanilla-esque source port set up and feeling good. PrBoom+, Crispy, Chocolate or even Vanilla itself. I’m sure recall other sweet old vanilla tricks that are too advanced for a basic port like GZDoom to handle, so for the sake of being able to play any mod/wad at any time, you need at least 2 ports minimum installed. (I have GZ installed but I never use it because mouse/player control feels like ass gravy compared to every other port)

Share this post


Link to post
4 minutes ago, Doomkid said:

Are there any other vanilla bugs that ended up more like gameplay features which GZDoom artificially destroys compatibility for? This is extremely bizarre. All instances of this should probably be documented, perhaps so a simple decorate mod can be made which reinstates proper behaviour, even if Salty Member doesn’t like it?

 

Also, and this is a pure side note, but I have no idea why anyone who plays a decent amount of Doom wouldn’t have at least one backup vanilla-esque source port set up and feeling good. PrBoom+, Crispy, Chocolate or even Vanilla itself. I’m sure recall other sweet old vanilla tricks that are too advanced for a basic port like GZDoom to handle, so for the sake of being able to play any mod/wad at any time, you need at least 2 ports minimum installed. (I have GZ installed but I never use it because mouse/player control feels like ass gravy compared to every other port)

I tried to compile my own custom build of GZDoom earlier today with vileghosts enabled to see what would happen.  Sadly, I kept getting an error in CMake that told me to check the log, but here's all the log said.

 

Quote

The system is: Windows - 10.0.19041 - x86

 

Yeah, that doesn't tell me anything :D

 

Perhaps someone else would like to try compiling a custom version of GZDoom that, by default, actually resembles DOOM? :O

 

VZDoom??? :D

Share this post


Link to post

i think that is better just put a disclaimer like ''not *properly* compatible with GZDoom''. Or something more subtle like ''recommended to play with ports that suport *proper* vanilla compatibility''

You are putting a lot of effort on this that ultimately the GZDoom players demography will break it anyway :/

You could try something like @Noiser suggested, thats it, make a DECORATE effect that allow the ghost monster bug to work, somehow.

For sure, i would like to see how the salty member reacts when he found that there is a way to reimplement vanilla behaviour, and even enforce it.

XD

 

But if that too much time consuming, better stick with the basics, pal!

Share this post


Link to post
10 minutes ago, P41R47 said:

i think that is better just put a disclaimer like ''not *properly* compatible with GZDoom''. Or something more subtle like ''recommended to play with ports that suport *proper* vanilla compatibility''

You are putting a lot of effort on this that ultimately the GZDoom players demography will break it anyway :/

You could try something like @Noiser suggested, thats it, make a DECORATE effect that allow the ghost monster bug to work, somehow.

For sure, i would like to see how the salty member reacts when he found that there is a way to reimplement vanilla behaviour, and even enforce it.

XD

 

But if that too much time consuming, better stick with the basics, pal!

I'm fine with leaving the ghost monster thing as-is for now, although I would absolutely love to see this behavior become optional in GZDoom soon.  I still need help with the text screens and MAP07's 666 and 667 triggers.  If anyone here is able to assist me in getting those things working, that would be greatly appreciated :)

 

Also, I definitely will be encouraging players to use ports that provide a proper experience for vanilla/limit-removing maps.  I'm a little unsure about a disclaimer on startup in GZDoom, but if you think that would be a good idea, I might do that :D

 

GZDoom is good for content that takes advantage of its features.  Vanilla content is clearly not what this port wants to run.  If mods can be designed exclusively for GZDoom and similar ports, why shouldn't a vanilla mapset include a disclaimer for one type of port? :D

Share this post


Link to post

Now that dehextra exist, making new monsters, and new things on the good old doom is a possibility.

We are still limited to the vanilla monster behaviour, and it dehacked trickery.

But also ACE exist, so for certain, in the near future, there would be a way to inject abitrary code and change the things we need but without changing the game as it is.

Its a matter of time.

 

So, at this point, GZDoom has become an Engine for development of new games, that its also capable of running Doom.

Its a great achievement on that point, for sure. And it gave us a lot of joy with mods like Cold as Hell and Winter's Fury.

 

But well, as you said, if some are limited to it, why not the opposite?

;)

 

1 hour ago, DCG Retrowave said:

I'm fine with leaving the ghost monster thing as-is for now, although I would absolutely love to see this behavior become optional in GZDoom soon.  I still need help with the text screens and MAP07's 666 and 667 triggers.  If anyone here is able to assist me in getting those things working, that would be greatly appreciated :)

 

About this, you need to add special action definition to the map.

Especifically, ''Map07Special''. Just add that as a new line of code on map07 definition and it should work.

 

Check, this:
https://zdoom.org/wiki/MAPINFO/Map_definition

 

Share this post


Link to post
9 hours ago, Doomkid said:

Are there any other vanilla bugs that ended up more like gameplay features which GZDoom artificially destroys compatibility for?

The closest I can think of is mikoportals, but it hasn't seen wide use (probably because gzdoom doesn't want to support it lol)

Share this post


Link to post
14 minutes ago, DCG Retrowave said:

I'll try to figure out the intermission screens for the next release :D

 

(A ZDoom-specific disclaimer is also planned for the final release so players can't say I didn't warn them :D)

You have to specify the cluster definition at the end of the MAPINFO for that, other wise, MAPINFO will just instantly jump to the next level without showing the text screens.

...

The fuck! I just realice how much time i waste doing MAPINFO edits back then.

Share this post


Link to post
26 minutes ago, P41R47 said:

You have to specify the cluster definition at the end of the MAPINFO for that, other wise, MAPINFO will just instantly jump to the next level without showing the text screens.

I saw that on the ZDoom wiki and it's something I'll need to spend more time with to figure out :D

Share this post


Link to post
19 minutes ago, DCG Retrowave said:

I saw that on the ZDoom wiki and it's something I'll need to spend more time with to figure out :D

The cluster definition defines what, i don't know, but at the last map of the current cluster in my example, 5, the writed text screen will appear. So basically, you put cluster 1 for maps 1 to 6, then a text screen appear with the clusterdef 1, then you put cluster 2 to maps 7 to 11, and clusterdef 2 text will be shown after map11

use this example, its the same for all kind of cluster definition:

 

clusterdef 5
flat AD_GRND1
music D_READ_M
exittext "THUS FAR YOU HAVE SUCCESSFULLY MOWN DOWN
HORDES OF MONSTERS WITH RELATIVE EASE.

CONGRATS.

BUT YOU BETTER NOT GET YOUR HOPES UP,
BECAUSE FROM THIS POINT, THINGS ARE
ABOUT TO GET REAL. THE HIEROPHANT KNOWS
YOU'RE COMING FOR HIS HEAD AND HIS MINIONS
ARE DONE PLAYING NICE.

PREPARE FOR SOME ROUGH ROADS AHEAD."

 

I think that this thing lets you put a text screen wherever you want, so for some kind of more advanced mods it would be kinda useful.

But its kinda redundant to use a text screen when you can show text during gameplay or some kind of scripted scene :/

Share this post


Link to post
3 minutes ago, P41R47 said:

The cluster definition defines what, i don't know, but at the last map of the current cluster in my example, 5, the writed text screen will appear.

use this example, its the same for all kind of cluster definition:

 

clusterdef 5
flat AD_GRND1
music D_READ_M
exittext "THUS FAR YOU HAVE SUCCESSFULLY MOWN DOWN
HORDES OF MONSTERS WITH RELATIVE EASE.

CONGRATS.

BUT YOU BETTER NOT GET YOUR HOPES UP,
BECAUSE FROM THIS POINT, THINGS ARE
ABOUT TO GET REAL. THE HIEROPHANT KNOWS
YOU'RE COMING FOR HIS HEAD AND HIS MINIONS
ARE DONE PLAYING NICE.

PREPARE FOR SOME ROUGH ROADS AHEAD."

 

I think that this thing lets you put a text screen wherever you want, so for some kind of more advanced mods it would be kinda useful.

But its kinda redundant to use a text screen when you can show text during gameplay or some kind of scripted scene :/

So much additional effort to get a "DOOM" source port to do the normal DOOM thing :(

 

XD

 

Thanks so much for the help!  This example is very useful :)

Share this post


Link to post
14 minutes ago, DCG Retrowave said:

So much additional effort to get a "DOOM" source port to do the normal DOOM thing :(

 

XD

 

Thanks so much for the help!  This example is very useful :)

New players get used to it and never know thats not the vanilla or original experience.

But hey!

Its popular thanks to how ''accessible'' it is, and thanks to a lot of Youtubers that lord it as the best thing ever to hapend.

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
×