[GAME] Dead Arena - ONLINE

Proyectos en Desarrollo.
Post Reply
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by erkosone »

que falta hace el 3D..
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by erkosone »

Estoy subiendo el servidor a la red.. en breve apertura del server para echar unas partidas, una vez tenga en marcha el sistema os cuelgo los clientes para Windows y MacOS.
Creo que es el primer proyecto que hace uso intensivo de la librería de red del lenguaje, cualquier cosa que notéis rara no dudéis en postear por aquí lo que sea, la intención de abrir el servidor ahora es la de ver si existen problemas a la hora de manejar hasta 10 players online, sobre todo el rendimiento del servidor que cuando el programa crezca será una aplicación bastante pesada tanto de ram como de cpu.

Bueno.. se lo estoy enviando a Pinger para que lo deje en marcha desde la conexión de fibra de 50/5 megas.. haber que tal funciona :D
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by erkosone »

Pues mi gozo en un pozo.. la lib de red con replicas atraves de internet no tira bien :(
User avatar
TYCO
Posts: 3611
Joined: Tue Sep 02, 2008 7:38 pm
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by TYCO »

Por qué no va bien??? por latencia (lag)??? pega tirones???
Todo Modo Gráfico tiene por detrás una Línea de Comandos.

Proyecto: SnowCraft Remake (100%).
Proyecto: Bomb a Bomb Remake (100%).
Proyecto: Rally Mortal (87%).

[RETO]: 20lineas - [JUEGO]: eLaberinto[CONCURSO]: EL JUEGO DEL VERANO 2011 - [JUEGO]: PlayaBall
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by erkosone »

Latencia XD.. si, de 10 segundos jeje.. no es broma, la lib no rula bien :(
Voy a probar a redireccionar el data de los players a replicas haber si funciona bien.. por que el problema es el siguiente:

El player envía sus pulsaciones de teclas, el servidor las recibe bien y rápido, en el servidor se mueve el player y se mandan las nuevas coordendadas a los clientes.. los clientes tardan 10 segundos en actualizar el data..

Pero parece que las replicas funcionan en real time.. si con las replicas lo puedo arreglar santas pascuas.. pero me hace falta modificar muchisimo código para hacer la prueba..
Mañana veré como le meto mano.. por que tenia el programa ya en un estado consolidado y he metido muchas cosas encima del "supuesto" motor correcto, y ahora resulta que no era así.

Lo dicho.. replicaré los players haber que pasa.. pero vaya putada XD..
User avatar
TYCO
Posts: 3611
Joined: Tue Sep 02, 2008 7:38 pm
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by TYCO »

10 Segundos de latencia??? eso no puede estar bien, ni un modem de 56K tardaba tanto XD, algo no va bien, pero a ver donde está el problema, para ello podrías montar el server en otro ADSL en vez de en el de pinger en otro para probar nada más.

También puedes probar el ejemplo de réplicas que pusiste en Recursos y ver si esa latencia sólo se produce desde el servidor hacia los clientes, o en ambas direcciones, así no tocas nada en el juego de momento, hasta localizar en un pequeño PRG donde está el problema.
Todo Modo Gráfico tiene por detrás una Línea de Comandos.

Proyecto: SnowCraft Remake (100%).
Proyecto: Bomb a Bomb Remake (100%).
Proyecto: Rally Mortal (87%).

[RETO]: 20lineas - [JUEGO]: eLaberinto[CONCURSO]: EL JUEGO DEL VERANO 2011 - [JUEGO]: PlayaBall
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by erkosone »

El problema está "creo" en la gestión de la prioridad de envío de paquetes, cosa bastante complicada supongo de manejar.. por eso no quiero dar mucho la lata con esto.. prefiero probar las replicas para players y si me funciona lo dejaré así, ya cuando Gemix esté completo nos ponemos en serio con estas cosas, que si no no avanza nada, y eso es lo ultimo que quiero, mejor que avance el lenguaje mientras los errores sean minimos y subsanables con arreglos, la putada que me toca remodelar mucho código.. pero eso es problema mio ;)
User avatar
TYCO
Posts: 3611
Joined: Tue Sep 02, 2008 7:38 pm
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by TYCO »

erkosone wrote:El problema está "creo" en la gestión de la prioridad de envío de paquetes, cosa bastante complicada supongo de manejar
Dile a pinger que cierre la mula y no se baje tantas cosas XD.
Todo Modo Gráfico tiene por detrás una Línea de Comandos.

Proyecto: SnowCraft Remake (100%).
Proyecto: Bomb a Bomb Remake (100%).
Proyecto: Rally Mortal (87%).

[RETO]: 20lineas - [JUEGO]: eLaberinto[CONCURSO]: EL JUEGO DEL VERANO 2011 - [JUEGO]: PlayaBall
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by erkosone »

Bueno, he optimizado el código del juego bastante, ahora necesita la mitad de ancho de banda para hacer lo mismo que antes.
Si veo que funciona fino cuelgo el cliente el breve.
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: [GAME] Dead Arena - ONLINE

Post by erkosone »

Bueno.. vamos a ver que tal funciona la lib de red en un proyecto real, explico un poco de que consta y así nos hacemos una mejor idea de como va el tema.

El servidor está conectado por wifi a mi rouer, esto va a empeorar drasticamente los resultados, pero por ahora es lo que puedo hacer.
Los players son 10, y comparten una estructura de datos como esta:

typedef
type def_player_data;
byte c_left_; // teclas de cursor..
byte c_right_;
byte c_up_;
byte c_down_;
byte key_1_; // tecla pegar a mele..
byte key_2_; // tecla fireball..
byte key_3_; // tecla frostball..
byte key_4_; // tecla frio desencadenado..
byte key_5_; // tecla heal..
byte mouse_left; // enviar mouse.left..
byte mouse_right; // enviar mouse.right..
byte mouse_angle; // enviar el angulo que forman el player con el mouse..

int x_;
int y_;
byte file_;
byte graph_;
int angle_;
int vida_;
int energia_;
byte ralentizado;
end

Unos 35 Bytes por player, en resumidas cuentas unos 350 Bytes para el manejo de los players si no me falla la calculadora XD..


Y para las replicas se comparte una estructura como esta para un total de 100 replicas:
typedef
type define_object;
int x_;
int y_;
byte file_;
byte graph_;
byte alpha_;
byte size_;
byte state_;
end

21 Bytes X 100 = 2100 Bytes que se transmiten en los momentos de punta máxima, aunque nunca llegará a este valor, ya que las 50 primeras replicas son para los disparos de los players.

Bueno.. estoy subiendo el cliente a dropbox, en cuanto esté subido os paso el link.
Post Reply

Return to “Proyectos WIP”