lethal-guitar / RigelEngine

A modern re-implementation of the classic DOS game Duke Nukem II
GNU General Public License v2.0
914 stars 60 forks source link

Widescreen HUD? #843

Closed OpenRift412 closed 2 years ago

OpenRift412 commented 2 years ago

Something that always seemed out of place about playing in widescreen is how there's a large chunk of the space on the bottom-left side where the HUD just stops. The idea with the original HUD was that it was a picture-in-picture situation, as I'm sure you know, while this effect is currently broken in the Rigel Engine. Are there any plans on extending the existing HUD so that it better fits the wider ratio and the intended look?

lethal-guitar commented 2 years ago

Yeah I've been thinking about this quite a bit. Truly extending the HUD is a bit tricky because it would involve making new artwork. I'm sure it's also possible to make something new out of the existing textures (i.e. combining different parts in new ways) but it probably doesn't look as good as something tailor-made. I'm no good at pixel art (or any art, really πŸ˜„) so this would be something where I need help from someone more skilled at that.

There are some other possibilities though. What I've been experimenting with is this:

RigelEngine_2022-03-25_150821

So the right-hand side of the HUD is gone and the relevant information is shown via overlays instead, with only the bottom part remaining. I believe this improves the widescreen mode already because:

  1. The HUD can now always be centered, especially useful in ultrawide
  2. More of the horizontal screen real estate can be used.

A downside is that the part to the right now looks a bit wrong, of course. So it's not ideal but maybe that can be fixed (but again, would require new artwork).

You could imagine taking this even further, and turning the remaining HUD information (score, weapon, ammo, letters) into smaller overlays as well, or maybe show all of that in a smaller format inside a small black strip at the bottom of the screen, similar to Crystal Caves/Secret Agent. So basically move away completely from the classic HUD, and replace it with a more minimal version. I would still offer the classic HUD as an option of course.

One other possibility would be to simply make the bottom-left part of the classic HUD stretch out longer to cover the entire width of the screen, basically making the section with the score display wider. That would not require any new art, and retain the original design intent somewhat, but I think it might look pretty ridiculous once you get into ultrawide territory.

Let me know what you think!

OpenRift412 commented 2 years ago

One other possibility would be to simply make the bottom-left part of the classic HUD stretch out longer to cover the entire width of the screen, basically making the section with the score display wider. That would not require any new art, and retain the original design intent somewhat, but I think it might look pretty ridiculous once you get into ultrawide territory.

Let me know what you think!

I think this would probably be the best strategy for this. It would look ridiculous in ultrawide, but so do most retro games, really. I'd say that for ultrawide you could include the status bar/overlay approach as an option to accommodate, then have some tiling textures fill the black spaces on the black corners.

Is the HUD graphic all one sprite? If so, could you send it to me? I haven't had any luck finding it in the resource files.

lethal-guitar commented 2 years ago

Is the HUD graphic all one sprite? If so, could you send it to me? I haven't had any luck finding it in the resource files.

It's three separate sprites, stored as frames of actor number 77. Any tool that can extract graphics from ACTORS.MNI should be able to extract it. I'll post it here tomorrow!

OpenRift412 commented 2 years ago

Is the HUD graphic all one sprite? If so, could you send it to me? I haven't had any luck finding it in the resource files.

It's three separate sprites, stored as frames of actor number 77. Any tool that can extract graphics from ACTORS.MNI should be able to extract it. I'll post it here tomorrow!

Alright, thanks. Also, here's a little proof of concept I whipped up in Photoshop. Rigel wideHUD

lethal-guitar commented 2 years ago

Nice, that looks good! πŸ‘πŸ» Good idea to keep the part with the two blue arrows in its original position. In my head, I saw that part moved to the far left but I think your version looks better.

Here are the sprites:

actor77_frame2 actor77_frame0 actor77_frame1

lethal-guitar commented 2 years ago

I've implemented a prototype of your mockup: RigelEngine_extended_hud_wip.zip

Just one little tweak, I removed the gray part on the far left side. Let me know what you think!

OpenRift412 commented 2 years ago

I've implemented a prototype of your mockup: RigelEngine_extended_hud_wip.zip

Just one little tweak, I removed the gray part on the far left side. Let me know what you think!

Looks really good! Definitely a lot more fitting for widescreen ;)

lethal-guitar commented 2 years ago

Looks really good! Definitely a lot more fitting for widescreen ;)

Cool, I'll try to merge this pretty soon then. Thanks for testing.

OpenRift412 commented 2 years ago

Oh and by the way, here's a graphic for the ultrawide HUD, in case you're still interested in implementing that! Should fit in both 16:9 and 21:9. SBAR HUD

lethal-guitar commented 2 years ago

Oh and by the way, here's a graphic for the ultrawide HUD, in case you're still interested in implementing that! Should fit in both 16:9 and 21:9.

Awesome, thank you, that's great! I'll definitely make use of that. I won't work much more on the HUD for now, as there are some other things I'd like to get out of the way first, but I'll get back to it after that!

lethal-guitar commented 2 years ago

@OpenRift412 I've implemented your ultra-wide HUD as well as the bottom part + floating overlays variant. You can now choose between HUD styles in the options menu.

Let me know what you think πŸ™‚And thanks again for making that ultra-wide HUD graphic! RigelEngine_hud_styles.zip

OpenRift412 commented 2 years ago

@OpenRift412 I've implemented your ultra-wide HUD as well as the bottom part + floating overlays variant. You can now choose between HUD styles in the options menu.

Let me know what you think πŸ™‚And thanks again for making that ultra-wide HUD graphic! RigelEngine_hud_styles.zip

Looks great! Thanks for the chance to implement my design!