Question: I found this [cool website](http://gamemechanicexplorer.com/#easing-1) for game development and it has a list of easing functions: 

![enter image description here](https://i.stack.imgur.com/Q5VXB.png)

Although the site contains a description of what they're for, it goes over my head. What are easing functions and what are they used for?

Update
------

I found a better example of the functions themselves from [Phaser.io's source code](https://github.com/photonstorm/phaser/blob/master/src/tween/Easing.js). These functions are much simpler than the answers here would suggest. They only take one parameter, `k`. As part of the answer, I'd like to know how to use these.

Answer: 
Easing functions are used for interpolation, typically (but not necessarily) in animation / kinematic motion. Linear interpolation (lerp) is something you may have heard of. Let's say you lerp a smiley face from one corner of the screen to another (much as per your image). This means the smiley will move at a steady velocity from point A to point B. If you were to apply this to movement of a limb, it would look very robotic and unnatural -- the actuators / servos that robots use, perform this way. Obviously, human limbs move in a very different way. And most motion that you will see in nature will have interesting motion curves, rather than the steady, unchanging velocity seen in linear interpolation.

Enter easing. Easing motion means the velocity is *not* constant. What this achieves is to look more realistic. Watch people, watch different animals, watch plants bending in the wind, or even how falling rain changes direction on a gusty day. Watch the velocity of a ball as you throw it up in the air and in comes back down again. Watch the motion of a guitar string as you pluck it. Each of these types of motion has a different curve describing velocity.

I suggest you play with [GreenSock's GSAP online](http://www.greensock.com/jump-start-js/) to get a feel for what the different types of easing curves produce in terms of motion. It's one of those things where it takes time and practice to map a particular named curve to the sort of motion you imagine you want. But once you have grasped the basics, you'll have a lot of fun.

P.S. As I said, easing is not only used for animation. It may be used for sound panning, for effecting skeletal motion at the logical / model level, or anything else you can think of that might need specific smooth variation over time.
Easing functions serve to change a value during a time period, from a starting number to an end number.

You use that value to animate a property of an object in your game, such as position, rotation, scale, changing colors and other properties that use a value.

The different easing functions determine the "feel" of the animation, or how the value changes over time.

On the website you posted, the graph shows the value changing over time from a start to an end, so it doesn't mean the object you are animating will follow the path of the ball in the graph.