2D Platform Game Structure: Behavior State Machines, Entity Factory, Event Manager...