Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Duda sobre UDP y TCP  (Leído 334 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LuxorXD

  • Visitante
  • *
  • Puntos: 13
  • Mensajes: 4
    • Ver Perfil
en: Marzo 29, 2019, 10:36:53 pm
Hola buenos dias, tardes o noches :)

Por lo que estube leyendo en foros para hacer un juego es mejor usar una coneccion UDP ya que ofrece una mayor velocidad pero de una forma inestable, lo que quiero saber es si es mas facil programar un juego online que use UDP que uno que use TCP.

Quiero hacer un juego que dentro de un servidor entren unos 60 jugadores pero quisiera saber esto para dedicarme a aprender UDP ó TCP ya que soy nuevo en esto del game maker.

 


No Tienes Permisos Para Dar Puntos
point 7 Puntos

Usuarios que puntuaron el tema » Clamud (7 Pts) 


Desconectado Black_Cat

  • Ganador CGM Game Jam #1
  • Adicto
  • *
  • Puntos: 741
  • Mensajes: 352
  • Agradecido: 59 veces
  • 🧡🧡🧡🧡🧡
    • Ver Perfil
Respuesta #1 en: Marzo 30, 2019, 03:27:30 pm
Hola amigo, lo recomendable siempre para juegos que sean en tiempo real es usar UDP por la velocidad de transferencia. A diferencia de TCP, el protocolo UDP no verifica demasiado las cosas para poder trabajar, por lo que la velocidad aumenta considerablemente. Por contra si se pierden paquetes de datos, no es capaz de solventarlo.

Si ya trabajaste en algun otro motor haciendo juegos Online seguro con Game Maker es parecido.
Pero si sos novato en todo esto, lo menos que querrías hacer es hacer un juego online de primera, porque requiere muchisimos aspectos a tener en cuenta. Como ser, la programacion del juego en si, la logica, el gameplay. Por otro lado tendrias que programar la conexion y el envio de datos entre el juego y el servidor. Por otro lado, programar el servidor para que conecte  y envie datos a los juegos. Y si tu servidor planea alojar diversas partidas, es otro baile más.
 



Únete al servidor mas chidori de Discord

 


Desconectado LuxorXD

  • Visitante
  • *
  • Puntos: 13
  • Mensajes: 4
    • Ver Perfil
Respuesta #2 en: Marzo 30, 2019, 07:50:34 pm
MMM entiedo, la verdad es que no me e metido con juegos online todabia, lo que si es que ya e hecho juegos en game maker de plataformas y rpg, y queria adentrarme un poco en hacer un juego online estilo rpg :) pero no se mucho de como trabaja esto mandando y recibiendo datos a cliente y servidor, pero no se si ya estoy listo para aprender eso...

 


Desconectado somnus

Respuesta #3 en: Abril 01, 2019, 10:35:44 pm
lo unico diferente es el tipo de connexion y las restricicones de estos protocolos, una vez tengas conectado todo la manera de enviar datos y recibirlos es la misma, usualmente se usa UDP porque TCP siempre hace una validacion de datos al llegar al punto finar para cersiorarse que los datos son transferidos correctamente y no hubo problema, con UDP tu mandas los datos hacia quien los tiene que recibir y si los recive bien que Bueno y si no los recibe o se quedan los datos a medias entonces no le importa ,se Vuelve a mandar otro mas actual.

para metrete primero a este mundo online, tiene que leer un poco de como funcionan las conexiones de red y sus protocolos, despues haz ejemplos de como hacer conexiones y por ultimo intent enviar un string desde el servidor y mostrarlo en el cliente y viceversa, cuando logres eso ya sabras lo basico.

no es tan complicado como al inicio parece, lo que pasa es que nunca hay informacion clara al respect o alguien que te diga como hacer lo que tu quieres lograr.

Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala
 


Desconectado LuxorXD

  • Visitante
  • *
  • Puntos: 13
  • Mensajes: 4
    • Ver Perfil
Respuesta #4 en: Abril 04, 2019, 03:14:03 am
Disculpa e tenido problemas con el internet, ¿me puedes decir como puedo comenzar a adentrarme en eso de online?, cuales son los comandos y eso para conectarse, enviar/recibir datos, mostrar los cambios en el cliente y eso...

 


Desconectado Black_Cat

  • Ganador CGM Game Jam #1
  • Adicto
  • *
  • Puntos: 741
  • Mensajes: 352
  • Agradecido: 59 veces
  • 🧡🧡🧡🧡🧡
    • Ver Perfil
Respuesta #5 en: Abril 04, 2019, 02:32:53 pm
Complicado no es realmente, solo que hay que tener en cuenta muchas cosas. Primeo y principal, seria saber sobre como manejar buffers. Puesto que es la manera en que se mandan los datos a trevez del networking en GMS.
Para una explicacion detallada tenés el tutorial de Juca:
https://www.comunidadgm.org/articulos/tutorial-buffers-(parte-1-3)/msg125452/#msg125452

Si querés saber como funciona UDP podés mirar este tutorial de Ashe:
https://www.comunidadgm.org/articulos/tutorial-online-udp-39dll/msg128337/#msg128337
Que si bien usa una vieja DLL, el concepto de como funciona es el mismo. La diferencia con GMS es que tiene un propio evento asincrono para procesar los datos en vez de hacerlo en el evento step.

Si querés una explicacion detallada de como manjar TCP tenés mi tutorial extenso:
https://www.comunidadgm.org/articulos/(programacion)hacer-un-juego-multijugador-online-con-game-maker-studio-ver2/

Ahora, podés leer el tutorial de TCP y tratar de hacer algo con eso.
Una vez que dominés ese protocolo, solo extrapolalo a UDP. Que es en escencia mas sencillo que TCP.

////////////////////////////////////////////////
Revisando la Doc de otro motor(Godot) encontre esto:
https://gafferongames.com/post/what_every_programmer_needs_to_know_about_game_networking/

Está en español de donal trump, pero plantea el asunto el networking bastante especificado para juegos

saludos
« última modificación: Abril 04, 2019, 05:46:20 pm por Black_Cat »

Únete al servidor mas chidori de Discord

 
Los siguientes usuarios dieron las gracias a este tema: somnus


Desconectado LuxorXD

  • Visitante
  • *
  • Puntos: 13
  • Mensajes: 4
    • Ver Perfil
Respuesta #6 en: Abril 06, 2019, 12:16:19 am
Muchas gracias me pondre con eso, me interesa aprender sobre ese tema :)

 


Desconectado CrashKen

Respuesta #7 en: Abril 06, 2019, 06:00:19 am
Hola, como ya te dijeron antes la manera de enviar y recibir datos es la misma , por lo que no es que tengas que elegir entre aprender uno o el otro.
lo que yo te recomiendo es que uses los 2 a la vez. usa el TCP para información importante que tiene que llegar si o si, como puede ser el usuario y la contraseña para loguear, el momento en el que cambias de sala, un mensaje de chat, quizá un sistema de comercio entre jugadores, etc
y el UDP úsalo para lo que requiera mas velocidad pero que no importe si algún que otro dato se pierda en el camino, como por ejemplo enviar la posición del jugador cada pocos frames.

Gracias Jhony por prestarme tu nick