Quando o encaminhamento de porta é necessário?

Eu tenho investigado redes para uso em um jogo de dois jogadores que estou escrevendo, e ainda não estou claro quando um dispositivo deve ter uma porta encaminhada para se comunicar com o mundo exterior.

Pelo que vi em outros jogos, o encaminhamento de porta é sempre necessário para hospedar um servidor, mas não é necessário no cliente. Além disso, existem outras situações, como o skype (que, no meu entender, é, em última análise, cliente para cliente), em que nenhuma extremidade deve encaminhar uma porta.

Então, minha pergunta é, na comunicação pela Internet, quando é e o encaminhamento de porta não é necessário, e quais etapas eu posso tomar como desenvolvedor para que meus usuários não precisem se preocupar com isso? Desde já, obrigado!