Sven Co-op

Sven Co-op

161 ratings
Crear un servidor para tus amigos SIN abrir puertos o configuración de firewall alguna
By D.N.I.O. 071 and 2 collaborators
Aprende a crear una partida privada para tus amigos rápida y fácilmente. Esto no requiere abrir puertos, ninguna configuración especial para el router, ninguna regla de firewall, ni otras configuraciones de red menos importantes o conocidas.

Esto explica la nueva función y característica "NAT punch-through" (traducción de direcciones de red) introducida en la versión 5.19 de Sven Co-op, del 1º de Abril de 2019, y responde a las preguntas más frecuentes al respecto.
8
   
Award
Favorite
Favorited
Unfavorite
Resumen
  1. Una persona crea una partida siendo el host (huésped) desde la opción "Create game" (Crear servidor) en el menú principal.
  2. El host toma nota de su ID de steam (ej. STEAM_0:1:12345678) y luego la comparte con sus amigos. -- Puedes usar https://steamid.io/ para averiguarla si no lo puedes ver escrito en la consola de tu juego.
  3. Sus amigos se unen al servidor creado por el host escribiendo lo siguiente en su consola:
    connect STEAM_0:1:12345678
    Obviamente reemplazando STEAM_0:1:12345678 por la ID de steam del host. No se requiere ponerlo entre comillas.
Introducción
Desde que la versión 5.19 fue lanzada el 1º de Abril de 2019 (conocido como "fool's day", pero esto no es ninguna broma) Sven Co-op puede crear servidores usando el servicio NAT punch-through de Steam. (Esto también ha sido llamado "peer-to-peer" o "directo cliente-a-cliente" y otros nombres en español como "red de pares" o "red entre iguales".)

Esto significa que quien sea, incluyéndote, puede crear un servidor desde el menú principal, y hacer que sus amigos se unan sin tener que configurar puertos en routers, reglas de firewall, redes VPN (Hamachi, etc.), u otras configuraciones de red poco conocidas por el usuario promedio.

Pueden dirigir sus agradecimientos a nuestro programador del motor de juego GeckonCZ por implementer esta característica (no va a entender mensajes en español de forma directa, pero la intención igual cuenta).
¿Cómo funciona?
Cuando creas una partida (listen server como suelen llamarle), la cual se inicia desde la opción "Create Game" en el menú principal, Sven Co-op utilizará el servicio NAT punch-through de Steam para asegurar que una conexión entre el servidor y cualquier jugador conectándose pueda ser realizada aun a través de barreras como firewalls y configuraciones NAT. Personas que hosteen servidores de este tipo no requerirán de configuraciones especiales de red para abrir rutas entrantes.

Esto resuelve un problema común donde usuarios de conexiones hogareñas no pueden dejar su servidor disponible para jugadores en todo el mundo, particularmente para jugar con amigos.

Esto también debería eliminar cualquier necesidad de invadir servidores públicos, donde un (normalmente pequeño) grupo de amigos toman control de un servidor dedicado público al hacer vote-kick en cualquier otro jugador que quiera entrar, así el grupo puede seguir jugando solos. Esto ha sido un gran problema últimamente, y esperamos que esta característica de solución a este problema. -- Entendemos que grupos de amigos suelen querer jugar sin ser interrumpidos, ¡así que por favor difundan la palabra acerca de esta nueva función!
Crear un servidor
Esta función se encuentra activa por defecto siempre y cuando el modo LAN esté desactivado. Cualquiera que sepa tu ID de Steam puede conectarse a tu servidor ni bien inicies una y el mapa haya cargado. Si no quieres esta función deberás desactivarla iniciando Sven Co-op con el parámetro "-nop2p".

Una vez que inicies tu servidor sería útil tener una copia de tu ID de Steam así puedes dársela a tus amigos. Ellos deben saberla así pueden unirse a tu servidor. Puedes ver esto usando el comando "status" en la consola, o en la misma presta atención a unas líneas de texto que digan lo siguiente (o similar):

Initializing IP networking Local IP address: 192.168.56.1, SV port: 27015, CL port: 27005 Initializing Steam P2P networking Local SteamID: STEAM_0:1:12345678

Ten en mente que conexión a través de UDP/IP sigue activa como antes, así que si esto siempre funcionaba para tí previamente cualquiera puede conectarse a tu servidor ya que aparecerá en la lista de servidores. Por lo tanto para mantener tu servidor realmente privado deberás colocar una contraseña.

Si estás jugando solamente en LAN no necesitarás de esta característica y puedes cambiar a su respectivo modo (opción "sv_lan" = 1) desde las opciones dentro de "create game" antes de crear el servidor.
Unirse al servidor de un amigo
Ya que estos servidores no aparecen en la lista (tampoco en "Amigos/Friends") primero debes saber la ID de Steam del jugador que haya creado el servidor.

Para saber la ID de alguien en tu lista de amigos de Steam simplemente visita https://steamid.io/ y coloca el enlace de su perfil de Steam, por ejemplo "https://steamproxy-script.pipiskins.com/id/AdamR/". Después puedes copiar desde la parte marcada como "steamID" la cual comenzará con "STEAM_......", por ejemplo "STEAM_0:1:12345678".

Una vez que sepas la ID puedes unirte a su servidor usando el comando "connect" en la consola de Sven Co-op, por ejemplo:

connect STEAM_0:1:12345678

Otros formatos de ID de Steam como "steamID3" y "steamID64" no funcionarán. No coloques la ID entre comillas.
Preguntas Frecuentes
¿Es esto realmente peer-to-peer?

Sí y no.

La conexión inicial se forma usando el servicio NAT punch-through de Steam, el cual funciona interpretando como pares iguales al host del servidor y a los jugadores que se unen. El servicio de Steam luego intenta negociar una forma de que estos dos jugadores formen una conexión UDP/IP directa. Sin embargo si no se puede establecer ninguna ruta directa Steam usará sus propios servidores de retransmisión para puentear a ambos jugadores.

Una vez que la conexión inicial es establecida sin embargo, aun existe una clásica relación cliente-servidor entre los jugadores que se unen y el host. Jugadores individualmente conectados no tendrán ninguna comunicación directa con nadie aparte del jugador que hostea, así que si el host cierra su juego, lo desconecta o pierde conexión a internet el servidor caerá para todos los que vayan a unirse. (No hay migración de host alguna.)

Puedes encontrar más información acerca de los datos técnicos de este sistema aquí (inglés):

https://partner.steamgames.com/doc/features/multiplayer/networking
https://en.wikipedia.org/wiki/UDP_hole_punching

¿Esto es más lento/da más lag que una conexión directa?

En principio cuando los servidores de retransmisión de Steam son usados casi siempre habrá un ligero problema de rendimiento a causa de los enrutamientos/saltos adicionales necesarios para puentear la conexión de dos jugadores entre sí. Dicho esto el servicio NAT punch-through de Steam y los servidores de retransmisión generalmente son aceptados por rendir muy bien y seguramente, así que no debería verse ninguna pérdida de calidad respecto a la conexión de los jugadores. (Particularmente ya que Sven Co-op no es competitivo.) Se requerirá de más benchmarking (evaluación comparativa) para responder a esta pregunta con certeza cuando los servidores de retransmisión de Steam sean necesarios.

Esto no aplica si el servicio NAT punch-through fue capaz de formar una conexión directa entre dos jugadores. En cuanto al rendimiento esto debería funcionar igual de bien como una clásica conexión directa con UDP/IP.

¿Este sistema mantiene en secreto mi IP pública?

No.

Si los servidores de retransmisión de Steam son usados entonces tu dirección IP no será inmediatamente visible una vez establecida la conexión, pero ya que el sistema NAT punch-through intenta formar una conexión directa antes de volver a recurrir a los servidores de retransmisión esto implica exponer cuál es tu dirección IP pública.

No hay opción disponible para que puedas forzar a usar los servidores de retransmisión solamente, e intentar esto por tu cuenta al estorbar con la conexión directa del sistema NAT punch-through no ayudará.

Esto aplica a ambos el jugador host y a los que se unan al servidor.

¿Puedo banear/prohibir que jugadores entren?

Sí.

Igual que antes puedes usar el comando "banid" para banear una ID de Steam, por ejemplo "banid 0 STEAM_0:1:12345678".

¿Hace falta una solución VPN como Hamachi?/¿Sigo necesitando de Hamachi?

No. El punto de esto es no requerir de ninguna clase de configuración de red especial de parte del usuario. Es muy posible que usar una solución VPN afecte negativamente el rendimiento si se lo compara a una conexión directa.

Usando esta característica de conectividad va a ser más rápido que una solución VPN como Hamachi ya que las conexiones lo más directas posible. Cuando sea absolutamente necesario recurrir a los servidores de retransmisión de Steam se debe aclarar que éstos son armados con el único propósito de enlazar a jugadores usando una aplicación de juego y no una conexión de red generalizada como lo es Hamachi.

¿Funciona el RCON?

No.

RCON sigue dependiendo de una conexión UDP/IP directa.

Esto no será muy necesario ya que un jugador real siempre estará en el juego.

¿El sistema funciona con servidores dedicados?

No.

Los servidores dedicados no son enlazados a ninguna cuenta de Steam así que no habría forma de asociar una ID de Steam con ellos.
Si esto fuera posible también requeriría que tengas una segunda cuenta de Steam, ya que la misma cuenta no puede registrarse Y usar un servicio de Steam de forma activa (jugando/hosteando un servidor, usar SteamCmd, etc.) en dos instancias al mismo tiempo.

Requiere conexión UDP/IP directa.
Final
Espero que esto haya sido informativo y útil, cualquier duda pueden comentar en esta guía.

Esta es una traducción-transcripción de la guía originalmente creada por Adambean y GeckonCZ: http://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=1705149010]Aquí
17 Comments
Ivan Jerknoff 25 Jun, 2023 @ 10:17pm 
My first time playing this game was loud boring and broken few Neo-Nazis that thought I was black starting calling me the N-word people talk like bots or fatherless kids or this bots
Evangelina 1 Apr, 2023 @ 11:46am 
Gracias!!
Pedro Suárez-Vértiz 15 Sep, 2022 @ 5:30pm 
los server peruanos son muy random
Lukz0 23 Feb, 2022 @ 2:22pm 
genial, ahora haz uno de minecraft java no premiun XD
VULKAN THE DRAGON 19 Dec, 2020 @ 9:46am 
pregunta pana como hago para poner en el servidor armas de counter strike 1.6 o nezon zombies ?
Kroono 12 Dec, 2020 @ 11:31pm 
Tengo una pregunta, como carajo hago que no se me crashee el juego cuando voy a un server que cambio de mapa?
jeijei🤬 6 Oct, 2020 @ 11:46am 
@sancer x2 bro ami amigo tambien le sale lo mismo y cuando yo quiero entrar me sale que no se puede
Sancer 12 Aug, 2020 @ 8:08pm 
A mi amigo le da error y le dice que intente otra vez conectarse al servidor. ¿Que puede usar?
g' 11 Jun, 2020 @ 7:39pm 
@D.N.I.O. 071 Qué lastima, por el momento no puedo abrir los puertos del router debido a que mi proveedor de internet me lo oculta pese a que haya realizado el pedido correspondiente, pronto espero solucionar esto. Buena guía., saludos!
D.N.I.O. 071  [author] 11 Jun, 2020 @ 7:14pm 
@lm No, un servidor creado con esa herramienta requiere una IP, como se menciona en la sección de "preguntas frecuentes" hacia el final.