Sprite vs AnimatedSprite performance

Godot Version

3.5

Question

I am trying to clarify some intuitions I have around the performance of Sprite vs AnimatedSprite. I looked around and I saw a thread comparing AnimatedSprite and animated Sprites here Sprite vs AnimatedSprite Pros and Cons?

I’m working on a 2d pixel art bullet hell game and I expect to have a lot of sprites on screen. For convenience I’ve been using a single spritesheet for organizing all the sprites. I use AnimatedSprite for all my sprites to be able select from the spritesheet even when only a few are animated. My spritesheet is 256x256px with the sprites 16x16px.

My intuition is that using a single texture can optimize some draw calls, is that correct? If so, do I get any performance hit if I have a bunch of AnimatedSprite with a single frame? Does it matter then if I forget to disable animation loop? And finally, is there a way to use the UI for selecting from a spritesheet in the regular Sprite node?

Yes.

Barely. Yes, you will have more draw calls, but how many is too many depends on hardware and your game. Drawcalls are important on mobile devices, less so on PC, unless you have thousands of them.
In any case, premature optimization doesn’t do any good, especially if it is a guesswork. You can easily test performance by creating a new project and spawning a bunch of sprites or animated sprites until your FPS tanks. But in any case, there should be no noticeable difference in performance unless you have like 1500+ active sprites on the screen at a time.

I don’t think so.

There is Frame property in the inspector that governs animation. It’s the only way of selecting a frame from a spritesheet. Unless you don’t want an animation but only one single still frame, in this case you can use texture region.
image

1 Like