some component based two dimensional game engine