Java Game Engine written from scratch