Avoiding crappy looking 640 X 480

Blitz3D Forums/Blitz3D Programming/Avoiding crappy looking 640 X 480

Jeremy Alessi(Posted 2003) [#1]
I'm having issues with using low resolutions in my current game. 640 X 480 looks like utter crap. It wasn't so bad but now I'm using bitmapped font and it messes up in the low resolution (probably because FonText does all it stuff according to an 800 X 600 aspect ratio). Is it reasonable to ditch the 640 X 480 graphics mode as an option?


fredborg(Posted 2003) [#2]
No


Beaker(Posted 2003) [#3]
FONText HUD should look the same in either resolution. It does here.

Are you sure thats the problem?


Anthony Flack(Posted 2003) [#4]
I'm developing with 640x480 as preferred res. With anitialiasing, it doesn't look bad at all. And it runs fast. And everyone's got it. Abandon it at your peril...


Jeremy Alessi(Posted 2003) [#5]
Well, for some reason in any of the lower resolutions (even with the 3D cropped text) I'm getting edges on the text. It looks pretty bad although I really want to include it.


Jeremy Alessi(Posted 2003) [#6]
Looks better now. I messed with the outlines and the shunt. 640 X 480 is back!!!


Hotcakes(Posted 2003) [#7]
I don't plan to officially support anything lower than 800x600 in any of my games <grin>

<ducks outrage>


Anthony Flack(Posted 2003) [#8]
I don't plan to officially support anything higher!


Beaker(Posted 2003) [#9]
BAN300 - did you take a look at the 'Trim for 3D' button in FONText? It might've helped in this instance.


Skysaw(Posted 2003) [#10]
Someone explain to me why 640x480 should be supported. Is there anyone out there who can't set their monitors to a higher resolution who still expects to be able to play current games at all?


Anthony Flack(Posted 2003) [#11]
Higher res puts exponentially more strain on the graphics card.


Warren(Posted 2003) [#12]
If you're writing games for Joe Compaq to play and you don't support 640x480, you're slashing your market.


soja(Posted 2003) [#13]
If you're writing games for Joe Compaq to play and you don't support 640x480, you're slashing your market.

Why? Any computer that can display 640x480 in 16-bit color can also display 800x600 in 16-bit color. (You only need 1 MB of VRAM and an SVGA display.)


Warren(Posted 2003) [#14]
Hey, whatever you think the market can handle, design your game for it. I don't want to sit here and debate back and forth on it.

800x600 is probably safe, but who really knows for sure...


soja(Posted 2003) [#15]
...but who really knows for sure

Well that's the question, isn't it? Seriously, I'd like to know just as much as the next guy. (I wasn't being argumentative.)


Warren(Posted 2003) [#16]
Well, you made a definitive statement ...

"Any computer that can display 640x480 in 16-bit color can also display 800x600 in 16-bit color."

I figured you were convinced of that or something.


jhocking(Posted 2003) [#17]
Note that 800 X 600 and 640x480 have the exact same aspect ratio: 640/480=800/600=1.333

"Is there anyone out there who can't set their monitors to a higher resolution who still expects to be able to play current games at all?"

I CAN go higher but I don't want to. My video card supports up to 1024x768 but at that resolution the framerate drops too low to be playable. I usually stick with 640x480 for the simple reason that higher resolutions paradoxically make the games look worse to me. Remember, a game isn't a nice still shot; it needs to draw lots of frames fast.

So there's your answer. It's not so much a question of "Can people run the game 800x600?" as "Will the game run well at 800x600?"


Jeremy Alessi(Posted 2003) [#18]
MasterBeaker, yeah I had the trim block already on. It's cool now though. I pretty much always test my game in 1152 X 864 X 32 mode. I have a 1 GHz Athlon and a GeForce 3 Ti 200. However, I don't think my game would run so well even on my 1 GHz laptop with a crappy built in 16 Meg chip set at anything higher than 640 X 480 X 16. It's just this thing that I want everyone to experience the game at it's best. Unfortunately, I think it's better to support more computers because after all the game is still fun even when it doesn't look it's best.


soja(Posted 2003) [#19]
I figured you were convinced of that or something.

Well yeah, of that one statement, but I figured there were other aspects, such as performance, or wanting to use vram for stuff other than display, etc, which people could point out.


Anthony Flack(Posted 2003) [#20]
The extra vram betwen 640x480 and 800x600 shouldn't make much difference to any 3d-capable card (unless it happens to be the last bit that pushes it over the edge).

But compare

640x480 = 307200 pixels

800x600 = 480000 pixels

That's nearly 60% more pixels. If your video card was the thing slowing your game down, that 60% could make all the difference between playably smooth, and unplayably jerky. Remember in DOOM, the way you used to be able to shrink the playing area down to less than the screen size? (for those that couldn't run it at 320x240, heh) - same theory. Most people would prefer smooth framerate to high res.


Braneloc(Posted 2003) [#21]
I never play games on anything less than 1024x768, it just looks, so, weeell, chunky. Having said that, I always support a good range of screen modes, as you should. 3D scales up and down VERY well & easily, so support everything.

I actually found on some(yes I know not all) graphics cards (Quadro range for example), the screen res. makes absolutely zero difference on speed, it was just the poly pushing that slowed things.

If you get really desperate, just pass the screenmode as a command line parameter.


Mustang(Posted 2003) [#22]
That's nearly 60% more pixels.


*2, because you need front AND backbuffer... do the math and you'll see that there's not that much left in 16meg cards to store all the textures and meshes. I just wish that we will get DXTC before the end of this millenium...


Anthony Flack(Posted 2003) [#23]
And don't forget the z-buffer!


QuietBloke(Posted 2003) [#24]
On my old machine I prefer to play games at a lower res and get a decent framerate... 640x480 can sometimes look a little chunky but if that happens I can always use in my built in image smoothing hardware... I take my glasses off :)


Anthony Flack(Posted 2003) [#25]
Heh, nice! I have hardware antialiasing in my eyes too.
Personally I quite like chunky. In 3d games especially, too high res spoils the illusion and makes everything look really obviously made of triangles. And in my game, using sprites, I CAN'T go too high res with the sprites, because it would use too much vidRAM...


Mustang(Posted 2003) [#26]
And don't forget the z-buffer!


Oh yes, that too! So... VRAM for screen, backbuffer and z-buffer. It goes like this (1024*768 screen as an example):

16-bit:

(1024[w] * 768[h] * 2[color bytes-per-pixel]) * 3[screen,back,z] = 4.72 megs

32-bit:

(1024[w] * 768[h] * 4[color bytes-per-pixel]) * 3[screen,back,z] = 9.44 megs

And you have other stuff there in the VRAM too, like vertexes, indexes and geometry which take variable amount of space. You should reserve some VRAM for those, maybe 5-10 megs... which means that using 1024*768*32 screen you have already used basically ALL the memory on the 16 meg 3D-card!

Here's how to calculate texture usage... let's use 512*512 sized texture as an example.

16-bit:

(512[w] * 512[h] * 2[color bytes-per-pixel]) * 1.33[mipmaps] = 0.697 megs.

32-bit:

(512[w] * 512[h] * 4[color bytes-per-pixel]) * 1.33[mipmaps] = 1.395 megs.



...And for those ppl who wonder why I (still) would like to get DXTC/S3TC, here's how much it saves texture memory...



-DXTC1 (color[16-bit], no alpha) 512*512 example would take this much:

(512[w] * 512[h] * 0.5[bytes-per-pixel]) * 1.33[mipmaps] = 0.174 megs.


-DXTC3 (color[16-bit] + alpha[4-bit]), 512*512 example would take this much:

(512[w] * 512[h] * 1[bytes-per-pixel]) * 1.33[mipmaps] = 0.349 megs.


...So if you compare this to the 16/32-bit unpacked textures you'll get either 4 or 8 times more texture using the same amount of VRAM. Pretty good savings, especially if you look at how much space the screens alone take, not to mention geometry etc.

DXTC/S3TC is NOT well suited for gradients, like skyboxes, and the alpha is coarse, so in the best case you should have an ability to use both packed and unpacked 16/32-bits mixed together (using flags or something).


Anthony Flack(Posted 2003) [#27]
No arguments here on that one.


jhocking(Posted 2003) [#28]
Actually I doubt memory is the problem on my videocard. It's an old chip but the card has 32MB of memory (go figure; what an odd design.) For me the problem is mostly rendering speed/fill rate. Higher res just generally takes longer to render.


Mustang(Posted 2003) [#29]
If you use higher resolutions, your fillrate will grow too; more pixels to draw over and over again. Fillrate usually kills the 3D-cards speed long before anything else unless you have really little VRAM. You can easily make even the newest Radeons suffer from the lack of fillrate if you use lots of alphablended polygons close to the camera (particle explosions etc).


Genexi2(Posted 2003) [#30]
Hmm...my video card supports 2048xsomething yet my monitor likes it max safest resolution of 1600x1200...I could force it to the highest, but I might f*ck up my $300 (CDN) monitor...I'll stick with playin games at 1024x768 ty..

Oh, and Anthoney, you really outta allow a max of 1024x768, just...well, 640x480 looks REAAAAALLLLLLLLY ugly on my 19" monitor...too pixelly, even with antialising.


Hotcakes(Posted 2003) [#31]
Yeh well, not so much a problem with 3D games, except the pixellation, but 1024x768 is really the lowest recommended resolution for a 19" monitor. I have mine set to 1280x1024 for everything though ;]


Anthony Flack(Posted 2003) [#32]
My monitor is a 19" monitor, and LCD at that so the pixels are much clearer than a CRT. So I know what it looks like.

640x480 is the same resolution as a NTSC television (commonly much larger than 19"). 640x480 looks much BETTER than 1024x768 in my game. Upping the screen resolution won't up the resolution of the sprites - except for ones that have been scaled down. At 640x480 everything looks fairly even, since the sprites were designed to look okay at this res. But at high res, different elements are different sharpnesses, depending on how much I've scaled them - some have minute detail and fine edges, while others, by comparison, look very blocky. It looks stupid. 640x480 is the only acceptable choice for having decent-sized sprites with a decent amount of animation, without burning ridiculous amounts of vidRAM.

It would be easy to allow support for all resolutions, but I am seriously considering capping it (or burying it in a command-line prompt), to stop people from automatically going, "Oh, higher res is better", and cranking it up, thus getting worse performance, and funny-looking graphics.


Curtastic(Posted 2003) [#33]

640x480 is the only acceptable choice for having decent-sized sprites with a decent amount of animation.



that doesnt make sence because most games today are a higher resolution, even games with lots of sprites and animation.


Anthony Flack(Posted 2003) [#34]
Give me just one example.


Curtastic(Posted 2003) [#35]
age of empires 2, goes to 1024x768 even though it was made 4 years ago.

but if you mean a constant resolution that cant go lower, there is civilization III, 1024x768 required to play. 8 directions of smooth animation for each unit, with many types of units.


Rob(Posted 2003) [#36]
Anthony uses 3D techniques AOA is 2D and doesn't scale the graphics with resolution.

I am with Epicboy and Anthony Flack all the way here.

640x480 is the mainstay. I intend to support it always, and for all 2D in 3D, I wouldn't consider going higher. It's too inefficient.


WendellM(Posted 2003) [#37]
The approach I've adopted is to aim for 1024x768. However, I allow the user to choose his resolution anywhere between 640x480 and 1600x1200. (Well, I do have one game that *insists* on 1024 - no more, no less - but that's the exception...)

Allowing user-specified res and doing 3D at that res, while doing 2D art at 1024, allows the player's 3D to look as clear as he wants it, while the 2D "bitmap overlay" stuff (like HUDs and consoles) is scaled to the screen resolution. So, it looks kinda blocky below 1024, and especially at 640 due to downsampling (big surprise - *everything* looks blocky there, but at least it's supported and visible, if not crisp) and it looks no better than 1024 all the way up to 1600 (since it's just resampled to a higher res, but I *do* make it look good at 1024). However, the 3D stuff matches the selected resolution as chosen, and that's what's important for framerate and most "in-game" clarity.

So, right now, I'm *aiming* my games at 1024x768, but I support from 640x480 to 1600x1200 (though rescaling of the 2D, though they're mostly 3D).


Anthony Flack(Posted 2003) [#38]

age of empires 2, goes to 1024x768 even though it was made 4 years ago.

but if you mean a constant resolution that cant go lower, there is civilization III, 1024x768 required to play. 8 directions of smooth animation for each unit, with many types of units.



But both those games are RTS - ie the units and stuff are all really small on screen, (and so taking up not much memory) - therefore it's no problem to run at high res. If I scaled all my sprites down that small, I could run at high res like that too. But I am dealing with animated sprites that, in some instances, fill a good part of the screen. Notice I specified, "decent-sized sprites with a decent amount of animation".

Don't get me wrong, I would be happy to do as Wendel does and make 1024x768 my "standard" res, in fact, it would look great - but to do that, it would need at least a 64Mb graphics card to store all the animation in - preferably 128MB! And it would quadruple the download size.


WendellM(Posted 2003) [#39]
For a largely-2D, frame-animation-heavy game like Anthony's Cletus (which looks and runs great, BTW) I can sure see staying with 640x480. Every doubling of on-screen resolution is a *squaring* of memory/storage. I only aim for 1024 since my stuff is mostly 3D-based. Vidcard memory concerns are exactly why I cap my 2D overlay stuff at 1024 instead of higher. But, since higher 3D resolutions come "free" from programming/memory costs if the player has a good-enough vidcard, I certainly allow higher resolutions.


Michael Reitzenstein(Posted 2003) [#40]
Every doubling of on-screen resolution is a *squaring* of memory/storage.


Isn't it a quadrupaling?


WendellM(Posted 2003) [#41]
Yes, 2^2 = 4. Squaring a doubling is a quadrupling. Wasn't that the title of a Dr. Seuss book? <g>


Gabriel(Posted 2003) [#42]
If you don't allow 640x480 you're immediately losing a huge percentage of anyone who has less than a GF3. Even a decent gf2 will struggle with fillrate at 800x600 ( I've tested this extensively )

If you're not aiming at less than a gf3 then no problem. But there are a HECK of a lot of people out there with less than a gf3.


Neo Genesis10(Posted 2003) [#43]
I've got a GeForce 2 and I've experienced zero problems pushing all kinds of polys around at 800 x 600 (and I dont exactly have a high-spec system either). I don't plan to abandon 640 x 480 though - my little brother would never forgive me ;)


Gabriel(Posted 2003) [#44]
Poly's aren't a huge problem, but I find that almost anything which uses alpha, like particle effects and the frame rate is down to 25-30. I've tried it with Win98se and WinXP, and all variations of driver, so unless there's something about my system that doesn't like Blitz, I don't know what else it could be.

Of course, I am a pain in the butt for FPS. Anything less than 50 and I moan and gripe.


cyberseth(Posted 2003) [#45]
I feel that when dealing with 3D games, as long as there's no 2D-over/under-3D then scaling the screen res won't cause any problems as far as the looks are concerned. Therefore it's best to give the user the option of what screen res to play the game in. I usually give a choice of three: 640x480, 800x600, 1024x768, and with each one a choice of 16-bit or 32-bit colour mode. (Dithering is used in 16-bit)


cyberseth(Posted 2003) [#46]
Also, remember that 640x480 graphics can be improved a bit with antialiasing. But then again, this can cause a big enough slowdown on old cards anyway, that there's little point.


Gabriel(Posted 2003) [#47]
I usually give a choice of three: 640x480, 800x600, 1024x768, and with each one a choice of 16-bit or 32-bit colour mode. (Dithering is used in 16-bit)


Yup yup.. exactly what I do.


Sir Gak(Posted 2003) [#48]
Sheesh. Time was, when 320x240 was king. Now with technology moving forward, we're talking multiple resolutions and the practicality of higher res operation.

The question here is, just how many machines "out there" have limited graphics capabilities? I don't know of any definitive way of determinging that, so I think compromises are in order.

Yes, we as programmers can shoot for the LCD (lowest common denominator of 640x480), for maximum sales (I assume we want to SELL our Blitz games), but there really ARE games out which go at much higher resolutions, too.

Maybe the best thing is to make sure the final product can play to the LCD, perhaps with one set of lower-end graphics, and then a better graphics set to the higher res cutting edge players with monster advanced PCs. Of course, with two sets of graphics, the game gets HUGE for download purposes (unless we take the pain-in-the-butt approach of making different versions, i.e. MyFunGame_lowres, MyFunGame_midres and MyFunGame_hires).

There's no simple, one-shot approach, is there? Like it or not, any compromises we make will be based on what market we are going after.


Gabriel(Posted 2003) [#49]
There's no simple, one-shot approach, is there?


Well, yeah, there is really. Seth's approach - which is the same one I use, and the same one a lot of commercial games use - is just that. A one size fits all, if you will.

Clearly it's not possible to do the same thing in 2d. But the magic of 3d is that everything scales automatically, and with a little clever thought you can do almost anything in your game with complete resolution independence.

I suppose you could argue that you might want higher res textures if you're going to support 1024x768, but it's certainly not essential. And even if you do, it's quite easy to have a config option and switch between two sets of textures. I agree that this compromises your download size, of course ( If you're selling that way ) but I find download size is much more dependent upon music than textures anyway.

Ultimately, very, very few commercial games don't support 640x480. Those few that don't support it invariably have a *damn* good reason. The Sims, for example, where you really need the detail. Very few games need it.