Sign in to follow this  

dealing with GUI (HUD) at different screen resolution

This topic is 1464 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

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

This topic is 1464 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.

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

Sign in to follow this