First milestone: basic player movement complete