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

Quirks of the Brightness Transfer

Recommended Posts

So, I tested my boom-compatible map in Eternity after testing it in ZDoom, and noticed some differences with how the "Floor/Ceiling Brightness to this brightness" actions work.


1. In ZDoom, a floor/ceiling affected by the brightness transfer will always have the same light level as the source sector. This also means that transferring a flickering sector's brightness to multiple sectors will make the flicker sync up. In Eternity, all affected sectors will flicker separately desynchronized, just like multiple flickering sectors would. Is this just an oversight, or is it tied to some deeper differences between Eternity and ZDoom?


2. In ZDoom, transferring ceiling brightness changes the ceiling brightness of the affected sectors, and only that. In Eternity, it apparently affects the actors inside the sector too. Is that a bug or what? It would certainly make more sense to me if the ceiling brightness transfer only affected the ceiling.


I'm not sure what to do with my map. I guess I could give up on some of the special effects to make it less buggy for people using Eternity and other ports with this behavior, but then everyone would have to deal with a CEIL4_1 sky messing with their immersion. Unless I threw in even more vanilla-compatible quirks to make it work somehow? I'm not sure about that.

Share this post

Link to post

Eternity's reference port is PrBoom+, not ZDoom. If anything is different from PrBoom+, then it's a bug. I'll come back with more info on your questions later. Until then, can you please check how your wad looks in PrBoom+? If it can run it.

Share this post

Link to post


Now I've tested your two cases and here's what I saw:

  1. I tested the floor transfer special in the Doom format and the lights were always correctly synchronized. I used the classic Doom light patterns (non-sync strobers, defective electrical light, flickering fire light). I didn't yet get to test UDMF due to lack of tools on Mac, but I see that it still needs a linedef special to have exact sector light copying (i.e. what UDMF gives you extra are only some static light changers, not sector-driven). Is your map under what format? Doom, Hexen or UDMF?
  2. Sprite brightness under software PrBoom+ and Eternity is the average of the floor and ceiling light levels, not the nominal light level of the sector. I've noticed that GLBoom+ is different, it just uses the sector light level. So if you have a sector with 64 light level, but a floor lit up to 224 brightness, things inside it will look lit at 144 units in software PrBoom+/Eternity and quite dark at 64 units in GLBoom+.

Side note: I may retract a bit from saying the reference port is PrBoom+: more accurate is to say MBF, for any changes added in MBF but ignored by the PrBoom team. Anyway this is just my opinion, based on experience of decisions made so far with this port (in this case is irrelevant, as sprite brightness is the same in PrBoom+ anyway).

Share this post

Link to post

Thanks for the response!


I'm mapping in Doom format. It should be compatible with PrBoom, but I had trouble getting PrBoom to work correctly in the past so I didn't try it and just used Eternity to test my Boom maps. But maybe I'll have better luck with PrBoom now.


I see, the average of floor and ceiling makes sense. The area I was concerned about had light level 0 on the ceiling, and maybe 160 or 128 on the floor, so the things still looked really dark unless approached closely. I guess I could find a way to work around that.


So the transferred floor light levels were synced up correctly? Both with each other and the source sector? Does it apply equally to transferred ceiling brightness? That's what I had issues with in particular.

Share this post

Link to post
9 hours ago, Scypek2 said:


So the transferred floor light levels were synced up correctly? Both with each other and the source sector? Does it apply equally to transferred ceiling brightness? That's what I had issues with in particular.

Checked with ceiling too, no desync there either.


Also I've noticed that ZDoom has its own interpretation, which unfortunately is too late to fix, because of the mods depending on it: in ZDoom, the sprites get the light level of the floor. Even if they're high in the dark ceiling.

Share this post

Link to post

I just made a test map and indeed, transferred brightness syncs perfectly.


But on my map, it doesn't.


So I copied that part of the map and put it in a separate map... and then it started working perfectly too. While still being broken in my map. Now I have no idea what to think anymore. Would there be any reason for it to work with sector #50 and linedef #150, but not with sector #2000 and linedef #15000? Because I can't see any other difference between my two maps.


Here are my two maps, the "smallmapsync" being the extracted piece that somehow works now, and "bigmapdesync" being the entire map with only minimal changes like moving the starting position.


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