Advertisement Jump to content
Sign in to follow this  
Bow_vernon

dealing with GUI (HUD) at different screen resolution

This topic is 1835 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi guys, as usual, gamedev.net is a hangout place for masters in game dev. Thus here I am, asking for your wisdom.

I'm at the stage of develoing a GUI system, and HUD (are those two different? :p I think HUD is more to show states/value, and GUI is more like input/output to acommodate user input). But now comes the confusing part. How do you deal with drawing GUI/HUD at different screen resolutions? Do you stretch them to enforce consistent screen occupancy? or...how? currently I have looked at only 1 games so far (linux, man). it is an Action RPG (Secret of Ultimate Legendary Finally Unleashed / SOULFU). Here's how I think that game solved this problem.

 

SOULFU handles this by stretching image as to conserve screen space used. However, this could work since they only support 4:3 screen ratio. Plus it gets blurry if we select fancy screen resolution (such as 320x240) it gets horribly blurry. But it kinda works for bigger resolution, I didn't notice too much difference. But they don't seem to handle cursor movement scaling. In lower resolution the cursor travels faster than in large resolution. How would one usually handle this case?

 

I'm asking you experienced gamedev, How would you solve this intriguing case of differing screen resolution? thanks before. Pardon my english, I'm not a native english speaker :p

Share this post


Link to post
Share on other sites
Advertisement

But they don't seem to handle cursor movement scaling. In lower resolution the cursor travels faster than in large resolution. How would one usually handle this case?

 

You could eigther use a float for sub-pixel precision or just store the cursor position in a range of the displays native resolution (e.g. 2560x1600 for my 30''), regardeless of the used resolution. If you need to do something like this, it mean you are already taking complete care of the cursor yourself, are you sure you need that and can't just rely on eigther the OS cursor or something like the DX9 hardware cursor? Then you wouldn't have to care about this.

 

Regarding the other parts of the UI, I'd start by specifiying all elements in relative (0,0 to 1,1) instead of fixed. Also, you should allow elements to have a different alignments (e.g. is snapped to the lower left corner of the screen with a certain offset). Another way to ensure everything looks good is to allow widgets to maintain a certain ration themselfs (e.g. width is 0.5f of the resolution, and height is 1/3 of that for the chat-box). Then, depending on how you want ot draw the HUD, you can eigther use different graphics for different resolutions (e.g. use a 128x256 texture for message boxes when the resolution is < 1027x768, for everything above use a 256x512-variante so it doesn't appear blurry), or you could draw certain elements as a composition of "tiles" (e.g. a button with fixed corners â 5x5 pixels, the body and the other borders get stretched or repeatedly drawn = tiled).

 

Hope some of this is helpful to you.

Edited by Juliean

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!