Un acercamiento a las conexiones
Bueno, lo cierto es que he estado parado bastante tiempo y ahora supongo que ahun mas ya que paso de la beca a traajr lo cual me quitara tiempo....
Las conexiones por internet son sencillas, existen 2 tipos de paquetes:
-TCP: este es un tipo de mensaje que necesita una conexion previa y que es totalmente fiable (es decir los mensajes llegan siempre y su orden es el correcto)
-UDP (o datagramas), que a pesar de ser muchisimo mas rapidos que el TCP no son fiables.
He decidido utilizar para mi juego un hibrido entre ambos, es decir, que existan los dos tipos de paquetes y se usen dependiendo del tipo de paquetes que enviemos...
El servidor y el cliente UDP ya lo tengo hecho y ahora me quedaria terminar el servidor TCP y unir ambos en una clase. A ver cuando tengo tiempo de hacer esto...
Bueno, pues eso es todo y gracias por vuestra paciencia
La cuarta version
Ya esta hecha la 4a version, en la que ya podeis ver que el personaje no puede salir de la region dibujada en naranja. Bueno no es mucho pero menos da una piedra. El siguiente paso sera dibujar el barco y que este comienze a moverse. A ver cuanto tardo, porque esto empieza a complicarse. Jeje...
Descargar Pirateggs v0.4b
Un tiempo de inactividad
Bueno llevo un tiempo de inactividad, pero esto no es del todo cierto ya que casi he terminado la superficie del barco (por medio de regiones) y he estado mirando las conexiones de red (TCP y UDP) en JAVA, asi como el uso de Threads, ya que seran necesarios para el servidor.
A ver si a finales de esta semana ya puedo subir la primera version del huevo sobre la superficie del barco. Bueno, eso es todo por ahora.
El movimiento definitivo
Bueno, a la tercera va la vencida, ya tengo el movimiento del huevo terminado, ademas en esta versión he añadido un cubo para que se pueda ver como referencia.
Pirateggs v0.3b
Java3d
Ahora voy a tratar de dibujar una region para el barco de la que el PJ no pueda salir, a ver si en un par de dias la tengo...
La segunda version
Como habia prometido, aqui va la segunda version, en la cual la camara es totalmente autonoma. Ademas he añadido un contador de framerate, pero para poder verlo debeis ejecutarlo en linea de comando.
No me convence mucho la accion de la camar cuando estas muy cerca, pero ya se me ocurrira alguna forma de arreglarlo. Bueno pues eso es todo por hoy.
La camara casi esta hecha
Bueno, pues eso, ya tengo casi terminada la camara que es totalmente autonoma. Su movimiento es mediante una ecuacion de la forma:
X = X0 + distX/k * t
donde X es cada una de las variables (X,Y,Z y los angulos) y t es el tiempo. La verdad es que queda bastante bien. He tardado bastante ya que he tenido problemas cuando los angulos estaban a distintos lados del 0. Es decir por ejemplo, uno en 356º y otro en 3º ya que el movimiento tendia a irse por el lado mas largo, pero ya esta solucionado.
Asi que espero que en un par de dias pueda subir otra version ejecutable para que la probeis. Un saludo a todos
Volvemos a la carga
Despues de unos pocos dias de inactividad he coseguido compilar el proyecto en el interior de un jar. Es solo una primera version para que lo veais, pero no esta mal:
Descargar Pirateggs v0.1b
La camara se mueve usando los cursores y el huevo se mueve con las teclas o,p,q,a. Ademas debeis tener instalado el java3d que se puede bajar de sun por medio del siguiente enlace (para los vagos que no quieran buscarlo):
Descargar Java3D
Ahora tengo que trabajar en la camara, que espero en dos o tres dias este realizada y sea totalmente autonoma...
Bueno, eso es todo por hoy. Espero que lo probeis con buenos ojos y que no espereis mucho mas de lo que es (una primera version).
Un poco parado
Bueno, ultimamente ando un poco parado, porque no consigo que el movimiento me quede como quiero, a ver si lo consigo en un par de dias. Cuando consiga compilar el programa en .jar lo subire a algun sitio para que lo probeis.
Bueno, eso es todo.
Superficie de huevo
Aqui estan las ecuaciones utilizadas para la creacion del huevo y sus normales:
http://pirateggs.blogspot.es/img/superficie.doc
El movimiento del huevo
Bueno, esto ya esta practicamente coseguido, este movimiento consta de 3 objetos claramente diferenciados debido a sus funciones:
Un objeto fisica: que calcula la posicion que debe tener el huevo en cada momento.
Un objeto teclado: que modifica la fisica incluyendo fuerzas en el momento en que se tocan las teclas
Un objeto Posicionador: que posiciona el objeto de java3D en su posicion.
Aqui os pongo las ecuaciones utilizadas para el movimiento:
Física del movimiento
Vamos a tratar el movimiento como si se tratase de un movimiento uniformemente acelerado, que posee una velocidad limite (Vlim).
Así la velocidad sera:
V=vini+a*t
Luego el primer paso será calcular el tiempo limite, para el cual el movimiento es uniformemente acelerado y pasara a ser un movimiento a velocidad constante:
Tlim=(Vlim-V)/a
Si este tiempo es menor que el que se aplica la aceleración usaremos el tiempo Tlim, en caso de ser mayor usaremos como tiempo limite este último.
Asi tendremos dos casos diferenciados y con ecuaciones de movimiento sustancialmente distintas:
- Caso t=0->t=Tlim:
- Pos=pos+vel*Tlim+1/2*a*Tlim^2
- Vel=vel+Tlim*a
- Caso t=Tlim->t=T:
Ahora para complicar mas la cuestión vamos a tratar de añadir una deceleración al movimiento, cuando este no esta siendo acelerado, con el fin de que además de acelerar decelere, en este caso Tlim=Vini/d y las ecuaciones serian análogas a las anteriores con la diferencia de que a=-d.
El huevo ya esta texturado
Bueno, tal y como me habia propuesto, el huevo ya se encuentra totalmente texturado, y comenzare a intentar conseguir que se mueva. Aqui presento una vision del huevo texturado, aunque la textura no es la definitiva, se trata solo de una pequeña prueba. Ahi va:
Continuamos a buen ritmo
Por fin acabo de terminar de ponerle las normales y el material al huevo y creo que queda bastante bien, aqui va una muestra para que veais los progresos, a ver si este fin de semana me da tiempo a texturizarlo con el fin de que parezca ya un personaje.
Un buen comienzo
Bueno he hecho el primer diseño del cuerpo del personaje principal del juego (un huevo), aun no tiene calculadas sus normales (necesarias para poder iluminar la figura) ni se encuentra texturizada, pero es un comienzo.
Aqui teneis el primer de los muchos screenshots que espero subir:
Pirateggs
Bueno, en este Blog pretendo comentar los progresos que vaya realizando en lo que espero llege a ser un juego de piratas online en los que los personajes seran Huevos (de ahi el nombre).
El juego, en principio sera realizado en su totalidad en java y java3d ya que el juego esencialmente de combate/Comercio/Estrategia de barcos va a estar enteramente realizado en 3D.
En este momento estoy creando la gemetria del personaje, el Huevo, que pretendo este texturizado con una cara que vaya cambiando.