Hundreds of sprites Vs subviewport 3d for a 2d game

4.3 Godot Version

Question

Hi all,

I am just starting my journey as a hobby game dev and having a great time.

I am making a top down 2d game but can’t draw to save my life. My solution was to make 3d models in blender (which I had previous experience in) and then render PNG files to create sprite sheets.

Looking at the animations for my stylised character (which is going to be ~250px tall) and to get smooth animations I am looking at ~700 individual sprites (my walking animation is 12 frames x 8 directions plus weapon posing, tool posing, shooting, bow and arrow etc.) this seems crazy comparing to alot of tutorials I see (but they all seem to be pixel art needing less smooth animation to look good).

Another option I was thinking of is importing the 3d model and animations in a 3d space and having a sub viewport creating the sprite texture in real time with the animations.

I am happy to put the time and effort into either of these but I am concerned about the performance effects of each method. From what I’ve read the sprite sheet option would potentially lead to significant load times for the scene and the subview port would have potential performance implications when the scene is running.

The problem is I don’t know how significant either of these issues would be. The obvious answer to me is to prototype both and see what performance implications it has on the scene before I continue through to the rest of the characters, but while I’m happy to put the time in I’d rather not waste my free time on something that I’m going to throw away which by definition I would be doing with half of the work I do.

So the question is essentially is anyone aware of which method of these is likely to be superior?

Am I potentially barking up the wrong tree?

Thank you for any support and advice

Have you considered making it a 3D game with an orthogonal camera always pointing down? That way you can use your 3D models while having the illusion of 2D.

1 Like

Thanks for your response. It seemed a bit more complicated doing it in 3d tbh as I was going to do the characters as 3d models converted to 2d and then the background, art assets as 2d.

Do you know if that number of 2d sprites would tank loading times? (Designing for running on desktop/laptop at present)

Thanks

I haven’t timed sprite loading (I’m primarily 3D), so I can’t say. However, you don’t need to have different sprites for different directions, as you can just rotate your sprites at runtime as needed.