Juego multijugador

Consulte acerca de programas, técnicas, algoritmos etc.

Juego multijugador

Notapor carlostex » Lun Jul 19, 2010 2:16 am

Hola, He estado investigando algo sobre programación de juegos multijugador, pero no he tenido éxito, lo que quiero saber es si existe alguna tecnica especial para hacerlo, se me ha ocurrido algo, lo mas cencillo, supongamos dos jugadores, jugador A y jugador B, los dos jugadores controlan un coche, y cada jugador ve su coche y el del otro, bueno en el loop del jugador A el sistema encargado de enviar datos lee su posicion y se lo manda al jugador B, el cual por supuesto que puede estar corriendo a un FPS distinto,
se actualiza la posicion y se dibuja, en teoria funciona, y se que en la practica lo haria pero creo q se podrian dar saltos que nuestros ojos podrian notar, si el jugador B esta avanzando y por alguna razon deja de enviar su pocicion en tres ciclos correspondientes al otro jugador se podria notar que se detubo y que siguió avanzando, lo que se veria un poco feo, lo que quiero saber y si alguien conoze alguna tecnica, estoy pensando hacer un ejemplo de SDL_net aplicado a un juego de ese tipo
El conocimiento de unos es conocimiento de todos.
Avatar de Usuario
carlostex
 
Mensajes: 249
Registrado: Mar Jul 14, 2009 4:13 am
Ubicación: mexico

Notapor endaramiz » Mié Jul 21, 2010 8:52 am

Yo no entiendo mucho de juego en red, pero tengo la sensación de que, si se deja de enviar información durante un periodo corto de tiempo, de una manera u otra el juego dejará de ir fluido. (Donde la manera dependerá de, por ejemplo, si el protocolo reenvia los paquetes perdidos). Creo que no habrá una solución mágica al problema. Quizás se pueden hacer estimaciones del movimiento viendo la trayectoria que tenía antes (como creo que hacen los GPS cuando se quedan sin cobertura en un tunel). Pero como faltan datos, esa estimación puede variar mucho de la realidad.

Siento no poderte ayudar más.

Por lo que he oído, es buena usar una api como SDL_net ya que te facilita mucho las cosas.

Saludos.
Avatar de Usuario
endaramiz
 
Mensajes: 283
Registrado: Vie Ago 31, 2007 9:25 am
Ubicación: Barcelona

Re: Juego multijugador

Notapor endless_dark » Dom Ago 15, 2010 11:48 pm

Estamos en las mismas, yo también estaba pensando en eso, y tenía pensado programar un ejemplo en SDL que hiciese lo mismo. A partir por ejemplo, del ejemplo de tanques que hay en esta página.
Si estás interesado y te vas a poner con ello, avísame y colaboramos.
endless_dark
 
Mensajes: 4
Registrado: Lun May 21, 2007 7:00 pm

Re: Juego multijugador

Notapor adrigm77 » Lun Ago 16, 2010 12:02 am

Yo Online por consola juego al Fifa y claro no se tiene que tener todo a la vez los dos para poder seguir el partido, cuando uno se "para" por falta de datos lo que ocurre es que se para en los dos para que no haya ningún tipo de ventaja.
Razón Artificial - La ciencia y el arte de crear videojuegos.
Avatar de Usuario
adrigm77
 
Mensajes: 43
Registrado: Dom Jul 25, 2010 8:03 pm
Ubicación: Las Palmas de Gran Canaria, España

Re: Juego multijugador

Notapor Juanxo » Lun Ago 16, 2010 12:23 am

Creo que la solución más habitual es como comentaba endaramiz, interpolar el movimiento del coche en caso de que se pierdan paquetes.

Otra opción, algo alocada sería ceder el control del coche a la IA en caso de que por ejemplo perdiesemos 2 frames.

Yo creo que lo mejor es que no te preocupes demasiado de eso ahora y que lo revises una vez lo tengas hecho
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: Juego multijugador

Notapor carlostex » Mar Ago 17, 2010 1:00 am

Gracias por sus respuestas, en realidad tenia la duda, no es que valla hacer un proyecto que lo requiera, en mi videojuego no tengo pensado ponerle multijugador
pero por si acaso hice un ejemplo, el cual funcionó bastante bien, lo que transmitia era un vector de movimiento, y si se avia realizado un disparo. lo hice con dos computadoras, en las dos se veía lo mismo, y en la que yo controlaba enviaba la información, solo unas pocas veces sucedia que cuando disparaba uno si daba en el blanco y el otro no, tambien aveces se movian las direcciones, pues lo que yo trasmitia era el movimiento no la posicion, claro que eso se puede arreglar transmitiendo de ves en cuando la posicion para rectificar. fue un test muy simple, me imagino que los juegos multiplayer deben tener algun tipo de control para que en todos los clientes se vea lo mismo, o casi lo mismo.
El conocimiento de unos es conocimiento de todos.
Avatar de Usuario
carlostex
 
Mensajes: 249
Registrado: Mar Jul 14, 2009 4:13 am
Ubicación: mexico

Re: Juego multijugador

Notapor baigos » Vie Dic 10, 2010 4:03 pm

lo mas usual es correr los graficos por un lado, y la logica del juego por otro. Entonces, lo que se vea será lo mas promedial a las conexiones de los dos. Eso conlleva a que exista un retardo en los controles si hay mucho lag. Ahora, como reducir ese lag, ni idea.
El sitio de videojuegos del nordeste argentino:
www.arcadenea.com.ar
baigos
 
Mensajes: 27
Registrado: Dom Oct 03, 2010 5:51 am


Volver a General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado