Programming, animation, and the observation of nature

A reader of this blog, Nieh, has commented that s/he first learnt about inertia by playing Asteroids when s/he was young. I think this is a great example of how games can serve to some educational purpose. It is possible when playing games to get an intuitive feeling for the way things work. Bizarrely, they can teach you about the physical world around you in ways that are enjoyable and intriguing. It seems strange that virtual spaces should teach us things that we take for granted every day, but I think that it is precisely the lack of physicality in the medium that gives players perspective on the astonishing range of things that they take for granted every moment of their waking lives.

Sometimes it’s not always the times that the games are working perfectly that are the most educational either. I’m sure most experienced gamers have managed to get something stuck, suspended in mid-air at one time or another. I managed this very recently in the superb PS2 game God Of War (UK link US link) when I dropped a huge stone onto a statue then pushed the statue out from underneath it, leaving the stone hanging in the air. Rather than countering knowledge of the world, this kind of event encourages us to think about the reality that we live in and the way that things work.

Games are built on their own systems of logic. My Monkeys In Space game is built entirely of statements saying ‘if *this* is true then do *this*’, and all the action is defined by the complexity of the conditions by which the programmer describes those ‘if *this* is true’ statements. When you interact with a sufficiently complex game you often wonder ‘I know this would work in the real world, but will it work in the game?’ and it you are right you feel a burst of respect for the programmer, but you also have applied and tested your knowledge real-world physics.

Things jump up to a new level when it comes to creating games. Suddenly the world around you turns into a huge Newtonian arrangement of levers, gravity, and interia. You begin to work out how to use a sine curve to describe the motions of a knee joint, or analyse the distribution of branches along the trunks of different species of tree, noting the height they begin from the ground and the angles they take from the trunk. I’ve still not worked out fully how to simulate something dangling on a solid rod from another object in motion, but it’s something that’s ticking away inside my head and I’m sure I’ll work it out if I ever really sit down and think about the maths of it all.

The creation of games forces you to think about the maths of nature. Back in school I often would wonder when I would ever need to know about trigonometry, but now I find myself using it regularly for the calculation of distances between objects on a two dimensional grid. I’ve not tried three dimensional spaces yet; I have been tempted, but I’ve never been altogether happy with the different control systems…

Anyway, programming games really makes you examine the world around you and the processes that make one thing relate to another. Animation does this too, because you’re always trying to simulate a natural relationship between objects. This does not mean that the objcts themselves have to be natural, only that the connections between them appear logical. There is nothing that spoils immersion in an animation more than objects acting in ways that appear illogical. I’ve always tried to simulate natural movement in things to the best degree that I can in my animations. Of course, being able to do this for all objects all the time is a task that Flash is not suitable for; I couldn’t make the cloth dangle convincingly on every character, but I might be able to make a few things billow in the wind, or sway when coming to a halt. These elements are things that are recognisable from the real world and putting them into an animation conveys a level of realism that is beyond the normal limits of cartoon figures. As with anything, you can use these rules to make a joke, using a mouse to pick up an elephant is so unnatural that it becomes amusing, but, for the majority of the time, animators and programmers need to use the world around them to inspire them to work in ways that are instantly recognisable to users. By reflecting reality we can create scenes that are immersive beyond their media.

Leave a Reply