Во первых метод knight в прототипе перекрывается свойством knight
Game.prototype.knight = function(game, gameSize,position){
this.game = game;
this.position = {x : 150, y : 150};
this.size = {x : 200, y : 230};
this.current = 0;
this.knight = []; // <----- упс! следующий вызов this.knight() окажется неудачным.
}
Во вторых raf рекурсивно вызывает loadGame, loadGame вызывает knight, knight переписывает объект this.position, поэтому ни х, ни y не изменяются.
В третьих оформляй код в песочнице, чтобы остальным не приходилось делать это за тебя.