For my game, Newton Adventure, I wrote a specification for a 2d animation file format and a set of tools to work with.
http://devnewton.bci.im/projects/nanim
Existing 2d animation file formats have severe limitations (gif max colors) or complex to parse (apng, mng) and most are unoptimized for today GPU which demands to store in "power of two" sized textures.
Most modern games use a custom file format, generally png textures with xml metadata for animations. I took another approach of the problem:
- a protobuf specified file format: no need to write a parser, just generate one for your preferred programming language: https://code.google.com/apis/protocolbuffers/
- simple, stupid : https://devnewton.bci.im/projects/nanim ... 60ffc66e84
- with the nanimopt tool, all the animation frame are stored in power of two sized textures using a bin packing algorithm.
- extensible: protobuf allow to add extension to the file format to handle specific needs of other games.