1
\$\begingroup\$

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.

\$\endgroup\$
2
\$\begingroup\$

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.

Question - has this been implemented in any current game engine? If the answer is no, then there is almost certainly a reason for that.

I think you might be greatly underestimating the distance between research paper and a system so well known and tested a small team can include it in their game (without it being the major feature of the game). Check out NaturalMotions work, and the size of their team when considering comparable efforts.

Also, physically-based animation sounds good, but is often impossible to work with in practice. You lose all control over the characters motion. The paper you reference talks about characters learning to walk, which is the worst way to get something to look like something else. If you want your bipedal characters to look like bipedal characters, just use bipedal mocap. You can't do better than the original source. Google's current state of the art still looks pretty awful when compared to human motion https://www.youtube.com/watch?v=faDKMMwOS2Q

As for performance... well, thats a sliding scale, so kinda impossible to answer. No, you almost certainly can't have 500 characters with a full deep NN evaluating every frame, because it's difficult to get 500 fully-animated characters on-screen on todays hardware using trivial traditional animation techniques.

Long story short - figure out what your game is good at, focus on that, improve animation if you have time & energy left.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.