Implementing 2d Games