Ojo!: (¬ ¬) se lee de abajo p´arriba xD los post mas viejos quedan abajo ^^



Mostrando entradas con la etiqueta xgl. Mostrar todas las entradas
Mostrando entradas con la etiqueta xgl. Mostrar todas las entradas

miércoles, 14 de enero de 2009

Querido diario... O.o? wtf?!!!

Si señores! "y ya llego!" xD.


Hola a todos, como podran apreciar, ya volvi ^^. Aunque con un poco de nauseas :S debido al antiestaminico ( ¬¬ corrijanme si no se escribe asi xD... ) que estoy obligado a tomar,xq el otro me da sueño y ya vivi la horrible experiencia de ir a trabajar hecho un zombi.. :( lo cual por obvias razones no le agrada al jefe xD. Todo gracias a un gentil auspicio de un domingo de golpes, balasos y resfriados ^^.


Volviendo con prisa al tema del POL, ya resolvi el problema de la "incolicionabilidad de la pelota" (sumare Karijo! O.o? q es eso?), en otras palabras, el hecho de que la pelota no colicionara cuando debia hacerlo (al menos cuando el usuario espera que lo haga) y no lo hice con intencion de hacer trampa, como menciona "bichitoz" en alguno de sus comentarios u.u, es muy simple y lo explico a continuacion.


En la version original del Pong desarrollada por XGL, en la cual me base para hacer esta version y no contaba con capacidad de multijugador, ambas barras se desplazaban de igual manera en todo instante a lo largo del eje Y, en el eje X las barras nunca se desplazan. Es debido a esto que el algoritmo de coliciones se elaboro en base a la barra izquierda unicamente, la que en esta version viene a ser la barra del Servidor, y se proyectaba una imagen de esta a una distancia adecuada para que coincidiera con el lugar que supuestamente estaba ocupando la barra derecha.


Se podria decir que, para la version inicial, solo existia el objeto barra_izquierda y no existia barra_derecha, sino solo su grafico, y lo que se hacia era lo siguiente:

El objeto "barra_izquierda" tenia 2 bloques(o areas) de coliciones, por donde la pelota no podia transitar, uno exactamente bajo el area que ocupara su grafico y otro a una distancia conocida hacia la derecha justo debajo del grafico correspondiente a la barra_derecha. y lo que se hacia era actualizar constantemente la coordenada Y de la grafica de la barra_derecha de modo que fuera igual a la coordenada y del objeto "barra_izquierda".


A continuacion lo ilustro con una imagen xD:


Como podran ver, los problemas comienzan cuando la barra derecha ya no tiene siempre la misma coordenada Y que la barra izquierda, y esto precisamente ocurre en un juego multijugador puesto que cada jugador tiene el completo control del desplazamiento de su barra en el eje Y y es por eso que se pueden dar casos como el de la imagen, donde una barra esta abajo y la otra arriba. Y esto para muchos es perfectamente normal porque "en eso consiste el juego" para que vas a jugar si tu barra la mueve el enemigo? jajajaja pero es eso lo que me ocurria cuando probe el juego con unos patas ^^.
Sin saberlo, para el programa, yo manipulaba ambas barras a mi antojo, mientras que mi compañero (o enemigo) solo manipulaba la imagen de su barra, el grafico, mas no el objeto en concreto. Es por eso que en la imagen que puse arriba se dio esa incongruencia con la pelota. Porque aunque ambos veiamos su barra arriba lista para golpear la pelota, para el juego su barra estaba abajo, a la misma altura que la mia. y la bola se iba de largo ^^, por ese algoritmo no apropiado para multijugadores fui tildado de "tramposo" por bichito, cuando ni yo entendia por que ocurria eso :D pero precisamente para eso son las pruebas cierto? para encontrar errores (o bugs) y evitarle un mal rato al usuario final xD.
De momento ya esta arreglado eso, ahora faltan agregar puntajes y contadores de vida para probar la siguiente version ^^.
Una vez hecha la interfaz inicial del juego lo pongo en descarga, pero eso si no prometo que sea pronto.

sábado, 10 de enero de 2009

A programar se ha dicho!!! ^^

Aqui "yo" reportandome xD.


Ash.. lo que tengo que contarles hoy. para empezar llevo como una semana poniendo a punta todo lo necesario para gestionar mi propio servidor de juegos, incluidos el coste de la luz que les voa pagar a mis viejos ^^, asi q si no sale lo unico bueno que voy a optener de esto es la experiencia y el conocimiento que intervengan, Por lo pronto ya estoy bien armadon con temas como Protocolo TCP/IP, Ip publica y privada, routers, "liberar puertos" (a lo que yo le llamo "redireccionar puertos", ya hablare de eso mas adelante) algo de servidores web (hablo del sofware) y algo de servidores FTP (tambien el software) pero no es exactamente lo que busco.




Pues resulta que en internet "todo" todo no encuentras, solo lo que muchos otros ya saben, asi que si llegas a encontrar en una web alguien que te dice la solucion a ese problema que tanto te rompia el coco, no te sientas mal por el simple hecho de que realmente el no es uno de los capos mas capos que para suerte tuya te pudo ayudar. No, la verdad es que esa persona es una de los tantos miles de personas que ya sabian eso y probablemente el que menos sabe y para suerte tuya se tomo el tiempo y la molestia de responderte porque es de los pocos que sabe que compartiendo el conocimiento es la forma mas facil de superarnos y desarrollarnos en conjunto ^^.


bueno ¬¬ a todo esto, cuando sepan algo, no se lo guarden, compartan y ayuden siempre que puedan que algun dia pueden ser UDs. quienes necesiten esa ayuda xD.




Volviendo con el relato, decidi desempolvar mi vieja LapTop que tuve que dejar de usar por un problema muy comun las de su linea referente a la tarjeta de video, empieza a distorcionar el video hasta que el problema es tan grave que la maldita ya no puede encender mas que en "modo a prueba de fallos" y aun asi es dificil distinguir lo que ves en la pantalla. Precisamente por esto es que me parecio ideal para usarla de servidor, solo el video falla, cosa importante para un usuario personal, pero para un servidor es lo menos importante, lo que importa es q tengo mi disco en buen estado, coneccion a internet y sistema operativo (aunque limitado por estar en modo de fallos).




jajaja y algunos diran "ya, cual es tu IP y que juegos vas a hostear? WoW?, RO? AO? cual? cual?" pero lamento desilucionarlos, el servidor es solo de prueba, no para probar la coneccion (que eso se hace de inmediato), sino para probar juegos propios ^^.


Resulta que soy aficionado al desarrollo de videojuegos y no toy solo en esto, pertenesco a dos grupos relacionados a los videojuegos en la universidad, el primero XGL(X-Games Lab),del cual soy el coordinador (ojo, coordinador no dueño ¬¬) no me parece cuando me dicen " oye, como va TU grupo" no es mio, solo lo coordino..., es un grupo de aficionados al desarrollo de videojuegos que empezamos justos desde cero y el fin es ir aprendiendo y compartiendo a la vez lo que ya se sabe conforme vamos desarrollando demos y el segundo GA(Grupo Avatar), es un grupo de INVESTIGACION sobre la educacion mediante los videojuegos, el cual consta de distintas areas que parten de 3 en concreto. Investigacion, SecondLife y Desarrollo.


En el primero se dedican a investigar sobre el impacto de los videojuegos sobre el comportamiento social y cognitivo de quienes los juegan, en el segundo se dedican a desarrollar dentro de una isla de SecondLife un apartado academico, si no me equivoco planean hacer una sede virtual de la PUCP (Pontificia Universidad Catolica del Peru) donde se llevaran a cabo el dictado de cursos, practica de experiencias en laboratorios virtuales, etc... y en el tercero, al cual pertenesco, se dedican a desarrollar videojuegos educativos actualmente en C# con el apoyo del API de Microsoft XNA.




Ahora que ya saben mas sobre en que punto me encuentro les doy info mas puntual respecto a lo que hago por ahora.


Hace un par de dias, mi pata Bichito conversaba conmigo sobre la problematica de XGL (resulta que no somos muy efectivos en cuanto a avanzar, adelantar o peor terminar un proyecto ya puesto en marcha...) debido a que a lo largo del tiempo la gente (con esto me refiero a los miembros de XGL) se empiezan a ocupar de otros asuntos (lo que es normal puesto que somos estudiantes) y por lo tanto se desaniman con lo que obtenemos un proyecto incompleto. Y entre charla y charla me dio a entender que estaba "pilas" con tiempo pero que no pretendia entrar al grupo porque si al final no concluimos nada entonces lo unico que coseguiria es perder su tan cotizado tiempo. Es ahi donde me propone lo siguiente. "mira webon! tu terminate algo concreto, presentable y funcional, y yo le entro al grupo y me dedico a ello como si me pagaran por eso, que dices?" para todo esto cabe mencionar que el es diseñador grafico - programador.


^^ entonces no perdi mas tiempo y busque entre los archivos del grupo XGL (y no tuve que soplar el polvo solo porque son archivos virtuales xD, porque creanme que ese proyecto llevaba años sin avanzar considerablemente jajaja) y retome la idea(originalmente era un REMAKE del clasico PONG) y la reconstrui, me propuse metas algo distintas a las originales pero que cumplieran con lo q pidio David (Bichito), obviamente voy a tener muchos tropiezos en la parte grafica porque como diseñador me muero de hambre, mi una arma es el Paint XD




Aqui les mando un preview de como esta hasta el momento, y su nombre provicional es POL xD:


POL (Pong On LAN)


Para algunos sera poco o menos interesante, pero es precisamente x eso que lo voy a culminar, pa que ya David se encargue de ponerlo (visualmente) en forma xD.


Ya realice los primeros examenes y si he logrado conectarlo por internet (recuerdan que tengo server? ^^) por lan es cosa de niños, de momento faltan todavia algoritmos mas consisos de colicion, perfeccionar el algoritmo de transmicion de datos. El juego solo (la version anterior, la que no tenia funciones de RED llegaba tranquilamente a 50 Fps (cuadros por segundo) lo cual es muy buena calidad para este tipo de videojuegos, con 30 Fps deberia bastar y hasta sobrar xD.


El problema esta en que aunque lo diseñe (la version en red) para que muestre 33 Fps normalmente esta en 20Fps, el rango de valores que obtuve fue desde los 7Fps (lo que denominamos LAG) hasta 25Fps... la prueba se ralizo con el MSN abierto en ambas PC´s la del Cliente y la del Servidor (la mia) y en mi caso tenia abierta un aplicacion que me permite ver el estado de mi RAM y tenia espacio mas que suficiente por lo que coclui que la demora se debia a la transmicion y recepcion de datos... debo mejorar el algoritmo xD.


Bueno, los dejo por el momento mientras me voy a ver mi trabajo un rato.


Prometo colgar una version para correr en una misma PC(tanto Cliente como Servidor) cosa que UDs mismos comprueben que funciona, eso claro, cuando averigue como colgar aca !!! xD



Saludos!!


(Editado):


Aqui les cuelgo una imagen del Pong jugado en la misma PC, al parecer mi algroitmo de transmicion/recepcion no presenta mayor problema cuando las Pc´s pertenecen a una misma LAN, aun asi voy a mejorarlo lo mas que mis conocimientos me permitan, cosa que sea mas facil migrarlo a internet (Pong OnLine xD).



Ahora si fugo, xD!!