Game programming patterns and the structure of the Scrolling Shooter project