What Resolution should I be painting sprites in?

Hey guys, I’m making a platformer at the moment. I’ve been an artist for a couple of years now and I’ve finally decided to set out and make a complete video game. The sprites I’m going for will not be pixelated, they’ll be detailed paintings. My question is, are there some general standards at which I should keep these sprite paintings to be safe? I don’t want to realize the resolution of these things are destroying the game’s performance 5 months down the line if you guys know what I mean.

Anyone have any input?

You want to make a 2D game, right?
Then don’t care about performance, that will be your last problem.

You can use what ever resolution you want.
When you use the sprites in unity at a scale of 1,1,1 then 100 pixels = 1 vector/meter.

1 Like

Yes Dave, it will all be in 2D, thank you mate that puts some fears to rest :slight_smile:

All depends on the style you want. Do you want it to look all pixely and “retro”, or modern? It’s all up to you! As Dave said, performance will be your last problem with 2D these days.

Spammer.

I advise to ignore all of the advice in this thread. No one here seems to understand one of the major rules in creating art. Any art. But especially for games. The “especially” because of the various resolutions a sprite can be rendered at.

No matter what your end result is, unless it is literally like 32x32 tiny pixel guys or pixel art, then:

ALWAYS Create it as big as possible.

You can always shrink something without losing any quality. You can’t enlarge it without losing quality. There are few exceptions to this rule (Pixel Art, specific Vector art).

This is a major rule in anything you draw or create, art wise. Whether it is game art or a photoshop piece of artwork- always draw it as large as possible, or as large as is feasible.

16 Likes

I’d like to further add that regardless of how people flaunt that “it doesn’t matter the resolution”, that is entirely not true. You will be hard pressed to try to animate tons of sprites at 30fps when it is the size of 8192 x 8192. Not because you cannot do it (it will animate flawlessly) but because 2D images which animate that large consume enormous amounts of memory.

I’d know. I once tried to animate a Dragon about that size in the most basic way possible, and my beast of a machine struggled to load it. Animate it? Fine. Load it? The memory required for one unique Dragon was upwards of hundreds of MB’s. Even the best computer will not be able to load, reload, or stream enormous resolution images in the milliseconds needed to change animations during runtime.

This was the culprit!

You will find that it is next to impossible to have very many massive sprites, fully animated, all while loaded in mobile memory.

Most PC systems these days have 4GB to 8GB of memory, so it is hardly a problem even if you have tons of sprites and resources in memory. However, I don’t know how Unity handles all of this stuff. Of course, unless I’m mistaken Unity doesn’t even allow enormously large textures anyway. Few engines do.

However, that is a simple fix. Draw them as large as possible, and if you have performance problems which can’t be avoided by things like cutting them into smaller pieces which form the whole- shrink them. You can do the same thing other games do, so there shouldn’t be any real problem.
Also depending on how they’re drawn, you may or may not be able to actually have them smaller than they appear. This is a technique I did with my “Dragon” to save on resources. I created the images in a massive size, shrunk them to a size slightly below how they’d appear, then enlarged them during runtime with a small bit of quality loss. The quality loss IMO was worth the large performance boost for that particular game.

You also might want to look into something called… Vector art? I don’t know if it’s a particular kind or what, but it is the type of artwork which can be resized without problem. The characters don’t look very painterly, and often are very cartoony. However, it is wonderful to be able to resize them so readily.

16 Likes

Badass looking dragon mate!

Yes I quickly noticed this memory problem lol. I made all the sprites 4k in max size and after I just had a couple of trees on screen the game was already using over 100mb of video memory. Now 100mb may not sound like much, but a couple of trees aren’t much either! I plan to populate scenes full of trees, bushes, butterflies and all kinds of things so this can very quickly add up.

I have however, lowered the max size now to 1k and I can’t see any actual visual loss of quality in my sprites now, unless I were to actually make them extremely large on-screen.

So for now 1k seems to be a good spot and I’ll leave 4k for sprites that literally have to be really large (ie a castle or something along those lines). Also even though it may be a little more work, I am definitely going for the painterly style for my game as I feel vector doesn’t feel serious enough.

Thank you for the advice everyone :slight_smile:

1 Like

If a tree is 4k resoultion or even 1k, and you want to fit many of them on screen…what resolution are you aiming at for the user?

I am trying to imagine how you would fit all of that on the screen at once.

Is it a fighting game like Street Fighter?

1 Like

Well do you want your game to run on mobile devices? Specifically do you want your game to run on Android devices?
Note that a vast array of devices exists, with different hardware capabilities. The crappier Android phones will experience a force close if ANY image in your game is larger than 1024x1024. This is due to memory constraints. The more powerful phones can handle images up to 2048x2048.

With that said, I recommend you initially draw your sprites at 2048x2048, and call them your high res sprites. Then downsize those in half to 1024x1024, and call those your standard res sprites, then downsize those to 512x512 or less, and call those your low res sprites.

2 Likes

There is no point not to draw your sprites in an insane resolution. If your “high res” sprites are 2048x2048, then draw them all at LEAST 4096x4096.

Then shrink them to the largest possible version you’d need (2048x2048).

I cannot stress this enough, for ANY form of digital painting.

There is never a reason not to draw them ridiculously larger than you will ever need. You can always shrink them. You can rarely enlarge them without detail loss.

Real artists will draw in insane resolutions because of this reason. Unless your system struggles with performance in Photoshop, you draw at least twice as large as you will ever need. In the end, you never know what will come of the art, what your needs will be, or perhaps what will happen in the future.

3 Likes

I’d just like to add another suggestion, for non-digital art.

When scanning artwork, scan it to the maximum resolution you can. There is never a need to choose anything lower than the highest resolution you can scan the image in.

You can always shrink it.

1 Like

It’s just a platformer mate, and I want everything to be hand-painted like in the Rayman games and such. The many trees are going to be part of the background. 1K has been working brilliantly so far though, and the scene now reaches about 100mb video memory in use at a time, which I think just about any modern computer can handle, so -fingers crossed- it looks like things are going to be fine :slight_smile:

If you want a cinema game use 8K
If you want a high quality game used for generations USE 4K=4096x2048
If you want a normal game use 1080p
If you want testing speed only game use 360p.

Hi Jaxobz, did you figured out what is the best resolution for mobile 2D game ? I have the same issue :wink:

How’s ur game going

If you draw these sprites so large and you need them smaller in the scene, do you just adjust the scale or change the PPU?

If you’re making a mobile game, do not bring in a huge sprite that you end up downsizing. The system will experience a permanent performance hit when loading that huge sprite into memory. For mobile, keep each sprite smaller than 1024x1024. It will still look amazing even on high resolution devices.

1 Like

I think this thread totally misses the point raised by CarterG81 - he’s not suggesting you bundle the largest possible size sprites with your game. You should create the SOURCE imagery at a large (but still practical) size. Then specify in Unity what the resolution should be - this will be done at build/import time, not runtime so there is no runtime overhead in having large source imagery (just specify the correct size in Unity!)

The idea is, when you need to make a build for the latest 16k screens you can just change the resolution specified in Unity rather than recreate all your imagery again (or suffer with poor quality graphics).

6 Likes

When you say specify the size at build time what do you mean. How? Scale, PPU?

1 Like