by erkosone » Wed Mar 30, 2011 4:46 pm
El problema de los juegos en red no es loq ue pueda aguantar la conexión jeje... mirando las capacidades de Gemix, las librerias en las que se apoya el core.. no me cabe duda de que el sistema de red va a ser igual de bueno que todo lo demas.
El problema radica en que los que programan juegos en red nunca o casi nunca tienen en cuenta de programar la "inteligencia artificial" para los datos de la estructura "net".
Me explico:
Si tu creas un juego de lucha, envias y recibes datos de una forma automatica mediante una esturctura de varios campos y pages, entonces, lo que nunca se deve hacer es que las acciones que muestras en pantalla dependan directamente de los datos que recives..
Hay que filtrar esa estructura y si por ejemplo en un momento dado en la estructura de datos compartida tienes un valor como algo asi: " avanzar=true; " lo que no puedes hace es esto:
Pseudocodigo:
Si " avanzar = true " el personaje avanza. sino el personaje se queda parado. <-- Fallo muy comun.
Si " avanzar = true " el sersonaje avanza. <-- Forma correcta.!
Si " avanzar = false " el personaje se para.
En el primer caso, en cuanto tengamos un poco de latencia.. veremos cortes en los movimientos, mientras que el segundo ejemplo es totalmente fluido se tenga la latencia que se tenga.
Al igual que enviar el codigo del grafico por red.. Las animaciones se han de hacer el el propio cliente, y en todo caso.. hacer correcciones de estados cada x tiempo.
La libreria free "kalliera" implementada en muchos emuladores en red", es lo mas parecido a hacer una mala programación en red.. a la mas minima lantencia.. personajes atascados.. animaciones entrecortadas..
Buaaaa que ganas.. de esto de programar en red... tengo unas ganas de tener el modulo... para poder debatir todo esto... las técnicas de inteligencia artificial.. adelantarse a estados "pre-diseñados" para reducir el impacto del retraso que provoca internet..
Sobre esto se puede hacer una serie de televisión con varias temporadas jeje..