chrismaltby / gb-studio

A quick and easy to use drag and drop retro game creator for your favourite handheld video game system
https://www.gbstudio.dev
MIT License
8.49k stars 469 forks source link

allow 8x8 and 16x8 sprites #1263

Open RodrigoCard opened 1 year ago

RodrigoCard commented 1 year ago

the minimum is 16px as you already know. I want to make small 8px sprites. also, allow 8px spacing in spritesheets like this: balls for now this needs 8px vertical spacing in a 16px sprite, seems wasteful.

londiebrondie commented 1 year ago

Those aren't already allowed? Dang, that's odd...

maxoakland commented 1 year ago

Those aren't already allowed? Dang, that's odd...

From what I understand, the underlying engine supports 8x8 sprites as an option but the IDE doesn’t support it. It’s possible that this feature could be implemented, but it might make the sprite editor more complicated

Either way, in a scene you are only allowed to have 8x8 or 8x16. You can’t mix and match them. It’s not supported by the hardware. SO if you want 8x8 support, that’s something to think about. And since the hardware only supports 40 sprites per screen, you’re basically limiting yourself to 50% of the pixel coverage. So you might have to make smaller overall sprites using 8x8 mode

Due to the complexity, I imagine it would be more likely a setting that applies to the whole game instead of per scene, since you might have to create different sprites for the different tile sizes

RodrigoCard commented 1 year ago

Due to the complexity, I imagine it would be more likely a setting that applies to the whole game instead of per scene, since you might have to create different sprites for the different tile sizes

A per game setting can work in my use case.

JstnPwll commented 1 year ago

I'd love to be able to use a sprite that is only 8px wide. I don't care if it is 16px tall but I need it to be narrower.

maxoakland commented 1 year ago

I'd love to be able to use a sprite that is only 8px wide. I don't care if it is 16px tall but I need it to be narrower.

Good news: You already can! Just use one sprite tile. They're always 8px wide. Put it in the canvas and edit the hit box to be 8 wide