26

El concepto más importante en un juego multijugador

25759Puntos

hace un año

Hacer un videojuego multijugador no es para nada fácil. Sin embargo, si tienes los conceptos básicos claros, puede volverse una tarea muchísimo más sencilla.

Hola, soy Hector Pulido. En este artículo te enseñaré el concepto más importante en un videojuego multijugador y, si me acompañas hasta el final, te mostraré una sorpresa increíble 😮.

Dime una cosa: ¿en qué se parecen el primer Counter Strike, Battlefield y World of Warcraft? Admito que puede parecer una pregunta muy obvia, los tres juegos son videojuegos multijugador. Pero ahora te tengo una mejor pregunta: ¿en qué se diferencian sus modos multijugador? La respuesta es el principal concepto de este artículo: la autoridad 🕵️‍♀️. Este es un concepto clave para entender los videojuegos multijugador y se basa en una simple premisa: ¿dónde se ejecuta la mayor parte de la lógica de tu juego?

En Counter Strike, el movimiento de los jugadores y todas sus acciones se ejecutan en el cliente. Estos movimientos se transmiten a través de la red al servidor y luego a los otros jugadores. Es por esto que es tan fácil hacer trampas en ese juego. Este juego tiene lo que llamaríamos mínima autoridad.

En juegos como Battlefield, los inputs del jugador se procesan en el cliente, no obstante luego se envían a un servidor y son validadas por este. En caso de haber alguna irregularidad, esta se repara y se envía a todos los demás jugadores. Si la irregularidad continúa, el juego expulsa al cliente irregular. Este enfoque se conoce como autoridad media o mixta.

Por último tenemos juegos como wow, que hacen lo mismo que battlefield, pero también tienen una economía, ataques mucho más complejos, persistencia, etc. Todas esas mecánicas son ejecutadas en el servidor, es lo que llamamos autoridad alta.

En el límite, un juego offline o de un solo jugador no tiene autoridad y plataformas como Google Stadia tienen autoridad absoluta (aunque no sean videojuego multijugador).

Untitled.png

Puede parecer que la autoridad evita los hacks y es la solución perfecta, y… lo primero si, lo segundo no tanto, te mostraré algunos problemas que tiene el tener un juego demasiado autoritativo.

  1. Mayor lag y latencia en el juego, después de todo, los datos tienen que pasar por el servidor para ser procesados.
  2. Se necesita más ancho de banda, esto debido a que la cantidad de datos enviados son mucho mayores entre más autoridad haya, el ejemplo de esto es la autoridad absoluta, en donde ya no enviamos simples datos sino imágenes enteras.
  3. Gastarás más dinero en servidores, si todo el código se ejecuta en tus servidores, tu proveedor te cobrará por el ancho de banda y sobre todo por la cantidad de procesamiento.
  4. Tu código tendrá mayor cantidad de puntos de falla, esto está relacionado con el punto anterior, más código en el servidor suele significar código más complejo y monolítico.

Entonces, ¿la solución a todo eso es tener autoridad mínima?.. De nuevo, no, aquí te van unos cuantos problemas que tiene la baja autoridad.

  1. Vulnerabilidad a los hacks, ya lo vimos antes, si es el cliente el que decide como se comporta el juego, ese juego puede ser hackeado fácilmente, incluso con programas como cheat engine
  2. Alta entropía en la sincronización, este es el punto más difícil de explicar, pero aquí va, durante tu partida se van a generar micro-errores, estos no pueden ser fácilmente solucionados por el cliente, ya que este no conoce el estado global, esos micro-errores se suman y si la partida dura mucho puedes acabar con que dos jugadores tienen partidas totalmente distintas, a eso le llamamos entropía.
  3. Mayor cantidad de situaciones frustrantes para tu cliente, como la típica situación en donde disparas 100 veces y el enemigo sigue vivo, eso está relacionado con el punto anterior, pero también con la red, la capacidad del ordenador cliente, etc.

Como vimos, no existen las balas de plata. Debes elegir cuidadosamente qué tanta autoridad va a tener tu videojuego multijugador antes de empezar a crearlo. Ahora sí, viene la sorpresa, y es que ha salido el curso de fundamentos para el desarrollo de videojuegos multijugador online en donde veremos este tema con mayor profundidad, ejemplos y mucho más.

No solo eso, también ha salido el curso práctico de videojuegos multijugador online con Unity y mirror, en donde recrearemos el mítico videojuego de pong con características multijugador usando Unity y Mirror.

🚨 NO SOLO ESO 🚨, si estos cursos gustan mucho vamos a suscitar muchos más cursos de este estilo hasta llegar a hacer un videojuego multijugador masivo online o MMO como WOW, ¿qué dices? ¿Nos acompañas a nunca parar de crear videojuegos multijugador?

Hector
Hector
hector_pulido_

25759Puntos

hace un año

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
6
10981Puntos

Wow! No sabía esta parte de los videojuegos multijugador. Me ha hecho interesarme en esos cursos.

3
25759Puntos
un año

Muchas personas ignoran este concepto y luego tienen problemas de seguridad, eficiencia, etc. Es importante pensar en la autoridad antes de empezar a desarrollar.

4
52776Puntos

Hola, siempre soñé con desarrollar videojuegos, y aunque no es mi ruta principal en el momento por supuesto hare la ruta, lo mas seguro el próximo año comience con este ruta. Me gustan los cursos que están saliendo, me emociona por lo que se viene en el futuro

2
25759Puntos
un año

Te lo recomiendo mucho, así sea como hobby

3
52776Puntos
un año

Claro que si, es una de mis pasiones, descubrir como se hacen siempre me dio curiosidad. El próximo año será mi meta poder terminarla

3
14241Puntos

Hermoso ❤️ sigo soñando con algún día ser un gran desarrollador de videojuegos 😃

2
25759Puntos
un año

¡Si se puede! Estoy seguro que con algo de esfuerzo puedes lograrlo 💪

1
14241Puntos
un año

Muchas gracias 😄 así será 😉 primero Dios.

3
45925Puntos
un año

Si puedes, aquí te ayudamos y podemos ser tus beta testers

2
14241Puntos
un año

Muchísimas gracias :3 lo tendré en cuenta cuando llegue el momento 😉 son fabulosos!

3
9954Puntos

No puedo esperar a tomar los cursos

2
33478Puntos

Que amplia es la tecnología definitivamente.
Gracias por compartir esta información Héctor.
Saludos.

1
-4Puntos

Olá! Eu realmente gosto de jogar e recentemente encontrei um ótimo site onde comprei ótimas skins. Estou compartilhando um link com você https://dmarket.com/pt/ingame-items/item-list/csgo-skins porque os preços aqui são ótimos e, além disso, você pode compartilhar a pele com outros usuários, o que é muito conveniente!!!

1
46Puntos

Si alguien está buscando juegos en línea interesantes, puedo recomendarle que juegue FootballTeam. Este es un administrador de fútbol en línea en el que creamos nuestro jugador, lo que hace que el juego sea brillante. Recomiendo jugar: https://footballteamgame.com/la

1
16177Puntos

Que buen articulo creaste, quiero hacer la carrera de videojuegos, pero prefiero del momento todo a su paso, primero termino la carrera de desarrollo web y carrera de la nube de azure, y ahi si vere si tomar la de videojuegos o la de programacion en general y ahi si llegar lo mas relajado a la carrera de videojuegos y hacer que todo me salga mas fluido.

Muy buen aporte Hector!

2
25759Puntos
un año

Eso esta muy bien, en platzi queremos que la educación sea lo más flexible y efectiva posible ¡Un saludo!

1
20606Puntos

Tenía la noción sobre esto al jugar GTA Online. Que alguien me corrija pero creo que todo el procesamiento se hace en el cliente y solo el servidor almacena datos, por lo que es tan fácil ver actuar tantos modmenus y los servidores almacenan todos eso sin problemas. Ahora una pregunta. ¿Trasladar este procesamiento del cliente al servidores es un proceso muy complejo? Me gustaría que RockstarGames llevara a cabo ese proceso para librarse de tanto ModMenuers que molestanto tanto a nosotros los jugadores legales.

1
25759Puntos
un año

Si es un poco difícil, en el curso explico que al crear un juego multijugador todo debe planearse desde el principio.