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: 
An easing function lets you interpolate values from one value to another over a given interval using something called an "easing function". These are functions that are designed to take a value and at any given point in the interval, output the value at a certain point in time.

This can be best explained by taking a look at a code snippet: 

```
// simple linear tweening - no easing, no acceleration

Math.linearTween = function (t, b, c, d) {
    return c*t/d + b;
};

```

> 
> @t is the current time (or position) of the tween. This can be seconds or frames, steps, seconds, ms, whatever – as long as the unit is the same as is used for the total time
> 
> 
> @b is the beginning value of the property.
> 
> 
> @c is the change between the beginning and destination value of the property.
> 
> 
> @d is the total time of the tween.
> 
> 
> 

Thanks, <http://upshots.org/actionscript/jsas-understanding-easing>

This is the definition of a linear easing function. Graphing this over time in terms of 't' we get a mere linear graph. 

**Okay, cool. What can we use them, for?**

Any time you have a start and finish in mind and want to animate them, you can use a "tween" or "easing function". 

For example, here's a GIF I just took of Angry Birds:

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

Notice the menu sliding out to the point in the screen, but it stops slowly? This is due to an easing function that eases into place. You can see those all over the web. If this was a linear ease, it would be the same throughout.

**Music?**

Sure! If we take the value of our current soundtrack value and interpolate it between that and 0 over a total t of say, 1 second then our volume will slowly fade out over a period of one second.

**Bounding Objects**

There are also functions that allow for bouncing (see: <http://easings.net/#easeOutBounce>) which can produce effects like this on a sprite without any physics systems: 

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

You can find more information on the web by searching for tweening.
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.