JNechaevsky / international-doom

Small, functional and simple source ports, created with help, efforts and bits of code from people around the world.
https://jnechaevsky.github.io/inter-doom/
GNU General Public License v2.0
30 stars 2 forks source link

[Feature] Global MAPINFO support #113

Closed NightFright2k19 closed 9 months ago

NightFright2k19 commented 9 months ago

I know I'm leaning out of the window quite a bit with this, but here it goes:

Hexen's MAPINFO format is pretty much what ZDoom used in its infancy stage. Even in its original form, it offers a lot of possibilities. If it were available also in Inter-Doom and Inter-Heretic, life for vanilla mappers would become a lot easier. The nightmare that is HEHACKED could be disregarded. More complex episodic structures with secret exits deviating from vanilla would become possible. Support for masterlevels.wad. Just to name a few options.

For Crispy, such a thing is most likely out of scope, but you seem to take a few more risks and liberties here. It could be one, if not THE feature which makes International stand out from the crowd. (I remember someone wanted to bring DMAPINFO from Doom Unity to Crispy, but didn't see it through. Kinda indicates it's not an easy task.)

This is for your humble consideration and probably rather something meant for the time after Inter-Hexen has become final and official. Maybe it can/should be discussed with a few more users here in the meantime. Any sort of opinions are welcome and appreciated.

Meerschweinmann commented 9 months ago

Even i can't say how realistic it is, but umapinfo or something equal would not be wrong in the future. The BTSX 3 preview for example uses an umapinfo lump and who knows which future Vanilla compatible wads will do that too. Both SIGIL wads use mapinfo lumps too when i am not wrong.

But first there are two new Inter-ports to release before speaking of new features, even Julia seems to be highly motivated everything regarding her sourceports :)

NightFright2k19 commented 9 months ago

I don't want Julia's poor head to explode. The request isn't new and in Crispy it didn't get very far. So wouldn't expect this to be a walk in the park.

It's still attractive to have even in a conservative port since technically, MAPINFO is a vanilla feature. And introducing it in Doom and Heretic wouldn't make those games less vanilla-ish. Especially Heretic would profit massively from it since its moddability is very limited unless you are using (G)ZDoom.

But yes, as I've stated initially, this is something to consider as a possible future goal. The idea of a somewhat more moddable vanilla-style port wouldn't be the worst. Right now I'd consider International something like Crispy+, the visual bling-bling edition. Feature-wise it's still very similar to its sister port(s). Some clearer distinction might help to put it even more in the spotlight. But I don't want to talk it down - being able to play vanilla Heretic or Hexen in 600p or higher, in truecolor even, is not a little achievement.

Meerschweinmann commented 9 months ago

The other side is, which mapinfo to choose. There are several types and mappers use here this and there that. MAPINFO is as you said a vanilla feature, which is a big step forward for those games that don't have it. DMAPINFO is the official new mapinfo which was used in the rerelease, but zmapinfo and umapinfo seem to be used more in future? For someone who put effort in such thing it should not be a waste of time.

being able to play vanilla Heretic or Hexen in 600p or higher, in truecolor even, is not a little achievement.

And because that and the rest of its feature set is not a little achievement, we use the Inter-ports to play our loved games and discuss about this ports here and not elsewhere. I like to say Inter is a Crispy on steroids. And that is a very good thing, because the Crispy ports are good ones and Inter got some really nice features on top :)

kitchen-ace commented 9 months ago

In my PR for a HHEVER lump for Crispy Heretic, @rfomin suggested UMAPINFO would be a better solution to naming things. So, the idea is maybe not out of the question for Crispy ports, or at least Heretic. It's quite a significant change to the code though, especially for Heretic which doesn't have all the extensions that Doom has gotten.

Meerschweinmann commented 9 months ago

Umapinfo would be nice! Dumb question, ist umapinfo backward compatible with the mapinfo lump for those Maps which only have mapinfo?

kitchen-ace commented 9 months ago

ist umapinfo backward compatible with the mapinfo lump for those Maps which only have mapinfo?

Unfortunately not. Are there any Heretic wads that would work with Inter-Heretic that use MAPINFO though? It is possible to make UMAPINFO lumps for older wads, which is a thing that some people on the DoomWorld forums do for Doom.

Meerschweinmann commented 9 months ago

Are there any Heretic wads that would work with Inter-Heretic that use MAPINFO though?

Probably not. It was more an general compatibility question. I have seen DOOM maps with mapinfo, but not umapinfo lumps.

NightFright2k19 commented 9 months ago

For vanilla projects, you normally don't need umapinfo. It's rather for cases when things deviate so much it can't be done with DEHACKED, e.g. a map07special in a different map slot, relocated secret exits, start an episode at a later level and things like that. Masterlevels.wad is a good example.

Regarding what mapinfo needs to provide, even the original, although basic Hexen format would already be a great step forward in Doom and Heretic.

JNechaevsky commented 9 months ago

Well... Not that I want to disappoint you, but both MAPINFO and UMAPINFO are something highly below my knowledge, and I'm afraid - my scope. At the moment I don't have any plans even to investigate it, preferring to keep port(s) on something like Crispy+ standards.

Lack of BOOM/MBF/MBF21 support lays on same plane: every time I was trying to read it's code even on clean modern Woof implementation, my eyes goes wild: it's a layers of compatibility-over-compatibility and conditions-over-conditions, as well as heavily modified vanilla level and render specifics handling. Also, I never was a Boom-interested person, so... 🙁

If UMAPINFO will appear one day in Crispy, I'll gladly copy it, but until that day let's just enjoy nice Inter menus.

Meerschweinmann commented 9 months ago

My personal opinion is, that even Hexens Mapinfo in DOOM and Heretic would be a useful addon for vanilla mappers and would make the Crispy/Inter ports eventually more interesting for a wider audience. So lets see If something will come up in Crispy. If someone integrates umapinfo to Crispy even better. A dmapinfo attempt was there but unfortunately aborted. As far as i can assess Julia's motivation, she is probably the last person who won't integrate it when something is showing up 😊

Lack of BOOM/MBF/MBF21 support lays on same plane:

That was never a problem for me with the Crispy/Inter line of ports. The solution for this is Woof, Eternity Engine and so on. BOOM/MBF features have nice possibilities, but they make vanilla or limit-removing maps not uninteresting when we look at KdiKdiZD or the BTSX series. I find it even more interesting when mappers push vanilla beyond its limits that i think it is a boom map or something more advanced. The only thing i wished vanilla DOOM had back in the days are the Line to Line teleport actions that came with BOOM for fake room over room.

And for now Julia is doing very good in delivering Crispy+ as we can see with todays Inter-port builds.

NightFright2k19 commented 9 months ago

I thought as much. If it were that easy, we'd have it everywhere already. What it'll probably take is a dedicated person who's doing a magic pull request and it's done.

I mean, at least there's HEHACKED for Heretic. It can't do much, but more than nothing. ^^

NightFright2k19 commented 9 months ago

I will put this aside for now. As soon as we see any chance by the creative input of some mapinfo fanatic, we can come back to this. ^^