Question about resolutions

As to my original question, is there anything wrong with hardcoding my game to work work only in 800x600. I assume all modern monitors have this capability, will there be any future OS shifts towards resolution independence which might deprecate something hardcoded for a specific resolution such as 800x600?

My attitude is that nowadays LCDs are the norm and anything other than the native rez of the LCD is going to be filtered anyway (i.e. it'll be fuzzy if the user isn't using the full rez of their LCD display), so there's no reason for me not to go ahead and scale up/down my own graphics and not worry about resolution. That is, I prefer to be resolution independent. With 3D graphics this is a non-issue, and it doesn't have to be with 2D graphics either, but sometimes we have games where we would like everything to "fit" on the screen in a certain dimension, like your game. That dimension is often chosen to be a pixel value like 800x600 or 1024x768. But with modern hardware and automatic filtering (like mipmapping and GL_LINEAR) it is unnecessary to be confined to "pixel values"; what we need to be concerned with instead is aspect ratio.

What I prefer to do is let the user use whatever resolution they prefer, at any time but maintain a fixed aspect ratio. To do this I draw a black background with glViewport set to the size of whatever window they're using (or full screen). Then I automatically calculate a smaller viewport (if the aspect ratio of their chosen resolution doesn't match what I want) and either use letter boxing (black bars on top and bottom) or pillar boxing (black bars on the sides) and draw the scene inside that. The second smaller one also requires using glScissor, but that's super fast so it's no performance problem. Since it's all automatic, if the user is playing in windowed mode, they can resize their window to any size, on the fly, and it tracks automatically.

So for me it's all automatic as far as resolutions. All I have to do is take care of scaling, which isn't much trouble, but since everything is square to my chosen aspect ratio, there are no problems beyond that. So if 800x600 was my favorite resolution, and I had developed my game around that most of the time, I'd choose a 4x3 aspect ratio, which is the same aspect as 640x480 BTW.

I believe that I fully I understand and appreciate what you are both saying and I agree in principle with everything said. And please correct me if I'm wrong but I think because of the specs of my engine that resolution independence isn't a feasible path.

For one thing I need all of my textures in power of twos, obviously. As it is now, my ground tiles are 64x32 pixels/texels each. The engine is a 2/1 aspect ratio isometric engine, as seen in the screenshots above.

At the highest resolution on most modern lcds, my sprites and tiles look tiny, so much so that it completely alters the look and feel of the gameplay(by contrast 800x600 is the ideal look and feel). I thought to use glScale but I could only use it to scale upwards by 200%, anything else(1.5 etc..) distorts the tiles and how the line up. And when I do scale 200% it's just too big even on my 1680x1050 display. And of course if I make smaller tiles(say 32x16) and use glScale(2.0, 2.0,0.0)it's back to my current size(64,32).

So I kind of feel like I'm stuck into hardcoding it into 800x600 (or at the very least strongly recommending to the player to switch his resolution to 800x600).

So given this unique set of circumstances, am I wrong to believe this?

Well, like I said, even if you hard-code for 800x600, no matter what, it's still going to be scaled and filtered on an LCD and will look fuzzy in full screen, regardless. The only way to avoid that would be to force windowed mode, or a smaller than native viewport, forcing the user to look at a smaller part of their screen (800x600 is a very small portion of my current display though, so I wouldn't recommend that).

Ultimately it's up to you. If you can't wrap your mind around how to get your graphics to be resolution independent, then just roll with forcing 800x600 full screen. If you're worried about losing that resolution into the future, then figure out how to be resolution independent. That's pretty much all there is to it.