I am asking this question because I am currently at the point where I have to think about how the characters in the game that I am making will be animated and I want to check if my desired approach will apply well.
As the title suggests I am very interested in physics-based skeletal animation and in addition to that I would like to use neural networks to closely connect the AI of a character and its movements.
Things like this have already been done and it should be pretty easy to find resources on how to implement such a system into a 3D rendering engine.
What I am asking is how well can I expect this to work with the game that I am picturing? The game is going to be a top-down shooter (looking very much like Redie) in an open world, which will mean that the animations will have to be able to adapt to any kind of terrain. An important mechanic in the game is an FOV system, which makes the player act like an absolute light, only illuminating areas that the character can directly look at (just like in Teleglitch, but 3D). This is a reason why I want to use volumetric shadows and it should allow for some culling opportunities.
However, during the game, the screen may be filled with swarms of characters, thinking, moving and colliding each individually.
To avoid some work and to be easier on the FPS, I have set my goals for the graphical quality to 'minimal', which means I will only use low polygon meshes (similar to the ones used in Redie or this video) and most objects will be solid coloured.
What I would like to put a lot of focus on is accurate lighting/shadowing (volumetric shadows), accurate physics and dynamic character animation, which should all be computed for hundreds of individual entities at a high frame rate.
Is it a good idea to use physics based skeleton animation for this many (easily 500) characters? Also taking into account all the computation time saved by low poly meshes(and hitboxes) and all the time still to be spent on calculating many lightsources and volumetric shadows?
I am programming in C++ and I am using OpenGL for rendering.