Java 2D Game Programming Platformer Tutorial - Part 1 - The Game State Manager