[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Best practices for creating multiple resolution 2D pixel-art games?



On Thu, Apr 5, 2012 at 5:36 PM, Santiago Romero <sromero@xxxxxxxxxxx> wrote:

 I just was hoping that everybody would already faced this problem before me with alternatives different to:

a.- Render the display with OpenGL.
b.- Force fullscreen fixed resolution.
c.- Force windowed fixed resolution.
d.- Support a couple of concrete resolutions.

Well, not to say that my way is the best way or anything, but again, my standard method of doing things does not use any of those four options.

1.- I don't have the resources to do precious hi-res aliased cartooned or cell-shaded graphics like those that can be seen in recent Android, iOS or PC games. Surely, even in low-res modes you need an army of artists to create such graphics

Yeah, basically, there's no way for someone (like me) with limited artistic talent to make good-looking games without either a *lot* of effort, or gameplay that's amenable to procedural graphics. I use procedural graphics as much as possible, but when I need something drawn, I can spend hours on a single frame of a character animation, and I don't see any way around that, regardless of your resolution. If you're working with an artist, you need to consult with them to determine what's going to look best. If you're doing it yourself, I recommend downsampling huge sprites unless you're specifically going for that retro look.

There seems to be some idea that it's easier to make a 64x64 sprite that looks good than to make a 640x640 sprite that looks good when it's downsampled to 64x64. I don't find that to be the case. Even if I wanted to make a 64x64 sprite I would start by drawing it at higher resolution and downsampling anyway, so it doesn't really matter if you do it in your drawing program or in the game. It is more processor and memory intensive, but that's a very minor consideration on a modern desktop unless you have thousands of frames worth of graphical assets.
 
2.- For the Widescreen vs 4:3 problem, with my retro-graphics games, I think the best option is to find the nearest videomode to 800x600 in widescreen and center the "game area" in the screen.

That's probably best. One thing I would keep in mind is that a 4:3 setting like 800x600 may not have a 1:1 aspect ratio on widescreen displays. I like to ask pygame for the highest possible resolution and then choose from the resolutions with that same aspect ratio.

On the other hand, retro graphics tend to look fine even if the aspect ratio is off, especially after you've played for a few minutes and you've gotten used to it.

Good luck!

-Christopher