800x600 is just dreadful

Miscellaneous Forums/General Discussion/800x600 is just dreadful

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

SSwift: I think in the bigger picture, and maybe I'm ahead of myself here, although there are many reasons why widescreen is better for the eyes than other aspects I still think that a time will come when widescreen is so widespread that people will start to think of taller screens as the new novelty. With my widescreen display, although I like it, sometimes when I see a 4:3 screen of the same width I can't help but want that extra screen space.

vinylpusher: I disagree. You cannot assume aspect ratio ever at all if you want to be 100% accurate. On my widescreen display for example there is a 1024x768 mode at 4:3 aspect and a 1024x768 mode at 16:9 aspect. Although the o/s knows the difference between the two BlitzMax does not provide that information, so choosing that mode is a hit or miss as to whether it is stretched or not.

The number of pixels across the screen compared with the number of pixels down the screen does not give you the aspect ratio of the screen itself. It is meaningless information if you don't know the physical proportions of the display.

IF ALL of your modes are the same aspect ratio, e.g. 4:3, so you have a display which shows only 640x480, 800x600, 1024x768 etc, THEN you can assume that no matter which resolution you choose they will all be the same aspect, and that if the manufacturers are doing things right and the user hasn't changed the settings (e.g. on-screen display settings), you can presume that the ratio of pixels across to pixels down is the same as the ratio of inches across to inches down. When these two measurements match, the aspect ratio can be deduced from the pixel ratio.

Also I have a 1440x900 mode which is at 16:9 ratio - that's the LCD's native resolution. If I try a 1024x768 mode at 4:3, I get black bars as appropriate at the sides. Relative to each other, the 1440 mode and the 1024 mode actually are proportional to each other. The amount of physical screen space they take up is the same ratio as the number of pixels across compared to the number of pixels down. So if you switched from 1024x768 to 1440x900 you would not have to worry about stretching your graphics. You'd get more screen space but the proportions of that screen space stay the same, like adding extra `canvas` space around an image. The pixel resolution stays matched to the ratio of physical width and height. But that only happens because the manufacturer has deemed that the modes are consistent in that way.

But they do not always match. My other 1024x768 mode is at 16:9 aspect. Clearly this is a problem. The number of pixels across compared to the number of pixels down (the pixel aspect ratio) is different to the number of inches (or whatever) across and down that the display actually consumes. So now the graphics are stretched horizontally and you can't get the aspect ratio from the pixel ratio.

A third scenario is where the user manually adjusts the proportions of the display in an attempt to utilize the full space of their CRT monitor or maybe the way their graphics card works. I have used some computers where if you adjust the display settings for one resolution it applies to all of them even if the other resolutions have different aspect ratios or pixel ratios, resulting in other modes suddenly being the wrong size, stretched funny, or whatever. It's highly unpredictable. How are you to know if the user has tweaked the display manually within the monitor itself? There is no way. So then you think your graphics must be looking right but they may not be.

Consider also resolutions which have a quite unusual pixel ratio - like on the Amiga, a 1280x256 `superhires` mode. The pixel ratio clearly was not in proportion to the physical display - it displayed at like 4:3 but was way wider in terms of pixels.

I think that if you go with the desktop resolution you may or may not be sure of running at the native resolution. I agree that many users will not have changed their resolution or even know to do so and that the factory/store may have set it to a comfortable default. That doesn't necessarily mean it's the best resolution, although perhaps more likely for LCD screens. I've seen factory-shipped PC's for example which are by no means using the highest resolution for their desktop. I think at best this is a `good guess` approach which may work most of the time but not always.

Another approach is only providing a narrow selection of resolutions, e.g. screen out all widescreen pixel aspect modes and only provide 4:3 modes. Again that won't fix all the problems all of the time but it might help somewhat.

I think the only way to really be totally sure that your aspect is 100% perfect, is to know, find out, or have the user measure, the physical size of the display area and then calculate how many pixels are fitting into that area so that you end up with the appropriate change needing to be applied to your projection matrix, giving you perfectly `as-the-designer-intended` graphical proportions. But that probably means either quite advanced/manual user-input or unreliable driver access. Many drivers will report the wrong information or none at all, especially not with regards to display stretching from on-screen controls.

Asking the user to provide that kind of input is a chore. Casual gamers wouldn't touch it with a bargepole - "why the hell do they want me to measure my screen?", and maybe even more advanced gamers wouldn't want to bother. If you can't get exact to-the-inch and to-the-pixel measurements by asking the o/s for it, then you have to go beyond the o/s to the user, which is far from ideal for something which should be 100% automatic. So what to do? Go 100% manual? Make an automatic guess and risk making assumptions that lead to problems?

Maybe one suggestion is to wrap the whole idea of resolution and aspects into a much easier to understand concept such as a button or option that says `more detail` or `less detail`. Clicking it changes the resolution up or down per your guided choosing. Maybe also provide a `stretch` option to let the user make the display wider or narrower, taller or shorter (tweak the projection matrix in realtime). I think that's an acceptable level of user-involvement for a medium-to-advanced player. But for casual players I think you have no choice but to choose a preset resolution. If 800x600 is more widely available than 640x480 you should go with it. These days 640x480 seems a little visibly pixellated. I think 1024x768 is an ideal minimum but probably only set it to this if your target audience non-casual.

I still don't know what approach I'm going to take. Probably will go with the in-game-on-screen manual controls and for advanced user provide a `calibration screen` where they either physically measure their display area or hand-tweak the stretching. But then, you have to also design your game to accommodate the possible advantages/disadvantages of players seeing more/less of the game world.

Anyway, that's my ramble.