A top-down shooter engine in JS and canvas