Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





metodos de envio de informacion

Iniciado por CoLSoN2, 25 de Octubre de 2002, 11:27:17 PM

« anterior - próximo »

CoLSoN2

                                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?                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Gunder

                                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.                                
riticar, critica hasta el mas tonto.

CoLSoN2

                                osea, envio la velocidad de mov. y la pos. al server, y el calcula la posicion que será, y la envia, no ?                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

ethernet

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 ;)

ethernet

Recomiendo q te mires los fuentes del quake2 para ver como trabaja con red.

CoLSoN2

                                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 ..                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

ethernet

Va, tio, echale un ojo, estoy seguro q todo el tiempo q pases mirando como va el codigo del quake sera tiempo aprovechado ;)

CoLSoN2

                                no hay ningun fichero/s donde esté todo el tema de red?                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

ethernet

En general puedes mirarte las siguientes funiones:

Net_*
NetChan_*
CL_Frame
y SV_Frame

y en concreto

NET_ReadPackets

CoLSoN2

                                ke metodo usa el q2 pacer los paquetes? bloques de memoria a saco ? structs ? char*'s  ?                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

ethernet

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.

Repoker

                               
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 ? :)                                

CoLSoN2

                                ¿que aleatoriedad?
si la gente es la que determina sus movimientos, no un random()..                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Repoker

                                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 ?                                

Zaelsius

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?