Game Development Community

2D artwork resolution

by Gary Preston · in Torque Game Builder · 03/11/2005 (3:51 am) · 5 replies

The recent thread on logical coordinate systems has made me think a little about artwork resolution. For arguements sake, lets say you have a sprite that you want to take up 1/4 of the screen. If you were
hitting a fixed res of 800x600 you'd build the sprite at 200x150 pixels.

With the logical coord system you can still build at that size regardless of what res the user runs at and still have the sprite take up a 1/4 of the screen without having to do any extra leg work, since T2D's logical coord system takes care of it all for us.

But, that makes me wonder what resolution do you build your initial artwork to? If we assume the game allows the user to select between 640x480 up to 1600x1200, and lets assume the number of users who would run at each res is roughly equal, making no res a better choice than any other. Which res would you use for your art to ensure it looks pretty good at any of the resolutions inbetween?

Would you hit a middle of the road say 1024x768 or 1280x1024?

Is there a prefered optimal resolution to use since its a trade off between the extra memory needed for larger textures to the crispness of the textures at a higher res?

Also, on a similar note. Will T2D eventually (if it doesn't already) support mip mapping? This would be really useful if your game had any kind of command that allowed the user to zoom in/out of your game.

#1
03/11/2005 (4:40 am)
I'm also interested on the mip mapping stuff, since I've noticed big graphics drawn at a smaller size are uglily scaled down, and that would be a problem if you do hi-res graphics and the user then selects a lower resolution.
#2
03/11/2005 (4:45 am)
Gary,

This rather long and pointless thread was about this, presumably this was the one you were referring to.

You really need to make the decision on what to target your artwork at. There are many choices here and configurations for the scene.

Because we've just got started, some of the features we want to have are not available yet and this includes precise LOD control either by auto mipmap generation or by discreet textures sets that you can swap between via script.

In the meantime, you could select which datablocks to initialise using script-logic and therefore upload the correct textures for each resolution. If you didn't want to have multiple texture-sets then you could target a middle-ground resolution, say 1024x768. The hardware will up/downscale this art for you although you've obviously got to be careful on how this affects your art, especially without mip-mapping. Another way is to always use a much higher resolution texture set but this would be quite brute-force and not so good for low-end cards that are not so fast with large-texture sampling.

We will be supporting much more precise control over the texturing modes in the future. There's lots of work going on behind the scenes to make the existing system much nicer, especially with the abstract handling of bitmaps so that any hardware specific issues such as POT are hidden from the users by automatic chunking etc. We're not just interested in Windows, Mac and Linux!

At all points though, we'll endeavour to offer precise manual control over what the system does because we don't want a system that goes away and automagically does something you don't want. Too much intelligence in this area is bad but we need to wire this stuff in for the "GameMaker" application to be developed later.

I'm sorry this doesn't better answer your question on what specific resolution but this is probably answered by the art requirements for the game you're designing.

I think my reasoning behind the post I referenced was that there are instances where you want your coordindate system to mean something other than pixels such as a real world-unit. This way, you can associate a pixel-size with a real dimension. This is very common in 3D but not in 2D, not because it's of no use but because most 2D engines don't bother with it. Lots of them have been designed around the idea of blitting bitmaps to the screen and dealing with memory surfaces at the pixel-level.

We're trying to move T2D into a more game-centric rather than hardware-centric system. A logical coordinate system is a small fraction of that move.

- Melv.
#3
03/11/2005 (4:48 am)
Unfortunately if you plan to make multi-resolution games like this, you will need to create multiple versions of the sprites.

Why? well the simple answer is that mip mapping looses detail and so your sprites will look less defined and less accurate the more you re-size them downwards.

I tend to pick a resolution for my 2D games and stick with it. If you want to do a game that supports 800 * 600, 640 * 480 and 1024 * 768, then your best bet is to create all images at the 1024 * 768 resolution and rescale for the other resolutions. This guarantees the least quality loss as detail can always be removed by a rescale but, can't be added.
#4
03/11/2005 (4:52 am)
Melv: Yes my post was brought about partly due to that thread. I do agree that a logical coordinate system is much better to work with in the long run. Not having to worry about changing sprite positions, scale etc when the user changes resolution is a great time saver.
#5
03/11/2005 (4:54 am)
Agreed.

The most important thing we'll be working on is allow you to make imageMaps the only thing you need to work with (at the script level) for this stuff. You should be able to specify a file or files and also specify alternatives for specific resolutions and T2D automatically switches to those for you. This is one of the features we want to implement.

- Melv.