09-26-2017, 07:42 AM
I'm wondering what considerations should be made when choosing how to lay out your sprite sheets.
In a 3D engine, the bitmaps are loaded into texture memory, and if it's a spritesheet, you simply change the UV of your quad "sprite" to map to a different location in the sprite sheet, to change what "frame" it's showing. But because it's using texture memory, it's most efficient to make sure your sprite sheet sizes are in powers of 2. Then it would make sense to pick the smallest size you need for a particular sprite or type of sprites, and cram as much frames into that box as you can, to avoid having to jump up to the next power of 2.
But in this 2D engine, it may not work that way.
If it's all up to me, then I would just have a separate sprite sheet for each different character. Grouped that way, a character could re-use its own sprite frames, and there is no need to make one huge complicated sprite sheet with every character on it, getting lost in which character animations start at which index.
The only consideration I can think of is for drawing out your map in Tiled map editor. The sprite sheet should contain every tile in the map, so you can paint with one tileset while making a level, and maybe have different "themes", so you can make it a snow level just by switching sprite sheets, and all the grass would now have snow on it, etc.
Are there any other considerations I should make? Is there any resource saving by packing more sprites into one sheet? Making sheets of a certain size? Perhaps the palette of the 8-bit .png file is of importance, eg. would there be some reason to group them by what palette they use...
In a 3D engine, the bitmaps are loaded into texture memory, and if it's a spritesheet, you simply change the UV of your quad "sprite" to map to a different location in the sprite sheet, to change what "frame" it's showing. But because it's using texture memory, it's most efficient to make sure your sprite sheet sizes are in powers of 2. Then it would make sense to pick the smallest size you need for a particular sprite or type of sprites, and cram as much frames into that box as you can, to avoid having to jump up to the next power of 2.
But in this 2D engine, it may not work that way.
If it's all up to me, then I would just have a separate sprite sheet for each different character. Grouped that way, a character could re-use its own sprite frames, and there is no need to make one huge complicated sprite sheet with every character on it, getting lost in which character animations start at which index.
The only consideration I can think of is for drawing out your map in Tiled map editor. The sprite sheet should contain every tile in the map, so you can paint with one tileset while making a level, and maybe have different "themes", so you can make it a snow level just by switching sprite sheets, and all the grass would now have snow on it, etc.
Are there any other considerations I should make? Is there any resource saving by packing more sprites into one sheet? Making sheets of a certain size? Perhaps the palette of the 8-bit .png file is of importance, eg. would there be some reason to group them by what palette they use...