Foros - Stratos

Programadores => Programación en red => Mensaje iniciado por: CoLSoN2 en 25 de Octubre de 2002, 11:27:17 PM

Título: metodos de envio de informacion
Publicado por: CoLSoN2 en 25 de Octubre de 2002, 11:27:17 PM
                                una pregunta, que seria mas factible al enviar paquetes, hacerlo cada X tiempo, enviando (poned por ej un juego tipo CS):

- Posicion (float x, float y, float z)
- Direccion (float x, float y, float z)

o algo ke no se si se usa en algun lao, ya que veo que podria ser muy malo XD

- cuando el usuario ace keydown(W), pues se envia eso, MSG_KEYDOWN_W y, cuando lo levante, MSG_KEYUP_W , asi si el tio va para alante, sin moverse durante 10 segs, solo se enviaran 2 mensajes. la direccion, como va con el ratón (si no fuese asi tb seria del mismo roio: juego de naves) pos seria igual ke en el otro.

ke pensais?                                
Título: metodos de envio de informacion
Publicado por: Gunder en 26 de Octubre de 2002, 12:55:39 PM
                                Es mejor la primera opcion, pero si estas pensando en hacer un juego donde la posicion del jugador es muy importante, envia tambien la velocidad de giro y la velocidad de avance, para así poder calcular donde estara el muñeco cunado llege la actualizacion a los otros usuarios dentro de, digamos, 1 o 2 segundos.

Ale.                                
Título: osea..
Publicado por: CoLSoN2 en 26 de Octubre de 2002, 02:34:23 PM
                                osea, envio la velocidad de mov. y la pos. al server, y el calcula la posicion que será, y la envia, no ?                                
Título: metodos de envio de informacion
Publicado por: ethernet en 26 de Octubre de 2002, 07:52:59 PM
En realidad deberias tener una copia de los pasos de cada jugador en el servidor y en los clientes. Debido al lag tu no tendras en cada frame las posiciones actuales de todos los jugadores, luego tendras predecir los movimientos hasta q el servidor te mande los movimientos. Para eso debes tener la velocidad posicion y demas ;)
Título: metodos de envio de informacion
Publicado por: ethernet en 26 de Octubre de 2002, 07:55:45 PM
Recomiendo q te mires los fuentes del quake2 para ver como trabaja con red.
Título: hm
Publicado por: CoLSoN2 en 26 de Octubre de 2002, 10:00:28 PM
                                si ia no maclaro con algunos tutos como me vi a mirar el source del q2 XDDD
lo ke nesesito e un tuto desente ke diga como se ase y xq, no solo tye de codigo y tu c&p ..                                
Título: metodos de envio de informacion
Publicado por: ethernet en 27 de Octubre de 2002, 12:33:29 AM
Va, tio, echale un ojo, estoy seguro q todo el tiempo q pases mirando como va el codigo del quake sera tiempo aprovechado ;)
Título: hm
Publicado por: CoLSoN2 en 27 de Octubre de 2002, 12:27:49 PM
                                no hay ningun fichero/s donde esté todo el tema de red?                                
Título: metodos de envio de informacion
Publicado por: ethernet en 27 de Octubre de 2002, 07:12:41 PM
En general puedes mirarte las siguientes funiones:

Net_*
NetChan_*
CL_Frame
y SV_Frame

y en concreto

NET_ReadPackets
Título: hm
Publicado por: CoLSoN2 en 27 de Octubre de 2002, 08:44:53 PM
                                ke metodo usa el q2 pacer los paquetes? bloques de memoria a saco ? structs ? char*'s  ?                                
Título: metodos de envio de informacion
Publicado por: ethernet en 27 de Octubre de 2002, 09:15:25 PM
creo q el struct es sizebuf_t y usa funciones MSG_* para escribir en el
Por cierto, para conexiones loopback no usa UDP, aunque si usa el mismo protocolo para enviar los datos.
Título: Re: metodos de envio de informacion
Publicado por: Repoker en 07 de Marzo de 2003, 03:28:53 AM
                               
Citar

o algo ke no se si se usa en algun lao, ya que veo que podria ser muy malo XD

- cuando el usuario ace keydown(W), pues se envia eso, MSG_KEYDOWN_W y, cuando lo levante, MSG_KEYUP_W , asi si el tio va para alante, sin moverse durante 10 segs, solo se enviaran 2 mensajes. la direccion, como va con el ratón (si no fuese asi tb seria del mismo roio: juego de naves) pos seria igual ke en el otro.


Has pensado que eso elimina toda "aleatoriedad" en el desarrollo del juego ? :)                                
Título: metodos de envio de informacion
Publicado por: CoLSoN2 en 07 de Marzo de 2003, 07:51:39 AM
                                ¿que aleatoriedad?
si la gente es la que determina sus movimientos, no un random()..                                
Título: metodos de envio de informacion
Publicado por: Repoker en 07 de Marzo de 2003, 10:58:32 AM
                                Sí, pero tambien puedes tener una pequeña parte que sea aleatoria ! Ejemplo: cuando disparas en Counter-strike las balas no va EXACTAMENTE donde apuntas :) de la misma manera puedes hacer que ciertas cosas incorporen un factor aleatorio. Por ejemplo, si te estalla una granada a los pies puedes calcular la dirección en la que deberían saltar tus pedacitos, pero no es más espectacular si tus miembros se dispersan en varias direcciones ?                                
Título: metodos de envio de informacion
Publicado por: Zaelsius en 10 de Marzo de 2003, 12:51:42 PM
Colson: Creo que el segundo método que mencionas sí es utilizado(en esencia) en los juegos de estrategia.

Ejemplo: cuando mandas a tus 20 soldados atacar un punto, sería poco óptimo mandar 20 mensajes de posición de los soldados X veces por segundo. En lugar de ello se manda un mensaje con el comando(y sus parámetros) que has ordenado.

Estos mensajes deberían llegar SIEMPRE a su destino así que se puede usar TCP. Creo que este sistema es el que utilizan juegos como el Warcraft.

Luego, cada sistema será más o menos apropiado dependiendo del juego. Es como elegir entre UDP y TCP: depende....

PD:
Citar
Has pensado que eso elimina toda "aleatoriedad" en el desarrollo del juego ?

¿Qué tiene que ver la aleatoriedad con el sistema de mensajes a utilizar?¿No habeis pensado que el desvio aleatorio de la bala se puede calcular de forma local?
Título: metodos de envio de informacion
Publicado por: CoLSoN2 en 10 de Marzo de 2003, 01:47:03 PM
                                hombre, si se calcula de forma local, a cada uno le saldrá una cosa, ya que es algo aleatorio :                                
Título: metodos de envio de informacion
Publicado por: MaSteR en 16 de Marzo de 2003, 11:20:34 PM
                                No esta mal planteado colson?

si ya envias la posicion y direccion a cada momento mejor mandas
POSICION
DIRECCION
ANIM (para q carge la acion q esta haciendo) si mandas el key down estaras mandando key down y se pone a cargar cosas inecesarias nu creeis?