eli5 How have we made animated movies with fluid, realistic human movement, but the same still can’t be achieved in video games?



eli5 How have we made animated movies with fluid, realistic human movement, but the same still can’t be achieved in video games?

In: Technology

A frame in a video game must render in 0.017 seconds on a machine that costs $500.

A frame in a movie can render in as long as it takes, on a machine that cost tens or hundreds of thousands of dollars.

To get the video game output that fast for that cheap, enormous computational shortcuts have to occur and the motions and physics are greatly simplified.

Two main reasons:

– Most movies use motion capture these days – they put a human in a mocap suit, capture their movement and then layer an animation on top of it. This creates realistic movement because, well, it is. Video games still have to simulate every single move and they miss a lot of the little idiosyncrasies that make movement look real.

– Video games have to make tradeoffs. The consoles are only so powerful and those resources have to be allocated across all of the tasks that need to be done. We could increase realistic movement, but that might mean we get to put fewer textures on the model, reduce draw distances, eliminate NPCs, etc. It is a balancing act and eventually it is ‘good enough’ for its purposes.

Because those images aren’t being actively rendered in a movie or in TV; they’re fully rendered and take no real resources to play.

In video games, though, all that would need to be rendered on the fly and would need *enormous* resources to handle properly.

We’re getting close, though

Animated movies are animated over many months by experts, who tweak them to make everything perfect. Video games are animated by algorithms that can run quickly in the minimum PC a casual gamer might have.

Fast algorithms are not as good as humans. Not even close.

The rendering of a movie is also of almost unlimited complexity, where the rendering in a game needs to be done in real time by an average video card.

The short answer, the video games don’t know what you’re gonna do, so it has to animate on the fly, which is hard to do. Real time is hard to keep up with!

An animated movie though, might be 2h long but takes literal days to render.

Video games are interactive and movies are pre-rendered. It can be done but the cost is much higher.

In movies, the animators control everything.
They know where the “camera” is, they know where the person is, they know where everything the human interacts with, what it is and how big it is.
And if they don’t like any of that they can change it.
Often they’ll have a human in a suit that they can track really easy just do the thing, so they know that thing looks human because it’s a recording of a human.

The problem with the game is that the game dev isn’t in control. The controller is in your hand.
You may for example swing a sword to hit an orc, an elf, a dwarf or a wall.
There are just so many things you can swing a sword at that the game dev can’t figure out everything, so he makes a “close enough” thing that works OK for almost everything, but doesn’t work perfectly for anything.

In addition the movie guy can take as long as they want and if they still don’t like it, they can just hit delete and start over.
The game dev has to get it right the first time, and dozens of times a second.

Games don’t really *want* realistic human movement in some cases.

Movies typically would get realistic human movement by using motion capture to guide their character rigging instead of trying to hand animate things. This works well because the movie characters are doing one, pre-planned set of movements and interacting with a known environment.

In contrast a game is controlled by the player, interacting with a largely unpredictable environment. The player can input commands in unexpected ways and expect the character to respond promptly.

Suppose for example the player says to sprint forward as fast as possible, then to immediately stop, reverse course as fast as possible, then immediately dodge to the right. If you have ever run wind sprints you know slowing down and reversing course isn’t something that can happen instantly, and if you want to move one way you will need to plant your foot on the other side of your body to push off from. But suppose the character is running and the foot they would need to plant out to the side is the one they are currently standing on? They would need to continue their run until their other foot hits the ground, allowing them to reposition the first foot to push off. All this while likely keeping their torso and arms free to operate a weapon and point in arbitrary directions.

These requirements of realistic human movement results in a character control experience which seems clunky, unresponsive, and unpredictable. Not only do the changes in direction take a while to achieve, but in the example of running the actual movement would happen during different periods of the run cycle so to the user it would have a varying delay!

So yes, it *could* be made more realistic but game designers and players don’t *want* it to be completely realistic.