Sadly I may to have abandon Gdevelop due to lack of texture atlas

I’ve been working a top down 2d pixel RPG, it is still in the initial stages of development, yet I’ve already hit the 1000 file limit on itch.io. I’ve had to strip out all animations on my NPCs just to get the game working again.

I want my game on itch and to be honest this has kinda turned me off using Gdevelop. All of my characters have 16 frames of idle animation, 4 in movement for all 4 directions. This all lives in a single tiny spritesheet for each character (8x8 pixel graphics), but of course Gdevelop splits this into 80 separate images via piskel. almost 200 if I include death, attack and damage animations.

I can’t reuse frames by flipping them as they have a consistent lighting style.

I see texture packing / spritesheet has been on the todo list for years at this point, despite it being available in almost all other game engines, including the ct.js game engine which is a one man project also using PIXI.js and I’ve been thinking about porting over to that instead.

I’ve loved using Gdevelop and have never progressed so far on a game before, and Gdevelop has made it fairly painless, but I worry that it is no longer the correct fit for what I want to create. Just feeling a bit bummed out about it all.

Game is here if anyone wants to see it (Right arrow to skip through dialog)
https://themitchnz.itch.io/tribute-to-the-red-dragon

1 Like

the legendary contributor, arthuro555, made an extension where you can import sprite sheets using tiled sprite objects!

i havent tried it out however it seems like a great way to compress your game
but it will take a lot of work since (im assuming) you would need to go back and replace some assets!!

1 Like

if you are going to use this extension, and just so happen to be using Aseprite, they have a tool that allows you to export sprite sheets with JSONs

those JSONs are formatted pretty much identical to how the extension wants them

this is a test i did (comparison with aseprite and the extension’s formatting)

i think itll work either way (im pretty sure the indents in the “frame” line and extra information dont matter)
but it does seem you may need to manually add in the animations near the bottom if you export with aseprite

Awesome, I will look into this. Thank you!

1 Like

Just had a wee play, and def works with a few caveats. As a tiled sprite, no collision masks or changing the origin point, so i’ve had to manually do the z order with an offset but I can get around all that. This will work with all my static NPCs, and things like my animated fireplaces

1 Like

you could do a weird workaround for collision

i’ll use a player object for this example:
what i’m thinking is that you could make the player object match its positions with a different object that has the collisions
that object would do all the heavy lifting, not just including collision, but other things like movement, attacks, whatever
that object would essentially have the player object overlaid them as a disguise
player object would handle other stuff like animations

halfway through writing this, i realize it sounds pretty janky

‎ ‎


mock up picture for clearer demonstration

That sprite sheet extension is a huge hack :sweat: Basically just using the dimensions and offset of the tiled sprite to crop a rectangle in the sprite sheet, it’s not very performant…

I should make a new better one sometime that uses a sprite instead of a tiled sprite :sweat_smile:

This is actually a pretty common pattern (and one GDevelop used to recommend officially in the templates?)! It’s hard to keep collisions consistent when having many animations & frames, and visual effects like squashing & stretching, flipping the object, etc. all impact the collisions of the object too. So it’s common to use a hidden object for collisions and game logic, and have a separate “display” object on top for all the graphics and effects.

1 Like