viernes, 21 de septiembre de 2007

online

Pues sí , es que este juego es online , aunque hasta ahora no lo pareciera .

Septiembre es el mes de "meter" las conexiones online y hacer que funcionen las cuestiones más básicas online ( ver a otros personajes , comunicarte con ellos ... ) .
Todavía no me he puesto con la parte del servidor . Aún estoy haciendo la parte online de los locales : ver a otros personajes y comunicarte bien con ellos ... ( posiciones , animaciones , chat , minijuegos , comunicaciones ... ) .

¿ os expliqué la arquitectura online de este juego ? no me acuerdo . En otro mensaje lo explicaré . Como resumen para poder seguir : hay un servidor central común a toda la ciudad , y que tiene el estado de todos los personajes y de los locales . Pero el tráfico con este servidor es MINIMO y muy "de vez en cuando" . Un coste de servidor similar al de un juego web online , por ejemplo . No pasa todo el trafico por él . Ya lo explicaré y debatiré en otro momento .

La prioridad : tiene que ser sencillo , facil , nada critico a los errores ( de red , de programacion ... imaginate que un jugador se congela 2 minutos y luego vuelve al juego ) . Para ello no puede haber cosas criticas ( tipo colisiones , disparos .... ) , el lag no debe ser grave en el juego , si se cae un cliente ( cualquier jugador ) por supuesto no tiene que pasar nada , la comunicación tiene que ser mínima ...
En cada local hay un máximo de 8 jugadores (auqnue en la ciudad , exagerando , puede haber infinitos jugadores a la vez )
Estoy utilizando tcp connectionless y peer to peer entre jugadores .
El tráfico no pasa por un jugador que hace de servidor . Los jugadores aparecen en el local , empiezan a mandar su estado a todos los del local , y entonces los demás jugadores registran al nuevo y empiezan a mandarle los mensajes a él también .
Esto lo puedo hacr gracias a que no hay cuestiones criticas en las que tenga que decidir un servidor : en un juego tipico , un shooter por ejemplo , un servidor tiene que estar continuamente decidiendo cual es la posicion "valida" de un jugador y si otro le ha dado al disparar , por ejemplo . Aquí como no hay puntos criticos como este , cada jugador es responsable de sí mismo , y decide su posición y estado ... sin que haya un servidor-juez .

Me evito hacer muchas gestiones e implementar muchas cosas .También evito tener un jugador especial que si se me cae o hace cosas raras ... tendría que hacer un par de cosas algo delicadas y saber gestionarlo bien = TIEMPO .

Tiene que ser todo MUY sencillo , que si no no llego . De hecho , espérate a ver si llego , que cada vez voy peor ... vaya sorpresa no ? ;) . las prisas de fin de proyecto ... no me habia pasado nunca antes ... ¿ y a vosotros ? . jeje .

Por supuesto , estoy sacrificando muchas cosas para conseguir algo tan sencillo .

Lo primero que direis es seguridad , por ejemplo . La mayor seguridad en el juego es que un jugador ( auqnue no le sea dificil hacer trampas como conseguir muchos puntos ... ) no pueda molestar a otro . Este juego es que no es de unos contra otros ( con la unica excepcion quiza de los duelos ,auqnue no tiene consecuencias negativas perder , y los dos jugadores tienen que decir que quieren hacer el duelo ) . La interaccion entre jugadores siempre da "puntos" o ventajas a los dos .

todas estas cosas he tardado tiempo en pensarlas y encajarlas ...

Por cierto , estoy por madrid unos dias , a ver si paso un dia a comer por allí la semana que viene .

Un saludo .

sábado, 8 de septiembre de 2007

el formato .x

Hola ,
efectivamente , ya están en su sitio los pelos de todos los personajes . Es un problemilla que me srgió a principios de julio , y para o atascarme lo he ido dejando . Ya está .
El problema era que el pelo no estaba asociado a ningún hueso , y no tenía información de skinning ( aparte de tener otra textura asociada distinta del cuerpo), por lo tanto el renderizado tiene que ser distinto ...
A cuenta de esto , definitivamente controlo bien el sistema de animaciones , skinning ... del formato .x . Es gracioso que pueda haber animaciones ( con sus timings y matrices de transformacion ... ) con huesos mezlados con meshes sin asociar a huesos , y además dentro de una jerarquia de huesos . Bueno , si no os habeis enterado no me extraña , porque me he explicado bastante mal .
Esto confirma lo de siempre : cuando utilizas algo que no entiendes bien ( como el formato .x ) , no te preocupes : tarde o temprano no dudes que lo vas a entender perfectamente , de arriba a abajo , jeje . Surgen problemas de este estilo siempre , no falla .
A veces es mas facil hacerlo tu mismo , tardas más o menos lo mismo . La gran ventaja es que esto evita que te equivoques en la estructura , arquitectura del sistema que usas , ya que reutilizas algo probado y normalmente decentemente bien hecho . Pero tiempo , no ahorras :) .
Un saludo .

martes, 4 de septiembre de 2007

en Terreros

Ya estoy asentado en la casa de terreros .
Gus ya funciona sin problemas dentro del juego de city life . La verdad es que fue muy facil integrarlo , ya que el paso de j2me a c++ ya lo había hecho en junio . Lo que he tenido que hacer es integrarlo en este mainloop ...
Ahora estoy volviendo a una cosa de los personajes que dejé un poco a medias para no atascarme en ello , espero solucionarlo pronto .
Se está acercando el momento de empezar a cerrar cosas y acabar el juego , ufffff ...
Un saludo !