Is widescreen only resolution ok?

Started by
5 comments, last by Daaark 11 years, 8 months ago
Hi

Im making a 2d game with lots of interface (its manegement/strategy so loads of buttons, tables etc). The thing is its very time consuming to code it for several resolutions as i must rearrange all the UI elements to fit both widescreen and non-widescreen resolutions.

But how bad is it to only allow for widescreen resolution, as long as you leave windowed mode allowed as well? I now run it in 1360x768 which is standard for new laptops and most desktop monitors can handle it (or larger). Should i feel i must make support for 1024x768 as well?

What are your thoughts?
Thanks
Erik
Advertisement
Widescreen is not as well defined as you may expect, making the question difficult to answer unless with a "no, don't force a resolution or aspect ratio". There are many different aspect ratios. For example, my 1920x1200 is not a very uncommon resolution, and it's a 14.4:9 aspect ratio and not a 16:9 as you may have expected from a "widescreen" monitor.

Is there anything stopping you from using letter-boxing to design the UI? For example, design it with 16:9 in mind, and center the design on the users window. An anchor-based design, or a combination with letter-boxing, may also be an option. For example, an action bar that is supposed to be centered on the bottom edge of the window is designed and placed so that the bottom center point of the action bar "window" is located on the bottom center point of the screen. Likewise, a main game menu that is supposed to be centered on the screen is designed as usual and placed so that its center point is at the center of the screen.

Normalized coordinates for overall design, absolute pixel coordinates for precision placements and size for details, along with anchor points can go a long way, and it is more or less entirely resolution and aspect ratio independent.

Restricting the resolution is an effective way to restrict your user base as well.
1920x1200 resolution is usually refered as a 16:10 widescreen not 14.4:9

But anyways it is a good idea to allow both windowed and fullscreen on any resolution the user wants. What I usually do is just make the ui elements for a completely square resolution and put different elements x pixels from certain border of the window...For example you could set the HP/MP/Portrait 20 pixels from the left border and 10 pixels from top border. And another part of the interface 20 pixels from right border and 10pixels from top and so on.

This way if the user has wider than square resolution(most likely) the gap in the center between the ui elements just gets a little wider. You don't have to strech anything and it will still look ok. Ofcourse to make it even better you could allow the user to move the ui elements around either by holding down a key and drag&drop or some kind of menu or somesuch system.

If you desing the ui like this with every element positioned relative from two borders you only need to make one desing that fits the most narrowest aspect ratio and it automatically scales to wider ones.

Edit: And as far as I can tell most AAA games that I have played do it exaclty like this.
The best option is to let the user run at any (reasonable) aspect ratio. Letterboxing is the easiest and should always work. Assuming everyone has a wide screen isn't safe; for instance my main PC at home still has a 4:3 monitor, and I'm a developer. Why keep the dinosaur screen? It's a good size, bright colors, and it hasn't blown up yet!
The option I go for is enumerating the available resolutions and giving those to the user. As far as GUI and HUD placement, I treat the screen as a 0.0 to 1.0 surface, or say 0-100 etc.. the point is screen resolution abstraction, making it independent of the resolution, or aspect ratio for that matter. So then all your GUI/HUD stuff is placed onscreen in terms of this pseudo-resolution. Naturally this incurrs some sort of 'warp' as the aspect ratio changes between screens and window sizes, but this can be resolved by using native pixel scale for the dimensions of various elements, and the abstracted resolution is only used for positioning.

At the end of the day you just have to multiply your 0.0 - 1.0 element XY positions with the screen's actual resolution to produce the actual pixel position.
I'd also vote for letterboxing and also to not change the native desktop resolution for a 2D game. The problem with doing so is that it most probably degrades image quality as both modern LCD monitors and TV sets as well as graphics cards will try their "best" to make the scaled image look as good as possible. This more often than not results in a blurry mess that might work fine for films but really hurts the display of texts and details.

Another issue that makes it even harder to try and compensate for different aspect ratios in a 2D game, is the field of view of your game. Depending on the genre and the general gameplay the game experience may vary considerably depending on how much you are able to see on the screen. Long story short: use a virtual coordinate system for UI element placement and possibly display and keep the aspect ratio the game was designed for (i.e. use letterboxing) if the field of view matters in your game.

I'd also vote for letterboxing and also to not change the native desktop resolution for a 2D game. The problem with doing so is that it most probably degrades image quality as both modern LCD monitors and TV sets as well as graphics cards will try their "best" to make the scaled image look as good as possible. This more often than not results in a blurry mess that might work fine for films but really hurts the display of texts and details.

Another issue that makes it even harder to try and compensate for different aspect ratios in a 2D game, is the field of view of your game. Depending on the genre and the general gameplay the game experience may vary considerably depending on how much you are able to see on the screen. Long story short: use a virtual coordinate system for UI element placement and possibly display and keep the aspect ratio the game was designed for (i.e. use letterboxing) if the field of view matters in your game.
You can combat these effects by rendering the game onto a texture, then centering that texture on the screen.

In 4:3, your texture takes up the whole screen.
In 16:9 and 16:10 your texture takes up part of the screen, and you can draw a background, or whatever else you light around it.

You can allow the user to scale and position the texture as they see fit.

This topic is closed to new replies.

Advertisement