Monday, July 18, 2011

9o día de desarrollo.

Seguimiento del desarrollo de mi tercer proyecto (primero en solitario que empiezo desde cero).
Versión: vAlpha_0.07.18
Implementado hasta ahora:


- Comunicación cliente/servidor chat: los jugadores pueden comunicarse entre ellos mediante un único canal de chat.


- Comunicación cliente/servidor mundo: se transfiere vía tcp el nombre, posición actual y dirección de movimiento del jugador y se comunica al resto de jugadores, por lo tanto ya les pueden ver en movimiento.


- Añadido sistema de cuadrículas (Tiles) para texturizar el suelo. Cada cuadricula mide 128x128px y pueden ser colisiona-bles.


- Se divide el mundo en secciones, cada sección se compone de 1000 cuadrículas y se cargan a petición, permite guardar la información de las secciones en otro servidor y hace que las secciones sean modulares (que se puedan modificar/añadir secciones sin tocar el software cliente.
 El nº de secciones puede llegar a millones.


- El jugador puede moverse por el mundo mediante las flechas y wasd.


- Implementado movimiento del jugador a través de las secciones, las cuadrículas se cargan a medida que el jugador avanza teniendo en cuenta la dirección de este. 
Cuando el jugador se acerca al límite de la sección, se empieza a cargar la siguiente a través de un simple fichero de texto con la información de las 1000 cuadrículas de esa sección, esta carga se realiza mediante un thread a parte y supone un 2-3% de uso de cpu y parece negligible en el rendimiento del juego (al menos en mi hexa-core). 
Cuando el jugador se aleja del límite de la sección, la anterior se empieza a liberar.


- Se añaden 2 texturas para representar al jugador y al resto de jugadores online, ambos tipos de jugadores tienen animación de movimiento en 4 direcciones (norte, sur, este, oeste).


- Añadidas sombras cutres a las texturas de los jugadores.


- Implementado efecto climático: Sombras de nubes en movimiento, hay 5 distintas que pasan constantemente cerca del jugador y siempre en la misma dirección.


- Se prepara el objeto cuadrícula para que pueda tener animación.


- Añadido un label con la información de posición del jugador ( 0.00|1.49 : donde 0/1 es el número de sección horizontal/vertical, y .00/.49 el número de cuadricula horizontal/vertical.


- Añadida carga externa y reproducción de música mp3, de esta manera se puede alojar en un servidor externo y ser cargada a petición.


Eso es todo (creo).

No comments:

Post a Comment