I got a silly notion last night, wondering if it would be possible to have a Dark Souls-style "You Died" screen pop up in SS2 when you die.
The challenge of this is displaying a message that fills the screen, that's resolution-independent, maintains the same orientation no matter which way the player object is flopped around, and can have its scale and transparency animated. Dark doesn't want to let us do any of these things. Not easily anyway.
At first I thought attaching a cube to the player with the message on the inside might work, but this clips into the terrain, so that won't work.
Using the camera attach system to put a flat plane in front of the player almost works. This is how the compass overlay is attached to the player. It's
supposed to not clip into the terrain, but for some reason when this was used for a screen-filling transparent object, it clipped into the terrain anyway. Somehow this was fixed by configuring the attachment to place it VERY close to the player camera. I don't know why this makes a difference, but it does.
But that still didn't quite work, because there's no way to configure camera-attached objects to always face the player. There are options for locking various rotation axes, but none do what I needed. So the message would spin and wobble as the player turned and looked up and down.
The solution: instead of a flat polygon, camera attach a bitmap object. These always face directly at the player. It turns out that if you set up an object for an animated bitmap, but leave off all the animation properties, you basically get a simplistic worldspace bitmap. Maybe a worldspace bitmap would have worked here too.
Also since the fade-to-black when you die also fades out any camera attached objects, that fade had to be disabled, since I wanted the message to be full brightness even as the background was blacked out behind it. The fade to black is now handled by the background of the message overlay. But that means if you're playing on an ultrawide monitor, the sides of the image won't be covered. Oh well.
And the final challenge, HUD overlay elements display on top of everything. This meant that if the player got killed while for instance looking at the automap, the "YOU DIED" message would be completely obscured behind it. So I had to hide all overlay elements. That part was easy. The hard part was
restoring the overlays after the player respawns. To simplify things, I ended up noting whether the player is in use or shoot mode when they die. If they die in use mode, shoot mode is forcibly activated. I didn't want to do this because it makes an audible kerchunk sound when the player respawns, but it's the cleanest way to deal with the dozen or so different overlays that could be active in use mode. The alternative would have been trying to sensibly preserve whatever UI state the player was in. E.g. MFD and PDA panels would be fine to keep open, but container, keypad, etc, panels would have to be shut off, yadda yadda. Madness.
Anyway...
https://www.youtube.com/watch?v=khJQEosEergEDIT: Testing complete, posted to the mods forum.