I make games in C++ and SFML with OpenGL from GLEW. I have SFML for input and windows, and all of my rendering is done from normal OpenGL. Currently, when I use animations, I have an Animation class that holds all of the frames for each animation, and how long each frame should be displayed (two int std::vectors, one for ticks and one for frames), but the problem is when I have to add new animations to my entities or dealing with multiple animations at once.
During initialization, I create animations for my characters, (which I want to change to data-driven, but not a huge priority right now) and I store the animation to my current character and any enemies that start out. The problem is, I have like 12 different animations that have to be stored(in each direction: walk, idle, run, hurt, attack), and if I want to spawn new entities, I have to either store a copy of each animation for each entity type (which I want to eventually be randomly different), or I have to load them each time. It just seems.. difficult to keep track of so many. All the animation tutorials I find online are the very basics about changing your texture coordinates for the next frame, but nothing too in-depth.