Em um jogo anterior que escrevi, eu tinha uma classe de personagem do jogo. Essa classe rastreou a localização, a velocidade e um conjunto de estados. Exceto que os estados estavam vinculados muito perto da animação. Cada estado tem uma lista de botões que podem fazer a transição para outros estados e uma animação que acompanha esse estado (você também pode fazer alterações no estado da animação por quadro, se quiser fazer algo como um soco com tempo muito específico ou alguma coisa). Todos os dados de colisão para o personagem foram feitos por quadro de animação. Isso foi feito para um jogo de luta, então parecia necessário na época ter a animação e a colisão tão intimamente ligadas ao estado do personagem.
Mas o programador em mim sente que isso está misturando responsabilidades. E agora estou criando um mecanismo de jogo que quero ser um pouco mais genérico do que isso. Como você normalmente organiza as estruturas relacionadas aos personagens, como eles são desenhados, como eles interagem entre si e com o mundo, etc.?
Sei que essa é uma pergunta vaga que depende do tipo de jogo que eu quero fazer, mas acho que ver como outras pessoas lidam com isso seria útil.
(e se isso importa, tudo isso é para um jogo 2D.)