I'm unsure as to what people prefer when it comes to HUDs, and scaling them. What would you say is the best practice when it comes to sizing the HUD? I'm thinking there's really two options: Scale up, or use the same area (in pixels) to display it on a higher resolution.

The problems I see with each are with scaling, I may have a huge blurry mess in the corner, but if I don't, it could be hard to see from a distance. Any guidance?

up vote 5 down vote accepted

If you're making a PC game you may want to consider giving the player control over UI scaling themselves. For instance most MMOs allow the user to add a UI scale to make everything bigger. This is because the dpi of a PC's display can differ heavily from person to person. Some players like everything to be tiny, but many other players will be physically unable to read the text at that scale. If your HUD can be deconstructed as multiple "windows" you can probably scale each window seperately, while attaching it to the correct point on the screen (bottom middle, upper left, etc).

It depends, if your HUD is an integral part of the design you'd obviously want to scale it up (or rather down - mipmapping and multiple versions of the same resource will somewhat alleviate the quality loss problem). If it's merely to get information to the user I'd try to steal as little screenspace as the HUD allows while at the same time ensuring maximum readability as your assets won't be blurred.

An alternative is having a fully 3D/Vectorized HUD, in that case you won't suffer quality loss as it always gets rendered to native resolution.

  • another advantage of rendering the HUD in 3D space is that graphics cards should be able to make your game stereoscopic for free (or so I've been told). – Aaron Brady Aug 31 '10 at 6:25

As Kaj mentioned a 3d modeled HUD is a good solution because it can scale. It also has the benefits of allowing you to 'shake' the player by moving the camera position around slightly (think of a car crashing and the drivers head slamming forward -- you can give the player some of this effect with just a few frames of movement).

Something that will help when designing your HUDs is to use normalized screen coordinates rather than pixel coordinates. If you use pixels, you need to account for all the possible resolutions you want to support... no fun.

Instead, choose and origin (say, the bottom left of the screen) and call it <0, 0>. The top left of the screen would be <0, 1> and the top right would be <x, 1>, where x is dependent on the aspect ratio. For example, at 1680x1050 the aspect ratio is 16:10 so x would be 1.6.

Now you can design your UIs in normalized screen coordinates and they won't be stretched/skewed when the aspect ratio changes, and they'll scale perfectly regardless of the resolution. The only adjustments you might have to make are for 3 or 4 aspect rations (4:3, 5:4, 16:10, and 16:9 probably). You can even alleviate that by allowing things to be anchored to the right hand side of the screen.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.