Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect incompatible wads and provide user feedback #799

Open
pbdot opened this issue Jan 6, 2025 · 8 comments
Open

Detect incompatible wads and provide user feedback #799

pbdot opened this issue Jan 6, 2025 · 8 comments
Labels
implementation Change or improvement to how an existing feature is implemented

Comments

@pbdot
Copy link
Collaborator

pbdot commented Jan 6, 2025

GZDoom wads may load into title, though if they don't have map info, or don't use MAP01 starting a new game loads into Doom2 MAP01, for example. Even if these maps load, unlikely they will work properly and probably better just to message this to the user.

Detecting things like hexen map format, zscript files, map infos, etc and providing an informative message box would help at startup. It would also make it less like an "engine crash"

We can't currently load wads into the engine on the fly, so this is an application error state.

@LoboEire
Copy link
Collaborator

LoboEire commented Jan 6, 2025

Sounds good, but personally I would prefer it to be toggleable: I occassionally load up gzdoom maps in EC for comparison of rendering stuff like geometry, texture/flat and fog/lighting.

@dashodanger
Copy link
Member

dashodanger commented Jan 6, 2025

We do have the "udmf_strict_namespace" CVAR to enforce this kind of thing for TEXTMAPs; I imagine these detections could be collectively rolled up into that CVAR (as well as renaming the CVAR to reflect the broader scope of checks)

@pbdot
Copy link
Collaborator Author

pbdot commented Jan 6, 2025

I think this might tie into the concept of having a define like EDGE_SHIPPING which is defined for releases, so can disable some developer flags and other logic, making them nicer for users.

@dashodanger dashodanger added enhancement New feature or request implementation Change or improvement to how an existing feature is implemented and removed enhancement New feature or request labels Jan 7, 2025
@pbdot
Copy link
Collaborator Author

pbdot commented Jan 9, 2025

I am curious which wads actually load? They all seem to crash for me in various ways, be it hexen format, image offset error (brightmap?), etc. If we are able to get into a map, it will act flakey due to missing ACS, ZScript, etc. This makes the engine seem flakey to users who inevitably are going to try and load these maps and mods.

It seems that the map could be loaded into GZDoom itself for comparison purposes, or exported from UDB so can be loaded?

Toggles for this kind of behavior increase maintenance, testing, and make it harder to improve things, so that should be carefully weighed.

@LoboEire
Copy link
Collaborator

LoboEire commented Jan 9, 2025

My bad, I should have been more specific. I'm talking about UDMF generally.

And the toggle would be as simple as:

if (mapformat_permissive.d_)
{
    // warning message in log file or whatever
}
else
{
    // Detection of things like hexen map format, zscript files, map infos, etc
   //   which actually will need increased code, maintenance, testing etc.
}

The awkward part with this issue is correctly identifying problematic wads.
Hexen map format easy enough. But a wad which contains gzdoom-specific lumps doesn't mean the wad is only for gzdoom: as an example off the top of my head I've seen DBPs which had several different port-specific lumps inside which would only come into play depending on what port it's loaded into. There was at least one which had Gzdoom decorate, EC ddf, dehacked and possibly even Eternity IIRC.
I personally even had some K8Vavoom lumps in AEM for a while ;)

@pbdot
Copy link
Collaborator Author

pbdot commented Jan 9, 2025

Ok, so when we detect a problematic wad, how about a a dialog that says something like "Unable to load this GZDoom map, though have you checked out these EDGE-Classic exclusives?" ... which opens the users browser to the ModDB page? :)

@LoboEire
Copy link
Collaborator

LoboEire commented Jan 9, 2025

Hexen format, I'd show a dialog message and then abort.
For most other stuff, I'd show a warning dialog but let them continue just in case.
My 2 cents.

I know ketmar goes straight to the extreme in k8vavoom, and it's annoying as hell: he can handle almost all gzdoom stuff except zscript, and if he finds that lump then it aborts (a lot of times zscript is just minor fluff, basically an enhancement of dehacked for scenery things i.e. not actually necessary).
But even so, there is a secret parameter to allow the wad to load.

@LoboEire
Copy link
Collaborator

LoboEire commented Jan 9, 2025

BTW, the image offset error is most probably a texture which uses PNG patches IIRC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
implementation Change or improvement to how an existing feature is implemented
Projects
None yet
Development

No branches or pull requests

3 participants