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



martes, 15 de diciembre de 2009

sábado, 9 de mayo de 2009

: ( si si, lo se.

Lo se y pido disculpas, llevo mucho tiempo sin postear nada de nada pero la cosa a estado dificil :S, pero eso termina pronto, la semana proxima rindo parciales y el si no surgen mayores inconveniente el viernes 15 actualizo el blog, o por lo menos comienzo a hacerlo :P

Alaos! xD

lunes, 19 de enero de 2009

He aqui mi presencia ( ^ . ^ )

Hoy llegue a Trujillo aproximadamente a las 6:30 y aprovecho la suerte de contar con internet a la mano para dejarles esta referenocia por lo menos xD, lamentablemente no tengo la menor idea de si podre acceder a internet mas tarde por lo que es posible que no deje nada mas en uno o dos dias que es lo que me tomara adaptarme a la situacion, zona y horario para encontrar una buena cabina que se preste para mis publicaciones ^^. No he desayunado aun asi q mi panza comienza a reclamar :*(

Por otro lado, TAY, si tu correo sigue siendo el mismo (abrigando la posibilidad de que no te lo hayan hackeado una vez mas ^^) te mando en unos momentos mis actuales datos sino quedaran a disposicion del hacker xD!!!

Alaos en unos dias ^^.

viernes, 16 de enero de 2009

Wii! Bienvenidos sean al blog del Game Development en el Perú

Me acaban de confirmar que este sabado hay basquetball ^^, que viva el deporte carajo xD.
Aunque estoy un poco fofo, ya se me subio la adrenalina ^^ lo que estoy dejando de lado es que lo mas probable en la condicion fisica en que me encuentro es que mañana termine en emergencias xD.

Con este batimos el record de 1 post por dia ^^ (ta que PRO que soy!! y eso si contamos que el otro post de hoy fue larguisimo para ser solo ideas del proyecto xD)

jajaja, como me empila la musica caramba! estoy oyendo a los masters de "40 gramos" y tanto me prendi que asi a lo Rambo me achore con el Paint y me arme un Logo provicional que les dejo al final de este post^^.


A todo esto se me ocurrio ir armando una serie de tutoriales de SDL a lo largo de la adaptación que le estoy dando al PONG que incluirían SDL, SDL_Net, SDL_TTF y si se da el caso de que se implemente SDL_Draw al proyecto tambien añadiria su uso en el tutorial ^^.

Lamentablemente no incluiría SDL_Mixer ni SDL_Image por un buen tiempo, puesto que no figuran en los planes a corto plazo para el desarrollo de POL (Pong On LAN).

Todo esto sin animos de darmela de profe, sino a modo de colgar un Block de TIPS sueltos (no BLOG sino BLOCK) aclarando, no sera un tutorial de "aprende SDL en 1 dia" o "SDL a Fondo" ¬¬ nono, nada que ver, sino unos apuntes del tipo "no olvides que tambien es posible hacer esto" o del tipo "es mas facil si lo haces asi ^^"
Y con esto facilitar el crecimiento de la comunidad de desarrolladores de Videojuegos:

"Si vienes a cortarnos las alas y trunkarnos los sueños lo mejor que puedes hacer es largrte cuanto antes pues pierdes el tiempo, no hay quien nos detenga!"

Todo en esta web esta hecho con la mejor de las intenciones. Xistin.


Dices que perdí, xq nací aaaaaki...

"Ya no voy a perder, no hay duda esta vez, ahora hay pisco en las venas." (Viva el PERU CSM!)

Asi es señores, a dejar de tirar la toalla!!
Me estaba alejando del Blog x buen tiempo ya ^^, pero me han inspirado nuevamente (increible lo que pueden hacer un par de buenas canciones carajo) a dejar de estar hueveando pues xD.

d(^.^)b (8)(8) Listo, hoy Viernes 16 de enero (cumple de mi hermana :P) armado con un litro de agua "San Luis", una lista de mas de 100 canciones "random" ( que van desde "good morning Baltimore, pasando por "Burn it Up" hasta "Se ha muerto mi abuelo", un cuaderno cuadriculado A4, un lapizero azul, y una PC con mis codigos fuente y el Dev C++ ^^. Hoy sale algo xD!!!
Ojala no me enchufen ninguna tarea compleja!


Movimiento en PONG:

*A partir de este momento cuando escriba PONG no estoy hablando del clasico juego, sino de la version de dicho juego que realizó el grupo XGL y el cual estoy editando para que tenga funcionabilidad en la RED.*

El loop de juego del PONG se ejecuta cada 30 ms o poco mas, es por esto que los FPS (frames per second, o cuadros por segundo) usualmente son 33 o menos en LAN (debido a su algoritmo vagamente elaborado su uso en internet no supera los 21 FPS) pero usualmente no baja de 31, con lo que es mas que suficiente.
Dentro del loop de juego se realizan los desplazamientos ( o actualizaciones de coordenadas de los objetos) tanto de la bola como de las barras. Pero nos centraremos en el de la bola ya que este no es directamente alterado por ninguno de los jugadores.
Los problemas surgen aca, el movimiento en PONG esta dado por dos variables enteras, cada una de ellas relativa a una de las coordenadas (x,y).

Entrando en detalle, dichas variables definen la cantidad de pixeles que la bola se va a desplazar y la direccion en que lo hara en el eje correspondiente. Osea si variable_x = 1 y variable_y =0 la bola se despazara 1 pixel por bucle (loop) hacia la derecha en el eje X (si fuera -1 se desplazaria a la izquierda), similar con la variable_y, 1 arriba, -1 abajo. Por lo tanto solo se puede movilizar a velocidades multiplos del FPS: 0, 33, 66, 99, 123... p/s(pixeles por segundo) en cada eje.
Cabe denotar que estas "variables" pueden entenderse como velocidad ya que te dan a conocer la razon de cambio del espacio (pixeles) por unidad de tiempo (s o ms segun convenga xD)

Pero, mmm... y xq no haces esas variables reales? asi obtendrias las velocidades que gustes, sin que sean multiplos del FPS. :P
Es buena solucion, pero requiere de un agregado, debido a una cuestion grafica que a continuacion explico ^^.

Nuestra pantalla se define en SDL (la libreria con la que trabajamos el PONG) como una superficie plana de Ancho*Alto*Profundidad de color. Tanto el Alto como el Ancho estan en pixeles, por lo que tendriamos una pizarra de puntos donde puedes colocar colores a tu gusto.
Pero, en teoria, no puedes colocar nada entre un punto y otro :S, me dejo entender?, solo podemos colorear los pixeles, no los espacios entre ellos. ^^ tiene sentido cierto?
Ahora digamos que la bola se desplaza de (x=138; y=200) con una velocidad que ingeniosamente hemos definido como un real (Vx=1,5; Vy=0,0) si pensamos a futuro, por ejemplo en el bucle 30 estaremos en la posicion (x=183; y=200) y no paso nada :P... :( Pero!! que pasa en la primera iteracion(bucle)? en el primer frame(cuadro) que debamos dibujar nuestra posicion es la siguiente (x=139,5; y=200) O.o?!!! para el SDL eso significa que debemos buscar en la superficie de pixeles el que se encuentre en la fila 200 entre el pixel de la columna 139 y el de la 140, pero entre pixel y pixel no se puede colorear, por lo tanto no podriamos pintar nuestra bola, lo cual si ocurriera con todos los pixeles de la bola significaria que la bola no se dibujo en ese frame :S, jajaja ^^ pero eso no ocurre porque las funciones graficas no te permiten ingresar una posicion que no sea entera, asi que en lugar de no dibujarse nos botaria un error nuestro juego ^^.

Ahora bien, esto no es el fin del mundo xD, vamos, que lo unico que hay q hacer es un pequeño codigo que nos "redondee" nuestras coordenadas ^^.

Pero :S no gastamos procesamiento al redondear todas nuestras coordenadas O.o???
Si, pero no es asi como lo haremos ^^ puesto que solo debemos redondear la coordenada de posicion del grafico, ya que esta es el punto de referencia de la imagen. si se altera la variable que contiene este punto 10 pixeles en cualquier sentido toda la imagen se alterara la misma distancia y en el mismo sentido ^^, puesto que la funcion de este punto es decirle a SDL desde donde debe empezar a dibujar la bola es por esto que al moverlo mueves todo el dibujo xD.

Es por esto que se acostumbra decir "cual es la posicion del objeto en este momento?" ahi se refieren a su coordenada de referencia, desde donde se comienza a dibujar, sino como diablos responderiamos a esa pregunta?? tendriamos que dar todas las coordenadas? O.o?!!

^^ Entonces la idea como queda?
entonces a partir de este momento la velocidad de desplazamiento va a ser una variable real (o de punto flotante) y los calculos de desplazamiento se realizaran seguidos de un redondeo y conversion a enteros de las coordenadas antes de mandarlos a dibujar. Algunos pensaran, tanto alboroto para tener mayor dominio de la velocidad? O.o? pero no queda ahi, este tramo de codigo que nos permite trabajar la velocidad como real nos va a permitir cosas que aun no habia mencionado porque no las voy a implementar en la version que estoy desarrollando actualmente pero mira, por ejemplo:

de fisica sabemos que:
dada una a = asceleración del objeto, v=velocidad del mismo, e=espacio tambien del mismo.*

*entendamos espacio como la posición del objeto, o para ser mas claros, la distancia desde el eje de cordenadas hasta la posición del objeto

hay una relacion entre ellos gracias a la maravillosa magnitud que permite la existencia de nuestra realidad (wtf O.o??), "el tiempo" ^^

y se da de la siguiente manera:

v(t) - v(0) = a*t
v(t) = a*t + Constante

posicion(t) - posicion(0) = (a*t^2)/2
posicion(t) = v(0)*t + (a*t^2)/2
posicion(t) = (a*t^2)/2 + Constante

Ahora, imaginan que cantidad de errores de precisión se daria si a,v y posicion fueran enteros?
mas teniendo en cuenta que el v(t) que calculas en un bucle sirve de v(0) para la siguiente :S
igual para posicion(t) y posicion(0)..:S si hacemos unas 30 de esas ecuaciones por segundo, imaginen nomas que pasaria en 10 segundos :S!!!

^^ pero afortunadamente todo eso lo vamos a manejar con reales y haremos el algoritmo que ideamos arriba antes de mandar a dibujar xD (con "mandar a dibujar" siempre me refiero a hacer que el programa muestre o "imprima" en pantalla los graficos ^^, no es que tenga mi propio dibujante xD)

Pero Ojo! esta pequeña jugarreta que hacemos es para no perder precisión, si bien redondeamos los valores de la posición de los objetos antes de mandar a dibujar, no chancamos( o sobreescribimos) dichos valores. Atencion ahi! que sino es por gusto! jajaja

un ejemplito :

si mi objeto perro esta en la posicion (234,38; 101,67) y me toca mandar a dibujar lo mandamos a dibujar en la posicion (234; 102).
Pero no por eso vamos a cambiar la posicion del perro, su posicion sigue siendo (234,38; 101,67). jajaja sino imaginen si el perro tuviera velocidad (0,40; 0,30) que pasaria?
ya no se moveria ^^. Cosa que es muy distinta a moverse despacito :P


Puntaje:

Si bien la parte de movimiento me va a tomar mi tiempecito :P no porque sea dificil la implementacion de la idea que he expuesto lineas arriba, sino por el hecho de que trabajo sobre un codigo ya hecho, voy a reemplazar las variables y eso traera consecuencias de incompativilidad en alguna que otra funcion, por lo que voy a tener que arreglarmelas con eso ^^
Otra salida seria no reconstruir sobre lo ya hecho, sino en base a ello, empezar de cero. ya vere como le hago y les cuento ^^.

Con respecto al puntaje son un par de variables enteras, la del servidor y la del cliente xD que guardaran, valga la redundancia, la cantidad de puntos acumulados (mas no los graficos) no, solo usaremos 2 enteros para almacenar los puntos y mediante la sublibreria de SDL llamada SDL_TTF "escribiremos" en un grafico jijiji como es eso? lo que hace la libreria SDL_TTF es ayudarnos a, teniendo un texto y un Font (en formato TTF), generar una imagen con dicho texto escrito en el con el tipo de letra definido en TTF (pero ojo, el resultado ya no es un texto, es una imagen ^^)
la ventaja es que lo generamos en tiempo de ejecucion, no tenemos almacenados todos los graficos correspondientes a cada letra y numero xD con lo que almacenamos memoria, mucha xD, ademas imaginen que quisieramos escribir en 3 o 4 tipos de letra distintos y en 3 tamaños de letra :S:S si lo hicieramos teniendo las imagenes pre-cargadas en memoria nos quitaria demasiada memoria :S:S y eso dependiendo del tamaño de la letra.

Si bien por ahora no vamos a permitir que se acumulen mas de 9 puntos por jugador ^^ en algún momento tendremos que permitirlo, con lo que vamos a requerir de algun algoritmo que nos separe cada cifra del numero y lo pase a texto ^^
ejemplo: 223 (numero) espacio que ocupa en memoria: 1 byte

"223" (cadena de caracteres) espacio que ocupa en memoria: 4 bytes
3: uno para cada cifra, y ademas uno para el finalizador de cadena (caracter que va siempre al final de una cadena de caracteres para indicar precisamente que ahi termina)
ademas pierden su capacidad numerica. "2" + "3" no es "5".. ¬¬ no sean payasos.


Interfaz Grafica de Usuario (GUI):

Para este aspecto planeo agregarle algunos menus basicos al PONG que en su version original no presentaba ninguno, iba defrente a la "acción" ^^.

De momento he pensado en estos:

Menu Principal:
-Opciones: (el usuario podra seleccionar una de ellas mediante un cursor que indica cual esta seleccionando en ese momento, que controlara con las teclas "arriba" y "abajo", + Enter)
-Comenzar juego
-Unirse a un juego
-Opciones
-Salir

Menu Comenzar:
-Nombre (introduce su nombre por teclado)
-Opciones:
-Comenzar (inicia un juego en LAN donde el es el Servidor)
-Volver (regresa al menu principal)

Menu Unirse:
-Nombre
-IP (ingreso de la IP del host via texto)
-Opciones:
-Comenzar (inicia partida contra el Servidor, si hay uno en esa IP)
-Volver

Menu Opciones: (reservado para futuras versiones ^^)

Salir: (te vas ^^)

* para futuras versiones cambiaran los Menus Unirse y Comenzar puesto que se implementara un algoritmo que utilize UDP para ubicar Servidores activos en tu LAN, con lo que ya no necesitaras conocer la IP de tu compañero ni menos introducirla xD.
Tambien se adicionaran opciones al menu Opciones :D jajaja esas cosas van a empezar a aparecer conforme se acompleje el juego, cosas como cambiar la profundidad de color (16, 32bits), encender/apagar el audio (como dije "para futuras versiones"), etc etc... xD


Bueno gente! xD los dejo de momento que tengo que trabajar que para eso me pagan ^^!!!

Y perdon si escribo mucho pero es debido a que no se si limitarme a escribir tecnicamente y asumiendo que saben de programacion, de SDL e incluso del proyecto PONG jajaja debe ser porque no comence este Blog cuando comenzamos a crear el PONG, tratare de arreglarlo con el tiempo ^^ Saludos a todos! :P

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.

lunes, 12 de enero de 2009

Y dicen que no duele ¬¬...

Yo soy el de la barba ^^ mas facil no lo pude decir xD (de los dos con arma arriba, el que tiene casco puesto).
A mi derecha esta David, el del cumple ^^:


El dia de ayer me fui con un grupo de patas al PaintBall, en la universidad Agraria, con motivo de la celebracion del cumple de uno de ellos, David, pero no el del Blog de Bichitoz ^^, sino otro, todos ellos de la promo del cole.
Bueno, resulta que la cosa esta es tan adictiva que a parte de pagar el ingreso que es de 45 lukas percapita, lo cual incluye solamente 60 balas pa cada uno, hicimos una chanchita para comprar un paquete de 500 balas extra xD, la gracia nos salio 150 lukas extra, pero esta vez entre todos, no nos dejaba de gustar el vicio este hasta que fuimos retados por los trabajadores del local.
Fue una muestra de destreza tan extrema que muchos de nosotros aun seguimos sufriendo los rezagos de dicha matanza, los superabamos en numero por 2 unidades, aunque al final fue una experiencia agradable termino con un comentario catastrofico, "ellos no les llegan ni a los tobillos a los representantes nacionales" lo que quiere decir que si algun dia jugaramos con ellos seria practicamente como que ellos tuvieran armas con punteros laser mientras nosotros estuvieramos atados de manos y con los ojos tapados, creen que exajero?? la gente que se dedica a esto no lo hace en broma, si es un deporte costoso, no es de los que puedes practicar con tu pelota de 5 soles en el parque donde jugar es gratis, ademas estamos hablando de gente que compra sus propias armas ^^, si por ahi nos conto uno de los trabajadores que se habian enfrentado a unos patas que tenian armas electronicas que disparaban 11 balas por segundo, mientras que las que te alquilan ahi disparan una por cada vez que jales el gatillo ^^ jajaja.
No por esto la experiencia me ha dejado de parecer buena, ya planeamos una revancha de aca 2 domingos, es que tenemos que juntar como 100 soles sino este domingo que viene nomas jajaja, pero no pienso aceptar mas retos hasta sentirme mas capaz, y dudo que eso sea pronto ^^.
Tomen esto como un comentario fuera de lugar y ya mañana continuo con la programacion, es que la verdad estoy demasiado cansado y ademas coji resfriado en la noche, algunos ya sabran que es ir a trabajar un dia asi :S :S, espero me comprendan, pero seguro mañana ya estoy bien.
Cuidense!

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!!

viernes, 9 de enero de 2009

Bienvenidos!

Sean todos Uds. coordialmente bienvenidos a mi blog pseudo-personal (es la primera vez que hago un blog asi q no sean exigentes :S, xD mentiritas, echenle con ganas, se acepta de todo, quejas, comentarios, alagos, todo es bienvenido xD.


Entonces doy comienzo oficialmente a mi tarea de postear casi diariamente en este blog y espero que llegue a ser para Uds. motivo de agrado.


Actualmente me encuentro practicando como ingeniero electronico, estoy de desarrollador grafico en un nuevo Software tipo SCADA (o de monitoreo de procesos, industriales por lo general) para Industrial Controls(empresa de instrumentacion netamente peruana) y para mi suerte la animacion del mismo se realiza mediante funciones en una version de Visual Basic, si no me equivoco es VBP (Visual Basic for Proccess o algo similar xD). Osea que mas q ponerme a hacer gift animados es practicamente diseñar un videojuego, ya que la animacion depende en todo momento de una entrada del usuario, y/o en este caso especifico del proceso que se esta monitoreando.

Para poner un ejemplo, digamos que en una fabrica hay un motor que mueve una faja transportadora (no importa lo q transporta) mi trabajo consiste en hacer que una persona desde su PC que se encuantra como a 300Km (o tambien podria ser que este fuera del pais y lo revise por internet) pueda ver en ella de forma grafica si las cosas marchan bien o no. Para este caso especifico las cosas funcionan asi, el motor tiene acoplado un pequeño hardware que detecta si este recibe tension electrica o no, si es asi envia un "1" logico a la PC sino envia un "0", y en la PC el sofware que previamente configure hace que la animacion del motor y la faja se activen si la entrada es "1" y que se quede en PAUSA si es un "0". Es un area muy interesante pero a lo que queria llegar era resaltar esa similitud con los videojuegos, en un videojuego si no tecleas las flechas direccionales o no marcas una posicion con el raton, no hay motivo por el que tu personaje se desplace... osea ambos son sistemas que se actualizan constantemente y realizan sus acciones de acuerdo a la data ingresada por el usuario.


Lo que ve el usuario final desde su PC es algo asi:
Cualquiera diria a primera vista que es un software educativo a algo asi para jugar a la industria o a la ingenieria pero no señores, no es un simulador, ese display (pantalla) se encarga de facilitarle datos importantes del proceso que esta monitoreando a quien sea pertinente, del buen diseño y programacion de este display dependen muchos miles de dolares en la mayoria de los casos xD.

Espero no haberlos agobiado con tanto blah blah blah tecnico, pero era para que se ubicaran en mi situacion actual, a todo esto hay q sumarle que actualmente estoy trabajando en Lima de 8am a 6pm. pero el domingo salgo para trujillo. A trabajar en la industria real, no desde lejos, sino desde dentro de ella, es lo que se le llama "trabajo de campo" en el area de la automatizacion. Y bueno, alla en trujillo no hay nada q hasta mañana señores, me voy a mi casita... porque vamos a alquilar una casa completa pa todo el grupo, osea q fijo volviendo a casa aun va habar trabajo, alguien q te friegue diciendo "terminaste ya con esto?" osea que realmente no saldre a las 6pm sino a eso de las 11, cuando ya todos esten dormidos y nadie este aun preguntando o encargandote mas cosas. :S en q me he metido? :S:S:S
jajajaja bueno señores, con esto considero que tienen ya una intro a mi situacion, luego les hablare de un proyecto sobre desarrollo de videojuegos que debo hacer si o si, debido a una oportunidad unica que se me presento xD. Nos vemos!