Pull request to master

I placed it in optional because I figured some (future) game options might not need to utilize those methods, but now that I've thought about it I think if it was the case then it should be that all protocols be in required or all in optional. I will move them all to required (since the scope of this project is for one game mode only).