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
21 stars 1 forks source link

32:9 assets wrong alignement with animated parts. #144

Open Meerschweinmann opened 2 weeks ago

Meerschweinmann commented 2 weeks ago

Hello again :)

After completing the DOOM2 32:9 assets, at the moment i am drawing the DOOM intermission screens.

Unfortunately i have noticed that these 854 pixel wide assets are jumping around with the animated parts.

The 576 pixel wide i had made before do not have this problem.

After noticing it i checked the 854 pixel wide in Woof and Woof has not that problem.

Here is something to look at:

A unfinished WIMAP2 is in there, but it shows fine the problem.

DOOM_ultimate_Widepix854_JN.zip

JNechaevsky commented 2 weeks ago

Oh my, so this rounding up wasn't precise enough. No other ideas what to do yet, and probably I need a small break from Inter.

Meanwhile, I want to experiment with something different -- colored sector light in TrueColor mode. Inter is a bit off for such purposes, though it might be a cool to have some barely tinted colored sectors on vanilla maps, but Jaguar is a perfect field for such experiments. And hooray, first result:

![image](https://github.com/JNechaevsky/international-doom/assets/21193394/737d53bc-21ad-4194-9b6c-3eaf7058a3be)

But under the hood it's not even close to be as simple as GZDoom's UDMF sector coloring. 🤥

Meerschweinmann commented 2 weeks ago

Oh my, so this rounding up wasn't precise enough. No other ideas what to do yet, and probably I need a small break from Inter.

No stress. This is nothing urgent and for the moment i am drawing these assets.

Ah, now i see were you are the last days. Jaguar DOOM continues :) The purple door looks nice!

Truecolor seems to be your passion.

Meerschweinmann commented 1 week ago

Helloho :)

Just for info.

Woof had the same problem with its new 32:9 mode and my Ultra-Widerscreen assets.

Now it is fixed:

add DivRoundClosest function, formatting #1786

JNechaevsky commented 1 week ago

Oh, cool, thanks for letting know! But not now, not now, I'm all in this... 🤩

https://github.com/user-attachments/assets/b37524a8-297f-4f76-a19e-680a628ed412

Meerschweinmann commented 1 week ago

Wow! That looks great. A must have for Inter-DOOM.

Is that your Jaguar DOOM engine? I had build JD after you put your 2.0 branch in the master branch, but did not know which IWAD to use exactly. I have that jaguar.wad from the RD base folder.

Meerschweinmann commented 1 week ago

By the way, i have sent you the latest Ultra-Widerpix854 version at Doomworld. Ignore the wall of text, it is obsolete now :) The last message contains the WAD files for DOOM, DOOM2, Plutonia and TNT.

Some autoload folders contain different versions.

JNechaevsky commented 1 week ago

Is that your Jaguar DOOM engine?

Yep, it's Inter-Doom "on TrueColor steroids".

I have that jaguar.wad from the RD base folder.

No, no, no, no, no. No. Forget that old stuff, it won't work. An IWAD has been reassembled as well to keep original Jaguar lump names and to avoid using uncanonical assets. Here, development but absolutely working version: yaguar-doom-2.0-dev.zip.

There still some things to do, at the moment colored lighting is almost same to PSX Doom (color values and sectors comes from there, but I extended it a bit for more logical look), but blue colormaps needs to be improved to prevent "I don't see a darn thing" situation. Full bright sprites have also some potential improvement for coloring.

Animated skies are there and re-polished to have identical to vanilla placements. Default settings are same to vanilla Jaguar, but in terms of mechanics it's not a 100% Jaguar - explosions and collision detections are more stable like in PC version, and game logics runs on 35, not Jaguar's 20 fps. Nightmare more is not same to Jaguar, it's reasonably challenging.

By the way, i have sent you the latest Ultra-Widerpix854 version at Doomworld

Ah, I'll check it soon. Once I got an itch for colored lighting, I went to yet another introvertic trip...

JNechaevsky commented 1 week ago

A must have for Inter-DOOM.

Wel... 😕 Current implementation have exactly one advantage: it is fast. Engine doesn't need to perform any dynamical calculation for coloring, all colors are basically first rows of COLORMAP (or one index of PLAYPAL), manually crafted and embedded into executable. Next, such data is quickly processed at startup or upon gamma/resolution/widescreen toggling via TrueColor code to compute it's diminishing, then while level loading a special table of "sector-color" is injected. Finally, while drawing, render performs an additional check for sector coloring to prevent "bleeding". This all a game of few milliseconds and costs literally nothing. Please remember, this is still single thread, non-hardware accelerated render.

So what's disadvantages then? Here they are:

Meerschweinmann commented 6 days ago

Good morning,

wow, wow, wow, Jaguar-DOOM looks so great and atmospheric and more alive with colored light and animated skies. Had played some levels before i went to bed yesterday.

I can see that truecolor is your passion and that is a fine thing :)

Isn't there a compatible mapping standard that could be integrated in your engines how to implement the coloring into maps? I know BOOM, Eternity Engine and GZDoom have something similar i had seen in ultimate DOOM builder. So mappers could use that feature without hacking the .exe too.

And the animated sky is the absolute burner!

Would like to see those features coming someday for the Inter-ports too.

And i have seen that the Jaguar-DOOM titlescreen is in 32:9 :)

JNechaevsky commented 4 days ago

I have pulled RFomin's improvement, so intermission elements drawing should be finally precise.

I can see that truecolor is your passion and that is a fine thing :)

Speaking honestly, despite of making some things more complicated, it gives a lot of space for visual improvements. At least not in Inter, which must stand as a "source port", not a "mod". And of course, having 16,777,216 of possible colors is better than having just 256. 🎨

Isn't there a compatible mapping standard that could be integrated in your engines how to implement the coloring into maps?

Nope, nothing for now. AFAIK, sectors can be colored via UDMF map format, but coloring technique is still a huge question. Jaguar maps are still bare bone "Doom in Doom" format, except Jaguar having own linedef specs for key-locked doors, and colored sector using more or less pregenerated color sets, passed through TrueColor code and injected into map sectors by the engine.

Would like to see those features coming someday for the Inter-ports too.

Me too, honestly. Even if it will be started in Heretic (fewer maps), it will give the game a second breath, a colorful soul and much more deeper perception. But I need to figure out how to implement it with different approach, as current one still too hardcoded.

And i have seen that the Jaguar-DOOM titlescreen is in 32:9 :)

Guess who inspired me to do that! 😜

Meerschweinmann commented 4 days ago

I have pulled RFomin's improvement, so intermission elements drawing should be finally precise.

Thanks! It works perfect. Now Inter-DOOM is 100% Ultra-Widerpix854 capable. And i have seen that the 32:9 FOV Problem is solved too. Time to buy a 32:9 monitor to get away those black bars 😁

Speaking honestly, despite of making some things more complicated, it gives a lot of space for visual improvements.

To have truecolor is a big advancement.

Last year i drawed textures and realiized actively that the DOOM palette lacks many colors. So i had to reorganize my textures or change parts of them. And the original DOOM blues are... hmm, i say special.

Nope, nothing for now. AFAIK, sectors can be colored via UDMF map format..

I will later have a look at the Eternity DOOM format in UDB. I know Eternity can do lightning, but i am not sure in which map format.

Me too, honestly. Even if it will be started in Heretic (fewer maps), it

Heretic has 5 episodes plus three levels of a IDCLEV only sixth episode. How do you mean fewer in that case? Tinier levels? But yeah, Heretic with colored Lights and animated skies would be something new.

Guess who inspired me to do that! 😜

And who inspired me with her source port to do the 32:9 assets? 😊

As far as i remember the 32:9 mode was only a test to show a limitation error Inter-DOOM had with the horizontal resolution which caused diagonal wipe effect. After that limitation was gone we saw how nice Inter-DOOM looked and worked in that aspect ratio and you added it as a feature. And so i said, we need super ultra wide assets.

Woof can now do 32:9 too. Perfect Times for ultra wider fetishists 😁.

By the way, i am fiddling around now with drawing between the bunnys extended bunnyscreens. In 21:9 the timing when spiked Daisy is seen is wrong but acceptable. In 32:9 Daisy is seen before scroll. I am in contact with Roman because of that.

After that i will start Heretic and Hexen assets in 32:9. Drawing those assets seems to be a never ending Story. While drawing i learn new techniques. And with new learned techniques i optimise my earlier drawn pictures.

JNechaevsky commented 1 day ago

Hooray, 32:9 story finally ends! There still a case with bunny scroll most-left column of pixels. I'll check it later, probably it should be fine now even without rounding correction. Beware! Such monitor may require additional working table. 😱

I know Eternity can do lightning, but i am not sure in which map format.

Map format itself won't help as my coloring implementation is totally different. It can't use any desired color, it's using basically a ... not even a custom COLORMAP but just a color indexed palette lump (same to PLAYPAL w/o extra indexes), embedded into executable. Technically, if ALL possible colors will be embedded into executable with current aproach, then executable size will grow to additional:

For now, there are just 28 extra colors for sectors, which takes literally nothing to precalculate, inject to level and render in game.

Heretic has 5 episodes plus three levels of a IDCLEV only sixth episode. How do you mean fewer in that case? Tinier levels?

Not exactly. It's literally a "one game" with small levels, while Doom have 1, 2, TNT and Plutonia. It's a huge amount to work with. Hexen, in theory, could be even simpler to colorize, but it's... It's Hexen. 🤥

After that limitation was gone we saw how nice Inter-DOOM looked and worked in that aspect ratio and you added it as a feature. And so i said, we need super ultra wide assets.

Cool, glad it's all was useful! Seeing how you are progressing with art is totally impressive. Honestly, never though it is possible to draw such good way without Photoshop!

BTW, engine now able to support up to 10x rendering resolution, but there is no need to extend current 6x for higher values. It will give mostly nothing than terrible fps dropoffs.

Meerschweinmann commented 3 hours ago

Ouch, 12 GigaBytes bigger executable needs some RAM :) That sounds not so easy to handle.

Not exactly. It's literally a "one game" with small levels, while Doom have 1, 2, TNT and Plutonia. It's a huge amount to work with. Hexen, in theory, could be even simpler to colorize, but it's... It's Hexen. 🤥

Ah, you mean it that way. Has PSX DOOM not all parts with lightning? I really don't know, because i am not that pro PSX DOOM player.

Cool, glad it's all was useful! Seeing how you are progressing with art is totally impressive. Honestly, never though it is possible to draw such good way without Photoshop!

To be honest. If someone had asked me to do widescreen assets last month, i had no glue how to do that. I am surprised everytime i have done a new picture that it seems to work what i do with GIMP. I am surely not that super-pro asset drawer.

BTW, engine now able to support up to 10x rendering resolution, but there is no need to extend current 6x for higher values. It will give mostly nothing than terrible fps dropoffs.

10x sounds nice. But the truth is, that my Ryzen 8700G is good enough to hold 4x with high stable framerates, but 5x gives the Ryzen hard times to dip not below 140fps @32:9.