c# - online - unity multiplayer tutorial español
¿Puedo usar el HLAPI de red de Unity sin pagar el servicio Unity Multiplayer? (1)
Puede usar Unity HLAPI
sin pagar. Simplemente no use la API Unity Match que hace, entonces no tendrá que pagar por nada.
Puede hacer que otro jugador se conecte directamente a otro jugador que no se encuentre en la misma red local, pero debe realizar el reenvío de puertos en cada computadora. Los jugadores pueden realizar el reenvío de puertos a través de la configuración de su enrutador, pero no desea que su reproductor pase por esto. Puede hacer el reenvío de puertos desde el script C #, pero es complicado si no sabe nada sobre la creación de redes. Hay muchas bibliotecas de C # que pueden hacer esto para que tenga que reinventar una rueda.
Una vez que funcione el reenvío de puertos, puede usar la API estándar de Unity para conectarse directamente a otro reproductor en otra red.
Si desea llevar esto más lejos, puede tener una secuencia de comandos que envíe la dirección IP y el número de puerto de los reproductores a su servidor para que los jugadores se puedan conectar automáticamente sin tener que escribir manualmente la dirección IP y el número de puerto. de cada computadora.
EDITAR :
Unity Match que hace API = Todas las clases dentro de UnityEngine.Networking.Match
, como NetworkMatch
Unity standard API = NetworkServer
y NetworkClient
NO debes usar NetworkManager
porque la mayor parte de su función depende de la API de concordancia de Unity .
Para crear un juego de red que esté libre de la API de creación de coincidencias de Unity, solo necesita el NetworkServer
y la clase NetworkClient
.
Para crear el servidor :
NetworkServer.Listen
Tiene métodos sobrecargados como
public static bool Listen(string ipAddress, int serverPort);
public static bool Listen(int serverPort);
Para crear un cliente (Conectarse al servidor) :
NetworkClient.Connect
public void Connect(string serverIp, int serverPort);
Perderá funciones como crear y unirse a juegos si no quiere utilizar la API de creación de coincidencias de Unity. Puede usar NetworkServer
y el NetworkClient
que mencioné anteriormente para crear un juego de red completo. Simplemente cree un servidor, conéctese a él y comience a enviar y recibir información. Vale la pena porque cuando el servidor de Unity baja o comienza a ser lento, tu juego seguirá funcionando a diferencia de otros.
NOTA : Unity está trabajando en la aplicación que le permite alojar su propio juego. Esto aún no está disponible, pero cuando lo publiquen, podrán alojar su propio juego sin el servidor de Unity ejecutando esa aplicación en su servidor. En este momento, quieren que pagues para usar algunos de sus códigos de red, pero los codificadores reales no tendrán que hacer esto.
Vi la página de servicio de multijugador de Unity, y estoy completamente confundido:
¿Puedo usar la API de red de alto nivel de Unity (NetworkManager / NetworkManagerHUD) en un juego publicado sin pagar Unity Matchmaker y los servidores de retransmisión (sean estos)?
Tengo mi propia máquina virtual basada en la nube en la que quiero ejecutar un servidor dedicado. Mi proyecto es solo un pequeño juego que jugaría con mis amigos (nada comercial ni a gran escala). Quiero ejecutar una copia publicada de ese juego en el modo de servidor dedicado en mi VM, y hacer que mis amigos ejecuten su copia de cliente publicada y conectarse al servidor a través de NetworkManager.
¿Puedo hacer eso gratis? No me importa si mis amigos tienen que ingresar manualmente la IP y el puerto del servidor en su copia del juego usando NetworkManagerHUD. ¿Lo harían haciendo así como una "CCU" (límite de 20 para Unity Personal)? ¿Utilizaría eso el ancho de banda de Unity Matchmaker ($ 0,49 / GB, ni siquiera disponible para Unity Personal)?
¡Cualquier aclaración sería apreciada! :)