¿Hay alguna forma de que los usuarios en múltiples máquinas virtuales (en la misma computadora física) jueguen uno contra el otro en un juego multijugador de LAN, si el juego no tiene un multijugador fuera de línea convencional?

No Cada VM se ve como una computadora separada. Se comunicarían entre sí a través de conexiones de red, incluso si esa conexión de red es un enlace virtual entre ellos (es decir, un puente de software que actúa como un conmutador LAN).

Si el juego admite múltiples instancias en ejecución que se comunican entre sí a través de una LAN (por ejemplo, usando cada dirección IP), entonces funcionaría como si cada VM fuera de hecho una computadora normal. En este caso, funcionaría exactamente como si el juego se ejecutara en varias instancias, una en cada computadora y cada usuario que operara esa instancia. Simplemente envía paquetes de datos entre todas las instancias para actualizar el juego en todos los juegos en ejecución vinculados entre sí.

Si el juego permite múltiples controladores en la misma instancia (por ejemplo, tener dos pads de juego conectados a la misma computadora), entonces solo puede hacer esto en una máquina (y, por lo tanto, solo una VM). Lo que significa que necesita alguna forma para que dos o más usuarios vean e interactúen con la misma máquina a la vez (no es una tarea fácil y probablemente requerirá algún tipo de uso compartido de escritorio remoto). El problema es que ahora tiene una VM a la que luego se conectan otras computadoras, ¿cómo permitiría que cada una conecte un dispositivo de entrada / salida separado para compartir la misma computadora? De hecho, podría descartar la idea de VM, ejecutar el juego en el metal desnudo y simplemente compartir un escritorio remoto normal: tendría exactamente el mismo problema.

Si el juego está diseñado para connumicarse de alguna otra manera que no sea LAN (quizás canalizaciones con nombre o archivos compartidos de RAM, RPC, etc.), entonces “podría” ejecutarse como varias instancias en la misma máquina. Nuevamente, VM no lo hará más fácil: una sola computadora de metal desnudo actuaría exactamente de la misma manera. Y aún así, necesita poder compartir su escritorio y obtener múltiples entradas de varias fuentes externas. El mismo problema que antes. Sin mencionar que el juego probablemente nunca se diseñaría de esta manera, al menos el mismo esfuerzo que simplemente compartir LAN, con mucha menos usabilidad (un desarrollador de juegos sería tonto si realizara juegos de múltiples usuarios de esta manera).

Eso parece extremadamente poco práctico, pero dejando eso de lado, si el juego no tiene soporte LAN, ponerlo en máquinas virtuales no va a cambiar eso. Tendría que conectar las máquinas virtuales a Internet y pasar por los servidores web multijugador normales. Si tiene soporte LAN, no sé lo que se supone que significa “no tener MP fuera de línea convencional”, pero simplemente necesitaría crear una red virtual entre las máquinas virtuales.