We love pixel art. It’s our favorite way to do art for games, because it is the most direct relationship that the visual artist can have with what the player ends up seeing – pixels. In pixel art, there is no algorithm or computer approximation getting in between what you see and what the artist made – he literally manipulates individual pixels one at a time. In some other types of digital art – particularly vector art 3D modeling – the artist simply places vertices and curves, and then the computer has to figure out what pixels go where based on that information. We feel like that while any form of art can be great, those types of digital art are “less direct” than pixel art.
For those reasons, we’d always planned on doing pixel art for all of our games in the future(and we have quite a few planned). However, the Android platform presents us with an interesting problem – non-standardized displays. When you’re writing a game for Android, you simply have no idea what the display resolution is going to be. I mean, there are four or five that are common now, and they vary greatly. One of them is more popular than the others, but we don’t know what will be the most popular a year from now, let alone five years from now. The resolution is a moving target and so, for this project, we have to be flexible.
Well, as much as we love pixel art, it’s not all that flexible.
The problem with pixel art is that if your sprite is 64×64 pixels – your sprite is that size in pixels, no matter what the display resolution is. On a 320×200 display, this sprite would be pretty big. On a modern 1920×1200 display, it’s absolutely tiny. So the sizes of things is relative, and that means we either have to scale the sprites, or best-fit a multiplication of the sprites (which usually involves leaving some black bars or something for the remainder screen area left over).
Scaling sprites is awful; it completely kills the whole point of pixel art (which is, again, the direct relationship between the artist and the screen, manipulating individual pixels). Actually, you can scale sprites just fine, as long as it’s by a factor of itself. So, it could be 1x, 2x, 3x, 4x without any damage to the sprite. All it does in those situations is make one pixel become four pixels, nine pixels, and sixteen pixels, respectively. This simply has the effect of making pixels bigger, and isn’t changing or approximating anything.
I need to quickly go on a short tangent here, so apologies in advance: Some of you pixel-phobes may be as extreme to say that you think he looks “better” there. But if he looks better, then why in the world would anyone wear glasses? Regardless of what you may think, on the far right example, the art is simply blurred. There’s no two ways about it. Ask yourself if you really think using a “blur effect” on artwork makes it better, or worse. And to the pixel-phobes I say this: no matter how much blurring is going on, you’re still seeing pixels. I have bad news for you: screens are made up of, and only capable of displaying, pixels. So you can look at pixels that were chosen by a computer based on boring algorithms, or you can look at pixels chosen by an artist based on exciting artistic insight. Up to you.
For Auro, the game design requires that the player can see three tiles around himself in all directions – no more, and no less. It’s a bit of a digression to get into all the details in this post, but just trust that this is something that cannot change without damaging the usability and gameplay of the game. In short, then, we have two options if we want pixel art:
1. Proceed with pixel art, and make the pixel art scale (as shown in example 3 above) dynamically depending on the device. We definitely don’t want to do this, for the reasons we’ve explained.
2. Proceed with pixel art, multiplying the art by a factor of two for the higher res devices, hoping that it will fit, and probably having to include a lot of black bars or somehow add some extra blank HUD (not much better than blank bars). We don’t think anyone wants this, either.
So, our conclusion is, despite how much we love pixel art, we might not be able to do it this time. The Android platform is simply too varied in its hardware. This is actually something I really like about the platform in general, but for pixel art, it causes the problem above.
So, we’ll be doing somewhat high-res photoshop paintings for the in-game art. This will be easy to scale to whatever size we want, including higher resolutions for PC or tablets or future handheld devices. The downside is that it’s always going to be kind of blurred. The upsides are that it’s much easier than pixel art and way more versatile. We want Auro to be on as many platforms as possible, and it will be nice to know that it will look consistent across all of them.
What do you think? Do you have any solutions for us that we haven’t considered?