In join_game, why are you initializing the PDA again?  Presumably this already exists after game is created?  

Pass it in as an account without the initialize? You should already know the PDA address at the point you are joining a game.

Sorry if I missed some important detail here and if this is a non sequestered answer for you.