c++ es el lenguaje mas robusto para este tipo de tareas, java te puede servir para juegos de celulares o multiplataformas, pero para juegos muy boludos ya que java es interpretado no compilado entonces anda bastante mas lento que c++.