Existe alguma maneira de os usuários em várias máquinas virtuais (no mesmo computador físico) jogarem um contra o outro em um jogo para vários jogadores da LAN, se o jogo não tiver um multiplayer offline convencional?

Não. Cada VM é vista como um computador separado. Eles se comunicavam através de conexões de rede, mesmo se essa conexão de rede fosse um link virtual entre eles (ou seja, uma ponte de software agindo como um comutador LAN).

Se o jogo suportar várias instâncias em execução se comunicando através de uma LAN (por exemplo, usando cada endereço IP), funcionaria como se cada VM fosse de fato um computador normal. Nesse caso, ele funcionaria exatamente como se o jogo estivesse sendo executado em várias instâncias, uma em cada computador e cada usuário que opera essa instância. Apenas envia pacotes de dados entre todas as instâncias para atualizar o jogo em todos os jogos em execução vinculados entre si.

Se o jogo permitir vários controladores na mesma instância (por exemplo, com dois consoles de jogos conectados ao mesmo computador), ele poderá fazer isso apenas em uma máquina (e, portanto, também apenas em uma VM). O que significa que você precisa de alguma maneira para que dois ou mais usuários vejam e interajam com a mesma máquina de uma vez (não é uma tarefa fácil e provavelmente exigiria alguma forma de compartilhamento remoto da área de trabalho). O problema é que agora você tem uma VM que é vinculada a outros computadores. Como isso permitiria que cada um conectasse um dispositivo de entrada / saída separado para compartilhar o mesmo computador? Na verdade, você pode jogar fora a ideia da VM, rodar o jogo em bare metal e apenas fazer um compartilhamento de área de trabalho remota normal – você teria exatamente o mesmo problema.

Se o jogo for projetado para conumear de alguma outra maneira que a LAN (talvez pipes nomeados ou arquivos de RAM compartilhados, RPC, etc.), ele “poderá” ser executado como várias instâncias na mesma máquina. Novamente, a VM não facilitará as coisas – um único computador bare metal atuaria exatamente da mesma maneira. E ainda assim você precisa compartilhar sua área de trabalho e obter várias entradas de várias fontes externas. Mesmo problema que antes. Sem mencionar, o jogo provavelmente nunca seria projetado dessa maneira – pelo menos o mesmo esforço que apenas com o compartilhamento de LAN, com muito menos usabilidade (um desenvolvedor de jogos seria tolo em fazer jogos com vários usuários dessa maneira).

Isso parece extremamente impraticável, mas deixando isso de lado, se o jogo não tiver suporte a LAN, colocá-lo em máquinas virtuais não vai mudar isso. Você precisaria conectar as VMs à Internet e acessar os servidores multiplayer da Web normais. Se ele tiver suporte a LAN, não sei o que significa “não ter MP offline convencional”, mas você simplesmente precisará criar uma rede virtual entre as VMs.