http://www.codingcookies.com/2013/04/01/building-a-roguelike-in-javascript-part-1/