• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Graphics Handling zoom and high-res sprites

M

Madlark

Guest
Hi all,

I need some advice regarding sprite size and zoom in a project I'm currently working on. I've been trying to figure this out for a few days now, so I'm probably over-engineering or missing something obvious at this point, but please bear with me.

Basically, what I have in the game is a horizontal surface where player can place objects. There is a zoom function which allows the player to zoom both out and in to either check out the objects up-close or see the entire surface. The camera/viewport size is 1920x1080.

I'd like the sprites to be high-res(ish), so I'm using 1024x1024 .PNG sprites at 1000dpi for the objects and scale them down to 128x128 inside GMS2, which is the actual space the objects occupy in the room.

Problem is, while the sprites look fine at zero zoom-in/out and downright awesome at max zoom-in, as soon as I zoom out, all sorts of jagginess and aliasing pops out, and the details just blend into each other (yes, interpolation is turned on). A mess, basically. Now, I know this is normal and that high-res sprites in this scenario would look good up-close and bad from afar, and vice versa for the low-res ones.

What I'm wondering is, is there actually a common way of handling things like that in GMS? I'd be willing to sacrifice zoomed-in quality for things looking better zoomed-out, but I'm not sure how to achieve this other than switching to lower-resolution textures and reducing the number of detail, and I *don't* want to use pixel art.

I hope at least some of this made sense. Thank you in advance!
 

JackTurbo

Member
Simpler answer would be just use lower resolution assets. The banner Saga (not gms, was made with Adobe air) did this and is widely regarded as one of the best looking 2d games around. It's assets are at native resolution at the default zoom (middle of the zoom range) and do lightly pixelate at high zoom. No one seemed to mind there.

For best results (if your art style works for it) would be to use vector based sprites. Gms' support for vector sprites is pretty iffy but they do work.

Complex solution would be to have the assets at different resolutions and swap them out as the game zooms. This will be both complex and very resource intensive so I wouldn't recommend it. Not worth the mountain of headaches that it will cause imho.
 
M

Madlark

Guest
Simpler answer would be just use lower resolution assets. The banner Saga (not gms, was made with Adobe air) did this and is widely regarded as one of the best looking 2d games around. It's assets are at native resolution at the default zoom (middle of the zoom range) and do lightly pixelate at high zoom. No one seemed to mind there.

For best results (if your art style works for it) would be to use vector based sprites. Gms' support for vector sprites is pretty iffy but they do work.

Complex solution would be to have the assets at different resolutions and swap them out as the game zooms. This will be both complex and very resource intensive so I wouldn't recommend it. Not worth the mountain of headaches that it will cause imho.
Hi!

Come to think of it, I've never checked Banner Saga out, this might be the time to do so.

Lower-res sprites was my conclusion as well (actually, 512x512 already looks better than 1024x1024), but I wanted to make sure my mind was moving in the right direction, so thank you for confirming that! =)

I've recently bought a Spine license, so I might look further into vectors, but from what I've seen so far it doesn't make a huge lot of difference.

And I've considering swapping textures on the fly to higher/lower-res ones as well, but scrapped it for exactly the resons you mentioned.

Anyway, thank you for your answer!
 

JackTurbo

Member
Spine is for skeletal animation I think? (Never tried it myself).

Vector sprite don't have to be skeletal, they can be frame by frame based too. Adobe animate (the app formerly known as Flash) is probably the best bet for that route if you wanted to go that way.
 
M

Madlark

Guest
Simpler answer would be just use lower resolution assets. The banner Saga (not gms, was made with Adobe air) did this and is widely regarded as one of the best looking 2d games around. It's assets are at native resolution at the default zoom (middle of the zoom range) and do lightly pixelate at high zoom. No one seemed to mind there.

For best results (if your art style works for it) would be to use vector based sprites. Gms' support for vector sprites is pretty iffy but they do work.

Complex solution would be to have the assets at different resolutions and swap them out as the game zooms. This will be both complex and very resource intensive so I wouldn't recommend it. Not worth the mountain of headaches that it will cause imho.
Sorry for raising this again, but Banner Saga is using vector art, right? Playing it right now - it does look awesome.
 

JackTurbo

Member
No it doesnt, not technically anyway. The art was created in Adobe animate/flash (battle animations we're at least) so the source files are vector based, but the artwork was rasterised prior to importing into the game. This is why at max zoom you can start to see light pixelation.

Funnily enough Stoic originally planned to use vector based art in engine but it produced performance issues and extra complexity so they abbandoned that idea early in development of the first game.

If you had any other queries about how Banner Saga does anything feel free to pm me. I'm pretty well versed on all things banner Saga as I'm a bit of a megafan (with it not being strictly gms oriented it's probably better not to spam the boards too much with saga talk).
 
Top