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?






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.