12.23.2006

PIC

En éstos últimos días he estado programando para pic por rigores del guión. Nunca había visto la programación de microcontroladores desde dentro, siempre había visto las típicas peleas de microbots, las tarjetas de pirateo del satélite y poco más. Y la verdad es que me ha sorprendido gratamente la potencia de estos dispositivos, sobretodo cara a el interfez con redes que es donde he estado trabajando. Aparte de las herramientas de desarrollo que son, a pesar de un IDE bastante torpón, bastante decentes incluídas las librerías de red que he estado usando. En este caso Microchip aporta una pila de red que incluye implementación de casi todo lo que hay de HTTP para abajo. Sorprende ver como un pic de 7$ es capaz de servir páginas web, hacer de servidor FTP (con su propio sistema de ficheros en eeprom) y encina muy simples de programar.

Aprovecho este post "sigo vivo" para desearos buenas vacaciones a los que las tengais y que disfruteis de vuestras personas queridas y esos tópicos de estos días. /o/

12.03.2006

Quedada en valencia

Ayer estuve en Valencia en una KDD de stratos para, entre otras cosas, hablar de una hipotética asociación de desarrolladores. El lugar fue la facultad de informática de Valencia, en el salón de actos (demasiado pequeño era para ser un salón de actos me parece a mi), en el cual había un proyector donde a la entrada se podía leer algunos de los puntos de los estatutos de la asociación.

Antes de eso, y para llegar a Valencia desde Murcia, tuve que meterme 3 horas y media de tren (para hacer 225 km), con la suerte de que en el mismo tren iba, además de con un compañero de trabajo, Zaelsius, el hombre mac-style, no solo por el mac, si no por la DS lite y la gente de devilishgames. Al llegar a la estación conocí, entre otros, a varios de los míticos de stratos, colson y mars atacks :).

Llegados a la sala de grados con un vistazo reconocí a algunos propietarios de caras cuyos nicks llevo viendo ya varios años en foros e irc. La cosa se confirmó cuando Nae, el moderador, presentador y showman del evento invitó al personal a presentarse. Allí ya terminé de conocer al resto de gente.

La charla sobre la asociación fue bastante peñazo y me parece que se sacaron pocas cosas en claro. El problema? pocas empresas (solo devislih y exelweiss) y mucha gente a las que les importaba un carajo el tema. En cualquier caso sirvió como un comienzo para un algo. Los comentarios más interesantes partieron de José Vicente Pons (aka kabila) y Carles Pons de exelweiss que eran de los pocos, junto con Vicente, mi compañero de trabajo y la gente de devilish que sabían que querían de una asociación. En cualquier caso se obtuvieron conclusiones, que no es poco.

Para mi lo más interesante vino después del debate, conocí a gente de la escena, slack y r3d, a la demás gente de stratos, josepho de questtracers(aka huevo-man), Ager de noticias juegos, pude hablar con gente que hacía, al igual que yo, infoarquitectura, hablé, aunque poco, con Carles Pons y también conocí a un chaval de digital legends del que no recuerdo el nombre.

En resumen, la kdd estuvo muy bien y es bastante enriquecedor conocer gente que le gusta lo mismo que a ti.

Un resumen un poco más objetivo en noticias juegos.

11.30.2006

Que pasaría si outrun fuera publicado ahora

Viendo estupideces de este tipo se me ocurren unas cuantas cosas que pasarían si el mítico outrun fuera publicado ahora en España:

Para empezar las asociaciones de mujeres se echarían encima de los creadores porque es un juego machista, es el hombre el que conduce. En este caso propondrían que fuera la mujer la que condujese, porque así se fomantería la igualdad de sexos. Lo tacharían de tópico, porque la mujer es rubia y explosiva, lo acusarían de fomentar la anorexia y la bulimia por el estado de la rubia. Ah!, y no quiero decir nada si fuera el tío quien mete ostias a la tía cuando termina mal la cosa porque no has corrido demasiado

La cosa no queda ahí, la DGT pararía los pies, primero porque le quitarían los puntos por exceso de velodad (a sabes la de radares que habrán puesto en esas autovías de 4 carriles donde hay un peligro extremo), conducción agresiva, invasión del carril contrario y claro, por no usar el cinturón de seguridad. Ah! y a saber si el tío se ha metido cualquier droga o va bebido (con esa pedazo de rubia).

Ah, y en España seguro que las fases en las que sale la playita de puta madre no tendría más playa al lado contrario, seguro que pondrían unas buenas torres de apartamentos, la SGAE cobraría al pavo lo suyo por poner la radio y antena3 se cebaría por ser un juego violento, eso sí, entre noticia de atentado en irak y muerte de unos perros a manos de unos salvajes.

11.27.2006

Compartiendo datos entre python y C++

Es muy babitual usar python como herramienta para labores anexas a otras, por ejemplo para extraer datos de un fichero de texto, hacer tareas previas la compilación y multitud de cosas. De esta forma podemos aprovechar la capacidad de tratar texto u otros datos de python (y su amplia librería) para dejarselo fácil a la aplicación en C++. Y qué significa dejarselo fácil? pues en pocas palabras en dejarle un fichero que podamos leer directamente a estructuras y que no tengamos que parsear ficheros de texto.

Para ello python provee un módulo cojonudo, struct. Con él en dos líneas podemos guardar datos que posteriormente podemos leer en python, por ejemplo.

- python
open("fichero.bin","wb").write(struct.pack('3f2f',x,y,z,u,v));

- C++
struct vertex
{
  float x,y,z;
   float u,v;
};

vertex v;
FILE* f = fopen("fichero.bin","rb");
if(f)
  fread(&v,1,sizeof(vertex),f);

Con este módulo podemos hacer, por ejemplo, un exportador de geometría en python para Blender en cosa de segundos:

scn= Blender.Scene.GetCurrent()
object= scn.getActiveObject()
mesh = BPyMesh.getMeshFromObject(object, None, True, False, scn)
file = open(filename, 'wb')
file.write(pack('i',len(mesh.faces));
for f in mesh.faces:
   for v in f.v:
      file.write(pack('3f',v.co[0],v.co[1],v.co[2]);

11.23.2006

Nuevo juego de Kenta Cho

Leo en sandía weblog que kenta cho lo ha vuelto a hacer. Ha sacado otro juego más, en la línea de los anteriores, esto es, mata mata de navecitas con estética tron/rez. Acabo de jugar unos minutos al juego y está divertido, la posibilidad de atraer naves y unirlas a la tuya para que disparen a la par.

Parece simple crear un juego así, total, no hay texturas y todo son primitivas simples, pero a pesar de eso todo está hecho con buen gusto y hace uno uso de las partículas cojonudo. Me gusta sobretodo la explosión de cuando te matan.

A bajarlo que son 5 megas de nada :).

11.21.2006

Juegos cortos, ideas buenas

Veo en el blog de librador, un empleado de digital leyends legends (jaja), el juego que ha presentado a una compo de creación de juegos en 72 horas.. EL juego es un puzzle en el que tienes que mover unas bolas metálicas usando unos "electroimanes" para llevarlas a un agujero. Hay solo 4 ó 5 niveles creados, pero sirven para ver que el juego mola y plantea un reto interesante, a pesar de estar programado en 72 horas.

Además el juego está creado en python + pygame y tiene todo el código a la vista :).

11.20.2006

OpenGL cambia de look

Jodo, sigo leyendo las noticias de opengl.og y me encuentro con una burrada de cambios que se van a producir en opengl en el próximo verano:

- Dos nuevas releases para el verano. En resumen, si usas una implementación serás compatible con las viejas y nuevas tarjetas y con la otra solo podrás usar el nuevo hardware con la ventaja de poder usar todo su pontencia

- un SDK, que ya era hora. Hasta ahora yo me habia guiado con el redbook, la espec de opengl y la de GLSL, pero está claro que es necesario unificar y centralizar ,sacando algo similar al SDK de DX.

- cambios en el modelo de opengl. Al parecer el modelo usado para algunas cosas, como explica en la web, era una chapuza y estaban optimizadas para la creación y no para el render.

Estas son las más importantes según mi punto de vista y parece que todas cara a poder hacer frente a lo que está por venir en D3D. Todo orientado a facilitar las cosas y a poder optimizar para el hardware moderno.

Geometry Shaders con OpenGL

Hace bien poco salía la nvidia 8800 que promete que será capaz de tirar dx10. Entre tantas cosas, añade a su funcionalidad el tema de geometry shaders, esto es, shaders que permiten añadir vértices. Hasta ahora nos habíamos conformado con transformar los vértices que teníamos pero ahora es posible generarlos.

Y para qué leches quiere alguien generar vértices? Por ejemplo, imaginemos el caso de querer usar billboards. Tenemos la opción de usar fixed pipeline, transformando uno por uno los vértices de los quads para orientarlos a la cámara. Otra opción es usar un vertex shader, de forma que le pasamos un "quad" con los 4 vértices centrados en el centro del quad, luego en una coordenada de textura se le pasas el número de esquina y por último dos uniforms con los ángulos de cámara. Con simple trigonometría y un vector de vec3 en el que se haga lookup con el número de esquina se puede transformar el vértice. Con geometry shaders se puede, indicar que la entrada es un punto, la salida es un triangle strip y en el shader generar los 4 vértices a partir del primero, con el consecuente ahorro de cálculo en el VS y de transferencia de datos.

Este es un ejemplo, pero seguro que hay cosas mucho más útiles que eso :). Un buen tutorial lo he visto hoy en una noticia de hace 4 días en la web de opengl. Bien explicado, con sus gráficos de rigor. A ver que hace ATI (aka, quisquillosa con GLSL) ahora.

11.18.2006

perrito

El otro día un compañero de trabajo apareció en la oficina con un perrito que estaba abandonado y que le estaba siguiendo. Como tenemos (aún) un poco de corazón le hemos acogido en nuestro seno, dándole cobijo, alimento y cuidado. Es un perrito la mar de juguetón, como viene siendo habitual cuando son cachorros, no parece que sea de raza definida, se le ve que está a falta de cariño y me imagino que nos lo quedaremos hasta que alguien lo adopte. Parece ser que en la protectora de animales únicamente se comprometen a meterlo con otros perritos y darlo de comer (que no es poco), pero preferimos mantenerlo unos días a ver si le podemos encontrar familia. De momento, y a a falta de un nombre mejor, le he bautizado como "jeta".

11.15.2006

STL: sí o no

Es muy común entre los que programamos en C++ el reinventar a menudo la rueda (incluso varias veces) y reprogramarse los contenedores básicos él mismo. Se suelen escudar en cuestiones de legibilidad de código, sobrecarga de llamadas, rapidez de ejecución. Es cierto que muchas veces es necesario tener muy claro como funciona algo, sobretodo con algortimos críticos sin embargo hay una serie de pros que me hacen decantarme por el uso de STL:

- efectividad: ganas tiempo en no tener que programar y hacer debug de tus contenedores. Además sabes que hay muchas más personas usándola y tienes cierta seguridad cuando las usas.

- rapidez de ejecución: es posible que tus contenedores sean más rápidos, pero en el tiempo que has usado para programarlos es posible que invitiéndolo en otros algortimos hubieras ganado más ciclos de cpu (o gpu :P).

- trabajos en equipo: cuando se trabaja en equipo es muy ventajoso que todo el grupo conozca muy bien las cosas básicas del código sobre el que se trabaja. Además casi nunca se suele estar de acuerdo en como deben funcionar los contenedores.

- Los iterators: te dan una versatilidad para cambiar de contenedor y trabajar con los mismos algortimos sobre cada uno bastante alta y que da aporta mucha efectividad a la hora de programar

pero también hay contras:

- No te evitas bugs... pero tampoco te libras de ellos si los programas tú. Por ejemplo hacer std::vector< std::vector > en algunas versiones de gcc (con la STL de GNU) tiene un bug.

- Código muchas veces ilegible, con lo cual hace difícil saber qué hacen exactamente.

- Múltiples implementaciones. Por un lado tienes la que traen por defecto los compiladores, STL de SGI, STL port. No es que sea un gran problema, pero hay contenedores y algortimos diferentes, ciertos detalles internos, etc.

- Los iterators: a algunos programadores les resulta engorroso tener que usar, por ejemplo, un iterator para eliminar un elemento de un std::vector

En resumen, para mi, STL sí, porque prefiero usar mi tiempo en crear algortimos diferentes a los de toda la vida, aunque creo que todo programador debería saber como implementar una lista enlazada o un vector. Tú que opinas?

10.28.2006

La fiesta empieza en Gameloft

Leo en khronos que gameloft anuncia en una nota de prensa que va a usar OpenGL ES en uno de sus juegos y que además lo va a endosar en un móvil con aceleracion.

Me hace gracia como vende la moto el presidente de Gameloft, más que nada porque existen juegos 3D hace siglos, no creo que porque veamos juegos 3D en dispositivos móviles vaya a ser la revolución aunque si funciona bien gameloft, entre tantas, se puede forrar a base de bien. El problema es que un juego 3D requiere mucho más trabajo que uno 2D (y por tanto mayor coste de producción) y no sé si saldrá tan rentable.

Por suerte OpenGLES es muy similar a OpenGL y los programadores de PC no creo que tengan problemas en reconvertirse, con lo cual la experiencia acumulada para PC siempre se puede aprovechar. A ver que va saliendo.

10.23.2006

matemáticas para la vista


Hace tiempo se anunció el "International Congress of Mathematicians" en el que se dieron unas charlas sobre demoscene. Hoy Íñigo Quilez ha publicado en su web las transparencias de las ponencias además de todo el material usado en la exposición. Personalmente me ha gustado la definición matemática de una mariposa que hace Íñigo en el pdf, aunque los otros documentos no se quedan atrás, lo cual no sorprende viendo los ponentes, unos de los creadores de iconoclast y también de plastic.

matemáticas para la vista


Hace tiempo se anunció el "International Congress of Mathematicians" en el que se dieron unas charlas sobre demoscene. Hoy Íñigo Quilez ha publicado en su web las transparencias de las ponencias además de todo el material usado en la exposición. Personalmente me ha gustado la definición matemática de una mariposa que hace Íñigo en el pdf, aunque los otros documentos no se quedan atrás, lo cual no sorprende viendo los ponentes, unos de los creadores de iconoclast y también de plastic.

10.16.2006

Pizarra mágica

Veo en codepixel un video sobre una pizarra (ojo, el pesado, lento y funciono_mal_en_firefox youtube :P) cuanto menos curiosa. En ella un señor muy serio dibuja objetos con un puntero a los que se aplica física real. Desde que apareció la DS hemos visto una gran cantidad de juegos que hacen uso de las posibilidades de la pantalla táctil y este ejemplo demuestra uno de ellos. Lo que se representa no es un juego, pero con unas pocas de vueltas a la cabeza estoy seguro que no sería difícil sacar un juego.

Además, la física ya sola por sí hace un juego, aunque si le añades unos toques divertidos pueden salir cosas como breakquest

EDIT: un jueguecillo/test que me ha pasado alex con física creada en flash: line rider y un video con una aplicación curiosa.. :)

10.11.2006

Agroguía empieza a andar

Como ya comenté el otro día tenía pensando intentar sacar algún dinerín vendiendo el PFC. En este tiempo ya hemos vendido 4 unidades y me empiezo a encontrar con los primeros problemas. El peor es el del abastecimiento de materia prima, esto es, pocketpc y GPS. Sé que hay por decenas en las tiendas, pero la mayoría de los pocketpc tienen cosas que no necesito (Bluetooth, WiFi), tienen pantallas pequeñas, son poco robustas... y los GPS peor porque muchos de ellos son una basura que no sirven ni para guiarse cuando vas en coche, otros son bluetooth y los que son un poco decentes y son con interfaz serie escasean y tienen plazos de entrega de dos semanas!!.

Bueno, estaba claro que esos problemas iban a estar. Otra cosa curiosa es lo que la gente pide que podría tener, unos piden medidores de área, otros sistemas de control integral del tractor... en fin y en cuanto al precio... a algunos les parece caro a otros barato, a algunos les parece que no sirve de nada, a otros de mucho, es curioso.

Por mi parte estoy mejorándolo en mi tiempo libre (que es poco). He añadido un medidor de área y ahora mejoraré el GUI, sobretodo en su usabilidad. A ver si contrato los servicios de un grafista que me haga unos iconos en vectorial (solo rasterizo polígonos, nada de texturas) chulos.

Por otra parte mañana voy a Valladolid, 8 horitas de tren... arg! Pero lo peor no es ir, lo peor es la incompetencia de algunos trabajadores de renfe que no saben cuantos minutos es una hora y que no saben resolver una duda sobre un trayecto. Encima creo que he cogido un catarro de estos estúpidos y tengo un principio de anginas.

Por otro lado ayer pasé por el silken 7 coronas, un hotel de murcia, donde parece que se aloja la selección. A mi la selección me da igual, pero casi se me saltan las lágrimas de ver la DSNG (aka fragoneta con antena parabólica), al ver esa parabólica orientada a vete tú a saber qué satélite, esos VTR's y sobretodo esos pequeños monitores SONY con las barras de colores ( blanco y negro, los colores primarios y los complementarios) test de la señal PAL. Qué recuerdos :__).

10.05.2006

Tristeza

Es la que me produce ver lo que estoy viendo. Estoy cenando y viendo en telecinco un programa que se trata de abrir cajas AL AZAR!! sí, completamente al azar, no hay ningún tipo de reto al participante y tampoco al espectador. El único interés del programa es ver como el concursante, jodido por tomar decisiones tan importantes, se jode al ver que no gana los 100 kilos que podría ganar. Pero es que además los concursantes hacen afirmaciones en las que saben con total seguridad donde está el premio...

Pero es telecinco... contrata a una presentadora que sabe estar en cámara, que sabe hacer ver al espectador que es una mentira y que ella es una hipócrita pero que como eres tonto te lo tienes que comer, buena iluminación, unos cuantos juegos de cámara, algún efecto de sonido y todo arreglado.

Por no hablar de los informativos, ahora mismo acaban de abrir con el titular de un método para dejar de fumar, por detrás se estaban oyendo voces de realización, una conexión en directo con el hijo de un periodista que no se aguanta de los nervios. Por no hablar de las cagadas de rotulación, las de los micros de los presentadores y de la auténtica basura sensacionalista y propagadísitica que nos meten entre pecho y espalda.

Menos mal que gran hermano se lo curran bastante bien :D

10.01.2006

hagamos negocios

Como algunos sabeis en mi proyecto fin de carrera programé una herramienta para el guiado de agricultores. Ya que está terminada y se asemeja en calidad a herramientas comerciales, por qué no sacarle un poco de partido? Para ello he creado un folleto de información (pdf) que va a llevar la universidad de Valladolid a una feria de Bilbao. Espero que llevando ese folleto a cooperativas y demás pueda vender y comenzar en el maravilloso mundo del pluriempleo :P.

En mi opinión quedan cosas que mejorar de la herramienta:
- Unos graficos en condiciones que no se pusieron en su debido momento por algunos problemas, sobretodo para los iconitos, el tractor y esas cosas.
- Me falta por concretar el HW concreto. Sé que debe ser un GPS sirf III, sin embargo me queda por concretar el modelo de PocketPC. La aplicación de momento ha funciona bien en todos los modelos que he probado, pero conviene que sea uno MUY robusto, con pantalla grande y que además tenga un soporte que aguante las vibraciones.

Si esto no funciona bien y no vendo nada, creo que la mejor manera de hacer que sea útil es sacarlo gratis y hundir en la miseria a arvatec y a isagri (jaja :P) no así a ssiiaa (empresa zamorana que también tiene un producto similar) y que así todos los agricultores puedan tener su sistema de guiado por muy poco dinero. Un día haré una comparativa sobre sus productos y el mío.

Por suerte cuento con la ayuda de Jaime Gómez, mi tutor de proyecto y amigo y con la sabiduría de rafa mompó que siempre están dispuestos a echar un cable y proponer cosas. Bueno, además de mi novia, que ahora está de comercial :P.

Sugerencias?

9.29.2006

SpeedTree

Dado que he estado trabajando con esta librería, voy a hacer un pequeño resumen de qué es y para qué sirve además de comentar algunos apartados técnicos que me han resultado curioso.

SpeedTree es una librería que genera proceduralmente árboles en base a una definición de parámetros. En esencia es solo eso y lo dejan muy claro en la documentación, speedtree es solo un motor de cálculo, no un motor de render ni nada similar. Speedtree te da todos los datos para renderizar el árbol... las texturas (que no genera, claro), los vértices, las normales, el tangent space de cada vértice, los pesos de los "bones", y otros parámetros realmente curiosos.

Ciertamente la librería genera unos árboles de alta calidad y perfectamente preparados para renderizarlos y animarlos en tiempo real. Y es que bien se podría llamar SpeedHack, porque utiliza todas las artimañas posibles para renderiza más rápido. Usa el mal llamado pseudo-instancing, esto es, pasa todos los parámetros del árbol en coordenadas de textura (posición, rotación y otros) dejándo todo el trabajo al vertex shader, de esta forma se ahorran los cambios de matrices de cada uno de los árboles.

Pero la cosa no queda ahí, especifican claramente como debes renderizar, en qué orden y casi te imponen un sistema de oclusión basado en celdas con batches de vértices para renderizar todos los árboles lejanos como billboards. Aparte de todos los trucos típicos de cambiar lo mínimo posible el contexto, organizar los vértices para no tener fallos de caché, usar un lod precalculado, usan otros trucos curiosos. Por ejemplo, una vez conoces las especies de árboles que vas a usar, una herramienta que te trae el SDK, SpeedTreeCAD, te genera texturas batch, esto es, en ella acumulan todos los billboards de cada árbol, las texturas de las ramas, etc.

Sin embargo lo que más me ha gustado es la parte del movimiento de los árboles con el viento. Cada vértice tiene unos pesos, al igual que cuando se hace skinning, sin embargo aquí se han ideado un sistema por el cual todos los árboles, sea de la especia que sean, comparten matrices de transformación. Cada frame las matrices de viento cambian (puede ser 2 o más) y cada árbol tiene un índice a una de las matrices, de forma que el mecanismo de pseudo-instancing funciona de miedo ya que parece que cada árbol se mueve a su ritmo a pesar de tener las misma mastices, la misma malla y los mismo pesos. Y todo eso con solo un parámetro por shader.

Para concluir decir que la librería se nota que está currada, pero ciertamente esta enrevesada y es muy rígida a la hora de integrarla. No compila en GCC para PC (he tenido que hacer unos cuantos hacks), aunque sí está preparada para compilarse en PS3 con gcc, además de XBOX y DX. Decir que la demo que viene a modo de tutorial no funciona en tarjetas ATI y que hace conversiones a de float a enteros en el shader que tan pesadas son en algunas tarjetas.

Otro día sigo hablando de ella, tendría para horas...

Links:
- sitio oficial
- demo de trees of pangaea, demuestran lo que puede llegar a hacer speedtree

9.22.2006

sensacionalismo al poder

Qué mejor que ser un sensacionalista, sacar las noticias de contexto y mentir de forma indiscriminada para tener una noticia "que pegue"? La receta es fácil, coges algo sin ninguna importancia de hace años que tenga que ver con la actual situación, lo expones en un medio de comunicación masivo (periódico, TV o página web) y a vivir.

Ni más ni menos que esto es lo que ha pasado con el juego patera racing. En un blog de informativos telecinco publican la noticia de la existencia del juego patera racing, programado hace 4 años y cuyo aspecto dista mucho de ser una burla hacia los inmigrantes que se juegan el pescuezo a diario. Todo hecho, 20 minutos se hace eco, los foros empiezan a funcionar... y seguramente en pocos días antena3 y T5 echarán pestes contra todo el mundo de los videojuegos (todo esto entre noticia de muertes en algún atentado y el desayuno de ronaldiño). Por suerte, el que ha escrito la noticia no debe tener mucho de periodista, porque ha publicado una "rectificación", esto es, ha copiado un correo del supuesto autor, y digo supuesto por el comentario que hace el autor en su web.

Qué enseñan en las escuelas de periodismo? Cuando aprenderemos a quejarnos y no dejar que gente así escriba noticias que no lo son y que lo único que persiguen es generar polémicas donde no las hay. Triste.

EDIT: ojo al comentario del periodista de 20minutos acerca del diseño del juego... tendría que leer sus noticias antes de criticar de aspectos que no conoce. Manda huevos que diría trillo.

9.20.2006

lo que está por venir en OpenGL

Leyendo los foros de gamedev he encontrado un link con los ppt de las charlas sobre opengl del siggraph de este año. Lo ideal sería escuchar la charla, pero con las transparencias te haces una idea sobre OpenGL 3.0, información sobre Khronos, lo que va a pasar con Windows Vista y OpenGL (jaja) y lo que está por venir en OpenGL, que a mi modo de ver es el paper más interesante para el que esté pegándose con OpenGL a diario y que más o menos viene a ser lo que ya ha anunciado MS con su DX 10.

9.16.2006

Global Illumination usando GPU

Para no variar iñigo quilez vuelve a sacar un estupendo artículo de cómo precalcular la GI usando la GPU(*). La técnica es muy simple y es un paso más allá de la técnica que ya descibrió hace tiempo para calcular el Ambient occlusion. La imagen habla por si sola.




(*) Actualmente cuando se habla de GPU lo primero que te viene a la mente son los vertex y pixel shaders y quizás en alguna técnica para fakear alguna propiedad física de la luz o de los materiales, sin embargo la técnica que comenta no los usa necesariamente, tranquilamente se podría calcular usando la "fixed pipeline"

9.12.2006

Lo que faltaba



Leo en anaitgames que apple se mete en el terreno de los videojuegos. Si les ha funcionado el negocio de distribuir música en internet, por qué no les iba a funcionar la distribución de videojuegos? son 5 dolares (según este resumen) por cada juego, que creo que al cambio viene a ser lo que vale un juego de móvil de los que anuncian a todas horas en TV.

Puede que se quede en una anecdota, pero tiene un análisis muy interesante. Veremos a apple sacando peleando con nintendo y sony ?

El toro de vega

El toro de vega es un festejo que se realiza en Tordesillas, muy cerca de mi pueblo, y donde pasé 4 años de mi vida estudiando la correspondiente enseñanza obligatoria y el bachillerato, y que se basa en matar a un toro que sueltan por las calles y afueras del pueblo. Los mozos van con unas lanzas y se lo tienen que cargar, sin más.

Hoy veía la noticia en 20 minutos, los cuales están completamente en contra de los espectáculos taurinos, pero esta vez no es la noticia lo que me ha llamado la atención, si no los comentarios. En ellos todos hacen referencia a la bestialidad que es matar a un toro y demás, pero, curiosamente, lo hacen amenazando e insultando, incluso hay algunos que van más allá y son ellos mismos los que se proponen voluntarios para ir a partirle la jeta al señor que remató al toro, que por cierto, le ha metido el cuerno hasta el gañón.

Como he dicho, he estado durante 4 años conviviendo con gente que ha nacido viendo al toro de vega morir año tras año y para ellos es algo natural, está muy dentro de ellos, tanto que ven como una aberración que alguien se queje o quiera eliminarlo de las fiestas.

Mi opinión es que es una animalada, creo que los festejos taurines deben ir más en la línea de los cortes que en la de la matanza, sin embargo veo desmedida la actuación de las personas, tanto las que comentan en 20 minutos, como las de carne y hueso. Pretenden solucionar el problema dando de ostias a otros humanos? hay algún comentario que iguala a tordesillas con ETA.

De mientras los moros jodiéndonos la vida con las bombas, los inmigrantes palmándola, los españoles empeñándose (me hace gracia hablar en tercera persona :P), los etarras de verdad riendose de nosotros, la televisión "educativa", los bancos, telecos y empresas en general riendose del consumidor, los políticos chupando del frasco y haciendo el ridículo... no me jodas.

9.10.2006

Mi nueva casa

Aviso: post personal

Bueno, hace unos días comenté que ya tenía nueva casa... qué menos que poner una imagen jaja :P. Es solo del salón (no tengo tele) con todo el dominical descomprimido, mi reproductor de mp3 (que me lo regaló mi novia), dos latas de cocacola que me gustan porque decoran, la pda, el portátil y la wifi usb para sacarla por la ventana (al fondo) y "shuparles el intené", como dirían por aquí, a los vecinos.

9.04.2006

1 semana

Aviso: post personal

LLevo ya una semana en Murcia, y ya he estado en el trabajo dos días, lógicamente de contacto con la dinámica, de aprendizaje de las herramientas y el modo de trabajo, etc. La cosa promete, la gente que he conocido tiene un nivel muy alto, algunos de ellos buena experiencia en el sector del videojuego (ya me han contado algún cotilleo :P).

Qué tengo que hacer? de momento pelearme con speedtree, una librería de generación de árboles procedurales muy enfocada al entorno realtime. Se puede ver en movimiento en juegos como unreal, oblivion y, como me ha comentado Nae, en fallen lords. Es una librería potentísima y con una amplia librería de árboles, aunque tiene algunos fallos que ya comentaré.

Por otro lado he conocido enlightenment un gestor de ventanas muy interesante, no solo por el hecho de que sea bonito, si no por su arquitectura, que permite correr todo el gestor de ventanas no solo en linux, si no también en windows bajo una ventana usando GDI o incluso OpenGL. Y no se queda ahí la cosa, también corre en dispositivos embebidos. Eso por no hablar del acabado. Pinta muy bien, de momento he conocido algunas caraterísticas y me ha encantado, a ver qué tal pinta.

El resto... bien, sobreviviendo.

8.31.2006

Aterrizando

Aviso: post personal. Siento mucho que los visitantes de planet stratos y planet augcyl se tengan que tragar mis post personales, pero de momento blogger no me da ninguna facilidad, aunque parece que pronto podrán separarse los post por tags y espero que tengan rss diferenciados.

LLevo en Murcia 2 días y pico ya que llegué el lunes, los que he invertido en buscar un piso en condiciones. Al final he encontrado un apartamento la mar de majo, un poco caro, pero me pilla cerca del trabajo, de mis amigos y de los sitios que conozco. Ah! y tiene aire acondicionado, cosa que es fundamental en esta región, el calor para mi es sofocante... :(. Aparte del calor me estoy adaptando bien a la nueva situación :)

En cuanto al trabajo he estado viendo la nueva oficina y he conocido a mis compañeros y, espero, a mis futuros compañeros a los que estaban haciéndoles una entrevista para entrar como grafistas (el término grafista es muy amlpio, no sabría decirlo con más precisión). Increíbles los bocetos, comics y animaciones que han llevado como currículum, dignos de quitarse el sombrero. El ambiente no puede ser mejor, tengo ganas de que llegue el 1 para empezar a trabajar.

8.27.2006

Me cambio de vida

aviso: post de esos con contenido personal.

Mañana me cambio de vida, esto es, me mudo a la otra punta de España a trabajar en algo que me gusta. Si hace dos meses, cuando terminé la carrera, me dicen que iba a terminar en Murcia y me hubiera descojonado. Leo con alegría una entrada de hace más de un año en la que empezaba a plantearme mi futuro profesional. Algo bueno de tener un blog es que puedes recordar qué es lo que pensabas aquel día y lo mejor, puedes analizarlo con mucho más claridad, a vista de pájaro, a toro pasado como dice mi abuelo. Y ahora, después de leer lo que puse aquel día me hace gracia que haya conseguido un trabajo en algo que me gusta.

Cambiar de ciudad no es algo simple, no solo por el hecho de alejarte de tu familia y personas queridas, si no por tener que buscarte la vida para encontrar vivienda, nuevos amigos, acostumbrarte a la ciudad, en mi caso al clima y a otras cosas que también me interesan, por ejemplo quién es el alcalde, quienes son los que gobiernan la comunidad autónoma (me interesa demasiado la política desde qu trabajé en TV), qué tv locales hay allí (jaja) (justo al lado del nuevo trabajo está tv murcia), dónde está el "tio molonio" de murcia (que será de m-clan, claro) para quedarse hasta las tantas los días de diario :P. Por suerte hay personas que me están echando un buen cable.

Lo dicho, me voy a murcia, así que si vas a estar por allí, ya nos veremos.

8.23.2006

python mola

Y mola porque quieres hacer algo y no tienes que estarte pegando con gilipolleces del lenguaje, lo tienes en la cabeza y lo pones en el editor. Estoy liado con un juego (secreto, para no variar) y necesito búsqueda de caminos, para lo cual, voy a usar dijkstra. Aún recuerdo cuando lo implementé con C++, qué tiempos aquellos. Ahora con python lo implemento en un abrir y cerrar de ojos. Buscando algo de información sobre grafos en python he encontrado uno de esos documentos cortos pero no menos interesantes y útiles que hacen que te enamores a primera vista. Si aún no has probado python, deberías echarte un vistazín a este documento sobre grafos para animarte a probarlo. Eso es sencillez, a que mola?

8.20.2006

Blender como framework para juegos

Desde que conozco Blender siempre he visto que tenía un sistema para crear juegos, pero hasta ahora no le había dado demasiada importancia, ya que no parecía una herramienta muy potente. Sin embargo, viendo los juegos creados con blender presentados en "Build a Cool Blender Physics Game - Win a PSP" he cambiado mi opinión radicalmente. He jugado a un par de ellos, pero el que me dejado bastante impactado ha sido este, un juego de coches con un acabado muy muy bueno. Una lástima que no se hayan centrado un poco más en la jugabilidad.

Desde hace un tiempo llevo viendo herramientas para crear juegos muy simples. No solo por el hecho de tener nuevas (y no tan nuevas) herramientas como fenix(devilish lo usa), blitz3d, game maker (questtracers), blender, lo nuevo de MS, XNA si no también porque los lenguajes son más simples (C#, python) y tienen más facilidades. Por ejemplo, últimamente estoy mirando el motor de disney Panda3D y la verdad es que crear un juego (simple,claro) sabiendo un poco de python es bastante asequible. O por ejemplo amanith framework (bindings para python) una librería para 2D y 3D que se ha usado en el juego de moda, freets on fire, que por cierto, está muy bien :D.

8.19.2006

blogs de desarrolladores de videojuegos

Últimamente los desarrolladores españoles se están poniendo las pilas. En los últimos meses estoy viendo algunos blogs muy interesantes sobre desarrollo de videojuegos, no solo de amateurs, si no también de profesionales.

Hace no demasiado apareció planet stratos que en su gran mayoría son amateur, aunque también hay gente con años de experiencia. Tenemos a josepzin y tucho que vienen del desarrollo de glest(juego de estrategia en tiempo real 3d de gran calidad), grupos algo más consolidados, como geardome del que destaco hydrium, el blog de ager de andorstudios, Josepho de questtracers (recomiendo easter avenger), grupos de reciente aparición pero que prometen mucho como G-Boot team, gente que escribe artículos apuntes y tutoriales, como samsaga2 (buenso artículos de generación de niveles), zupervaca que no debes dejar de leer si te interesa la programación para móviles, FANatiko, Jove Chiere, el grafista alternativo (y única persona que conozco con apellido en el nick), Pablo Zurita con un podcast sobre creación de motores y luego gente con sus años de experiencia a la espalda como Astat y Virtus.

No he enumarado todos, lo mejor es visitar el planet regularmente o suscribirse al rss.

Pero la cosa no queda aquí, hay un montón de blogs de desarrolladores que están sacando juegos al mercado. En la parte izquierda del blog hay unos cuantos links que he ido recolectando (y espero que aumente) en bloglines. Destaco:
- Designostic: Blog de reciente creación que está enfocado al diseño de videojuegos (esa parte tan desconocida). Realmente no sé quienes son los que aportan, aunque según he podido leer son de las grandes españolas.
- exelweiss: en sus post tratan diferentes temas, sobretodo de análisis de mercado enfocado naturalmente a los que son objeto de sus productos, esto es, juegos online (ver mundijuegos), desarrollo para móviles, advergaming, etc :).
- El blog de Jare: no necesita presentación, creo yo :).
- Blog de Nae: diseñador y showman en digital legends. El tío que más sabe de videojuegos del mundo XD.
- Blogs de omepet: los más interensates, este y el técnico. No se actualizan con frecuencia, pero son interesantes. A ver si mejoran el ritmo :).
- Blog de unkasoft: empresa de videojuegos para móviles afincada en Salamanca y que hablan, sobretodo, de metodologías de diseño de software y de programación para móviles. Se actuliza regularmente
- Librador: otro currante de digital legends.
- DevilishGames: blog de david ferriz (aka zwitter) de devilish games, empresa que ha desarrollado los pajarracos esos que anuncian a la hora de los simpson en antena3, vamos, movil+kota en sus variantes. Además de estos juegos, han creado muchos más, han sido finalistas unas cuantas veces en artfutura. Ya era hora de que creara un blog.

Espero poder hacer un post "blogs de desarrolladores de videojuegos II" en poco tiempo :)

8.15.2006

Python en real flow

Leyendo algunas de las entradas de python-es, la lista de corrreo sobre python en español, leo un post que me ha resultado llamativo. En concreto la persona pregunta por cursos o formación en python para poder usarlo como lenguaje de script en real flow, un programa de simulación de fluidos, que no conocía, pero que debe ser bastante conocido en el mundillo de los efectos especiales. Como curiosidad decir que en la sección de contacto la sede está en Madrid y la empresa fue creada por dos españoles.

Parece que se empieza a usar una de los muchos potenciales de python, la facilidad embeberlo en otros lenguajes y usarlo como lenguaje de script, especialmente usando swig o boost::python.

Espero que en esta aplicación se hayan pensado bien el interface con python y no lo cambien en futuras versiones porque puede pasar como con blender. En blender hay scripts para dar y tomar, sin embargo no hay compatibilidad hacia atrás y el trabajo de mantener un script al día es alto, con la consecuente pérdida de tiempo y motivación. A ver si se asienta el API de blender y la gente puede empezar a hacer scripts que tengan duración y sobretodo robustez, algo de lo que carecen la mayoría de scripts de Blender.

8.13.2006

Qué no hacer al diseñar software

Recientemente he descubierto el blog de mig21 y uno de los títulos de las entradas me llamó la atención: "el auge y la caída de CORBA". Cuando en quinto estudiamos middleware, esa capa utópica en la que sería posible hacerlo todo transparente al programador, nunca fallara, podría ser distribuida y de la que todos los gurús tenían algo que decir, algo me decía que algo tan bueno no podría ser verdad.

A medida que descubres cómo funciona RPC, con su sistema interno y, lo peor, el sistema de programación, te das cuenta que algo así es imposible que llegue a funcionar bien. Es tedioso montar un sistema simple con RPC, no entiendo como pudieron montar algo que funciona tan bien como NFS.

Pero la cosa no queda ahí, porque alguien decidió que también podría hacerse middleware para sistemas orientados a objetos y se le ocurrió CORBA que era aún mejor que RPC y todo lo conocido porque abarcaba absolutamente todo: todos los lenguajes, todas las posibilidades. Asombrado me quedé cuando vi que había empresas, como telefónica i+d, que lo usan. Cómo podría alguien usar algo tan sumamente enrevesado y complejo?

Por eso no me sorprende nada ver como CORBA muere y mucho más viendo las razones de sentido común pero tan dificiles de llevar a la práctica que enumera mig21 en el post que paso a copiar aquí:

"""
1 Los consorcios de estandarización necesitan reglas sólidas para estandarizar las mejores prácticas
2 Ningún estándar debería aprobarse sin una implementación de referencia
3 Ningún estándar debería aprobarse sin haber sido usado para en algunos proyectos de complejidad realista
4 El software libre/abierto tiene procesos de selección darwiniana y por ello se adapta mejor a las reglas anteriores
5 Para crear un software de calidad, la habilidad para decir "no" es más importante que la de decir "si"
"""

Las más importantes para mi, la 2 y la 3 que son la misma y la 5. Las primeras porque cualquier que haya hecho algo en su vida sabe que los toros desde la barrera se ven bien y la última porque la perfección es imposible.

Está claro, yo aún no he visto ninguna tecnología basada en algo fantástico como son los componentes o los WS que funcione. Sin embargo, cosas simples como AJAX están hasta en la sopa.

8.09.2006

Me voy a Murcia

Aviso: contenido personal

Como dije, antes de ayer estuve en Murcia en una entrevista de trabajo. Salí el domingo a las 5 de la mañana - mi coche no tiene aire acondicionado -, llegué allí sobre las 12:00, no sin problemas gracias a un "pequeño" atascto en la A-7 desde murcia hasta alicante (gracias N-340). Después de encontrar la oficina, estuve más o menos una hora en una entrevista muy informal y entretenida. Estuvimos hablando de temas de 3D, de lo que sabía, de lo que hacían, me enseñaron cosas,etc. Mi novia, que estaba presente, me dijo que era lo más friki que había escuchado hacía años.

Ayer me llamaron para decirme que estaban interesados y lógicamente yo también, así que en breve me desplazaré a murcia para quedarme una temporadita. Ahora a buscar piso y preparar :).

Por cierto, GMV me respondió el correo diciendo que:"mis conocimientos y experiencia no se ajustan al proceso de selección" pero mantendrán mi cv en su BBDD para futuras pruebas de selección. El mail, típico de plantilla, que no pego aquí por que venía con una "licencia" un tanto restrictiva, estaba firmado digitalmente, esto es, habían escaneado la firma del señor que me lo había enviado y la habían puesto en un attach.


Entre este blog y mi actuación en las entrevistas, me estoy buscando una cantidad de amigos en las empresas de acojone, pero me puede esta forma de tratar a las personas, no sería mejor decir la verdad en vez de un correo prefabricado... aunque bueno, mejor eso que no decir nada, como hace telefónica i+d, tecsidel, etc. Debo ser el único que piensa que cuando voy a una entrevista soy javier santana y no el currículum número X o el segundo candidato y que la misma molestia que te tomas tú en ir a conocerles podrían tener ellos en dedicarte unos minutos en escribir un mail personalizado. Triste.

8.06.2006

Trabajo: Capítulo II

aviso: post con contenido personal

Después de la esperada desilusión de GMV, vuelvo al ataque con otra oferta de trabajo, pero esta vez cambiando de tercio.

Mi idea hasta ahora era la de intentar encontrar trabajo por una zona cercana a mi casa siempre y cuando el trabajo me interesara. El tema es una cuestión de calidad de vida, aunque, claro está, tampoco puedo estar toda la vida intentando encontrar trabajo en un sitio donde no lo hay o no lo consigo.

En mi pueblo cuando queremos decir que algo está lejos decimos que está en murcia y ahí es precisamente donde voy a ir mañana a hacer una entrevista. Del trabajo no sé demasiado, solo sé que une dos de mis grandes aficiones, C++ y OpenGL.

Seguiré posteando, mañana desde el pocketpc, seguramente desde alguna playa del mediterraneo :)

8.03.2006

Desarrollo actual: cubeout

En los ratos libres de estos días estoy programando un pequeño juego de carreras de naes estilo wipeout. No es un juego muy original ni tampoco pretende ser una maravilla, trato de quitarme la espinita que tengo clavada de la jugabilidad en mis juegos anteriores y creo que con este de momento lo estoy consiguiendo, es jugable :).

EL juego está a un 80%, me falta casi todo la parte del renderizado que quiero darle un mejor aspecto y pulir los típicos fallos y bugs que siempre aparecen.

En este juego estoy tratando de meterlo todo en 96kb, ahora mismo el ejecutable comprimido con UPX ocupa unos 40kb y de momento tiene solo una canción dentro del ejecutable. Todo lo demás es generado, la pista, las texturas incluso los efectos de sonido.

Bueno, dejando a un lado la chapa técnica la peculiaridad del juego es que un 30% de las naves corren más que tú y la única forma de pillarlas es usando los típicos turbos. Pero claro, los turbos son limitados y la única forma de conseguir rellenar los turbos es estando al rebufo de una nave (si te deja). Con lo cual la carrera se convierte más que en una carrera a morir, en una estrategia, porque si adelantas al primero, tarde o temprano de adelantará, con lo cual lo interesante es permanecer detrás de él hasta los últimos metros :).

Bueno, una foto:



Un ejemplo de nave:

8.01.2006

Así se empieza

En stratos, web que aglutina a todos los que nos interesa el desarrollo de videojuegos, se está debatiendo este post de clockwork orange sobre el desarrollo de videojuegos en España. Cómo siempre que se habla de empresa en stratos, se termina hablando de cosas diferentes, arreglando el mundo y echándo la culpa a la sociedad o a cualquier ente susceptible de no reprochar nada.

Entre ellos he leído un post, concretamente de david ferriz, zwitter para los amigos, que voy a pasar a reproducir aquí, porque me parece un ejemplo y creo que tira abajo muchos mitos sobre el tema de "montatelo tú mismo". Verdaderamente interesante:

"""
Cita:
un tipo amateur no se va a exponer a invertir dinero en crear una empresa


Yo me he gastado una pasta en montar la empresa, asesores, administración, equipos, licencias, etc. No se cuanto durará, pero de momento nos da para comer haciendo juegos Smile , yo no tengo estudios empresariales, ni nada por el estilo, de hecho tengo 23 años, he estudiado un ciclo superior de ilustración, y cuando acabé, decidí que mi hobbie de tantos años... podía llegar a convertirse en mi trabajo. Todo es cuestión de intentarlo, ver posbilidades, de no rechazar clientes... por muy poco atractivo que sea hacer un juego de ese estilo, ... buscarse las castañas por internet, buscando clientes para gráficos shareware. No se, todo es cuestión de moverse.

Tengo muchos compañeros que estudiaban conmigo ilustración, que son verdaderos artistazos, pero no se han movido nada... y están currando en telepizza. Hay que moverse y no tener miedo a mostrar tu trabajo por foros de todas partes, por stratos, por foros de 3d, por indiegamer... etc. A alguien le interesará tarde o temprano.

De hecho, hace ya más de un año puse un post en indiegamer presentandome, mostrando algunos gráficos, etc... y todavía me llegan mails ofreciendome trabajos freelance. Está claro que al principio te la darás muchas veces con los presupuestos, ... y te tocará comerte proyectos enormes cobrando una mierda, pero eso se gana con la experiencia... y la experiencia se gana trabajando.

Yo no soy nadie, a si que no soy quien para dar consejos, por que no creo que mi empresa sea un ejemplo, pero bueno, a mi me da de comer... y pienso que si mucha gente rebajara un poco sus pretensiones... y en vez de trabajar en un AAA, se dedicara a otras cosas más pequeñas... le saldría mejor. No es tan bonito hacer un juego flash para una web... que participar en el ultimo juego de Commandos... pero bueno... a mi me vale.

Lo de arriesgarse o no... es otra cosa, yo nunca he tenido un duro, pero todo lo que gané trabajando como diseñador web, lo he invertido en la empresa. Como mucho... voy a perder ese dinero. Para trabajar en una empresa... tengo toda la vida, para intentar montar lo mio... no Smile

Cita:
no se va a exponer a invertir dinero en crear una empresa, para por ejemplo montar un negocio de shareware


Una opción a eso... es hacer un buen juego share o para móviles, en ratos libres... pero con seriedad, acabarlo, ponerlo a la venta... y esperar beneficios para poder invertirlos en la empresa. Para hacer eso, hay que tener las cosas claras, ser constante y profesional, y hay que sacrificarse. Yo antes que quejarme... prefiero intentar las cosas antes Very Happy

Cita:
Creo que muchos de los que no se lamentan tanto son los que realmente están haciendo cosas o intentándolo.


Eso pienso yo.
"""

7.31.2006

Rez: un juego para mujeres

En estos días he estado jugando al Rez de dreamcast. Es una verdadera gozada de juego, lo mires desde el punto de programador como desde el punto de vista de jugón. Es muy dinámico, tiene un montón de transiciones, todo está sincronizado, etc, etc. Recomiendo que si alguien no lo ha jugado, que lo haga, si puede ser con unos altavoces en condiciones y a un volumen razonable. También es interesante la web en cuanto a que explica la historia, lo que ha inspirado cada nivel, los creadores de la música

Mirando la entrada de la wikipedia me encuentro que algunas mujeres usan el pack de vibracion que viene con el juego (solo japón) para otros propósitos. Pase, siempre se ha bromeado de la utilizad de los vibradores en los mandos de la consola desde el rumble pack de nintendo64 y el dual shock, pero lo que es el colpo es que incluso se han programado drivers para controlarlo desde PC y que se integra con winamp/itunes/etc.

Ver para creer.

Blender para programadores

Blender, como espero todos sepais, es un software para modelado, renderizado y un largo etcétera relacionado con el 3D. Lo interesante es que permite crear scripts en python para manipular los objetos, exportarlos, importarlos y todo lo se te pueda ocurrir.

Como el tiempo es oro, cuando programas algo con cierta entidad siempre surge la necesidad de crearte herramientas que faciliten y agilicen el trabajo. Para crearte las herramientas se puede optar por la vía de programarte todo un GUI en OpenGL (o en tu api favorita), usar algunas de las librerías como MFC, windows forms, wxWidgets, etc, usar un lenguaje no apropiado o usar el apropiado (por ejemplo python). Es posible que se pueda aprovechar mucho del código del motor, juego o lo que sea para hacer la tools, en ese caso es lógico usar el mismo sistema que usas en el motor, sin embargo si no es así, lo ideal es usar un lenguaje que permita trabajar rápido y te de cosas ya hechas. No quiero ser repetitivo, pero python encaja perfectamente ahí.

En algún rato libre estoy programando un juego de carreras de naves estilo wipeout además intentándolo meter todo en 96kb. Lógicamente no voy a guardar todos los datos de geometría en el ejecutable, pudiéndolo generar, para qué voy a gastar espacio a lo tonto? :P. Para generar la pista a cualquier se le ocurre que con unos cuantos puntos y una interpolación cúbica es más que suficiente. Qué es lo que permite hacerlo en 5 minutos? pues Blender da soporte para hacer pequeños GUI con pocas líneas, fácil acceso a los vértices, objetos, etc y además tienes toda la potencia de python.

Por ejemplo, para los puntos que generarán la línea y a su vez la malla se puede exportar de la siguiente forma:


def export_c():
O = Blender.Object.GetSelected()[0];
me = O.getData();
f = open("export.h","w");
f.write("vec3f track[%d]={\n"%len(me.verts));
for v in me.verts:
f.write("{%f,%f,%f},\n" %(v.co[0],v.co[1],v.co[2]));
f.write("};");
f.close();


Basta con seleccionar la malla y exportará los vértices. De esta forma puedo editar los vértices en blender a mi gusto y dar al botón de export, recompilo y ya lo tengo. De otra forma tendría que estar editando los vértices a mano hasta que consiguiera el resultado que quiero.




Las naves, por ejemplo, están basadas en quads con muy pocos polys. Para incluirlas en el código he creado un exportador:


def export(name):
p = Object.GetSelected()[0];
if(not p): return;
objname = p.getData(True);

me = NMesh.GetRaw(objname);
objname = objname.replace(".","_");
f = open(name,"w");
verts = [];
xmax = me.verts[0].co[0];
xmin = me.verts[0].co[0];
ymax = me.verts[0].co[1];
ymin = me.verts[0].co[1];
zmax = me.verts[0].co[2];
zmin = me.verts[0].co[2];

total = [0,0,0]
for x in me.verts:

if(xmax < x.co[0]): xmax = x.co[0];
if(xmin > x.co[0]): xmin = x.co[0];

if(ymax < x.co[1]): ymax = x.co[1];
if(ymin > x.co[1]): ymin = x.co[1];

if(zmax < x.co[2]): zmax = x.co[2];
if(zmin > x.co[2]): zmin = x.co[2];
total[0] = total[0] + x.co[0];
total[2] = total[1] + x.co[1];
total[1] = total[2] + x.co[2];

total[0] /= len(me.verts);
total[1] /= len(me.verts);
total[2] /= len(me.verts);
m = max(xmax-xmin,ymax-ymin,zmax-zmin);

f.write("float %s_verts[]={"%objname);

xpan = (xmax-xmin)/m;
ypan = (ymax-ymin)/m;
zpan = (zmax-zmin)/m;
for x in me.verts:
cx = (x.co[0]-xmin)/m;
cy = (x.co[1]-ymin)/m;
cz = (x.co[2]-zmin)/m;


f.write("%ff,%ff,%ff," % (cx-xpan/2.0,cy-ypan/2.0,cz-zpan/2.0));
f.write("};\n");

f.write("unsigned short %s_inds[]={"%objname);
for x in me.faces:
f.write("%d,%d,%d,%d," % (x.v[0].index,x.v[1].index,x.v[2].index,x.v[3].index));
f.write("};\n");

f.write("meshdata %s_mesh={"%objname);
f.write("%d,%s_verts,%d,%s_inds,0,0,0,0,0};\n"%( len(me.verts),objname,len(me.faces)*4,objname ));




Fácil, no?

De postre un wipeout en 32kb: el loco megabus

Record: post más antiguo

Sí, según blogger mi primer post lo escribí en en 1990 hace ya cosa de 16 años. Qué, alguien me supera?

7.27.2006

Se nota lo del euro

noticia en 20 minutos. Ojo, 20 minutos y escrito por una persona que puede que tenga título de periodista, pero bueno, los datos ahí están. Bueno, también lo citan en elmundo, en la sección de economía.

Yo ya sé donde voy a echar mi currículum, ¿y tú? ¿vas a buscar trabajos en infojobs pudiendo estar de funcionario sin opositar?

7.26.2006

gimp para aventuras gráficas

No hace demasiado tiempo ponía una imagen que mostraba el desarrollo de una pantalla de una aventura gráfica. Ayer, visitando los blogs de omepet he encontrado un pequeño resumen del proceso de creación de un escenario de "la insula de don sancho" y ademas con GIMP, del que hace poco se ha sabido que tiene solo 5 desarrollares fijos :)

7.24.2006

Trabajo: capítulo I, conclusión

Aviso: post personal

El pasado lunes tuve una entrevista en GMV y creo que está bien hacer un pequeño resumen de lo que pasó, sobretodo cara a quien lea esto y tenga que enfrentarse a una entrevista.

La entrevista fue bien, esto es, yo estuve tranquilo y conté todo lo que tenía que contar. Primero me hicieron una entrevista técnica y posteriormente la típica de RRHH, pero esta vez por videoconferencia.

En la entrevista técnica me hicieron las típicas preguntas:
- repaso del currículum
- ronda de "estarías dispuesto a..." [ quedarte más horas | hacer cosas a bajo nivel | etc]
- ronda de "sabrías hacer ..."
- en la carrera qué es lo que más/menos te gustó y porqué.
- inglés

Para terminar me hicieron colocar en el orden que yo quisiera las siguientes palabras: perfección, trabajo ,eficiencia y otra que no recuerdo :P. Curiosa pregunta.

La entrevista de RRHH, aún más típica:

- repaso de currículum, por qué desjaste tal y cual trabajo
- especial atención a la carrera: asignaturas que más/menos te gustaron, definir lo que hiciste en el proyecto fin de carrera incluyendo metodología y tecnologías ( muy incisivo en lenguahjes de programación y SSOO, sobretodo linux)
- tienes pensado seguir estudiando? qué?
- cómo te definirías, qué mejorarías de ti
- has trabajado en trabajo en grupo, cuándo y cómo.
- estarías dispuesto a irte fuera
- qué tal ha ido la entrevista?
- inglés, escrito y conversación.

Una de las preguntas que hacen muchas veces y que es difícil de responder es: por qué crees que te mereces más el puesto que otro?.

En mi caso hubo partes un poco "tensas", no en la parte técnica, en la que yo di hasta donde podía dar, esto es, a nivel de programación/electrónica sé lo que sé y a nivel de autonomía en el trabajo puedo hacer lo que puedo hacer. Sin embargo en la entrevista de RRHH hubo almenos dos momentos difíciles: me preguntó que asignatura me había gustado menos, respondí que economía, asignaturas de sociedad, sin embargo quedé claro que me habían gustado a pesar que habían sido las que menos. Más adelante me preguntó que si quería seguir estudiando, a lo que respondí que sí y le dije que querría estudiar algo que no tuviera mucho que ver con la tecnología, por aquello de cambiar. Entonces me dijo que eso era una contradicción... momento curioso. El otro momentazo fue cuando le dije que había desarrollado el última PFC bajo pocketpc, entonces me preguntó que si usando linux y windows. Le expliqué que pocketpc es una plataforma que trabaja bajo windows mobile y las herramientas de desarrollo lógicamente eran bajo windows. Ella respondió "ah!, lo siento" como si yo hubiera echado en cara que no supiera eso (o eso me pareció), lo más lejos de mi intención.

El resultado... el que esperaba. A pesar de que el puesto de trabajo me parecía muy interesante, me gustaba y creo que encajaría muy bien, la sensación de la entrevista no fue buena, no en cuento al trato con ellos, que creo que fue positivo, si no para obtener el puesto. Sigue rascando.

7.22.2006

OMEPET S.L.

Leyendo uno de los resúmenes que Nae está escribiendo en anaitgames sobre los premios desarrollador_ES me ha resultado curioso el comentario sobre "La insula de don sancho". Resulta que la empresa desarrolladora OMEPET S.L. es un caso interesante de empresa desarrolladora de videojuegos y no solo por dedicarse al desarrollo de videojuegos en España... :). Lo interesante... en su web ponen muy claro las tarifas por cada uno de los trabajos, que la verdad son muchos, casi todos relacionados con videojuegos + mundoweb. Como bien dicen en su web sus servicios están orientados a dos tipos de áreas, el advergaming y los juegos como herramienta de aprendizaje.

Otra de las cosas que me ha gustado es que colaboran con la universidad, proponiendo prácticas y proyectos fin de carrera muy interesantes. Entre los proyectos, existe uno de kiosko de distribución de contenidos para móviles. A tenor de los datos sobre las descargas de juegos para móviles, según la EDGE de Julio "solo" un 5% de usuarios de móviles descargan juegos y algunos de los entrevistados en ese mismo número hacen referencia a los medios de distribución, este podría ser un método diferente de distribución por experimentar.


Sin embargo, lo mejor de todo, es que se han dado a conocer gracias a su talento, seguro sin necesidad de invertir demasiado dinero. Han salido en TV, radio y prensa, además de por las webs y blogs del mundillo.

Pues nada, a jugar a la insulta de don sancho.

7.21.2006

Hola mundo genético


Después de leer en planet stratos dos (uno y dos) hola mundo no podía dejar pasar la oportunidad para poner uno que me ha llamado la atención. Se trata de un hola mundo con algortimos genéticos.

En la misma web se pueden encontrar traducciones de artículos relacioandos con la IA, muy recomendables. Personalmente, uno de los que más me ha gustado es este sobre la IA del quake basada en máquinas de estados finitos. A hilo, otro artículo que he leído en designostic sobre la IA que está por venir.

7.18.2006

Diseño de Juegos para Programadores

Jare ha colgado en su blog las proyecciones de su conferencia en gamelab. Sigue la línea de la charla de la UPC, aunque esta vez más orientada al público cuadriculado, aunque sin perder la visión del director de un proyecto.

Muy recomendables, con cosas curiosas, como el uso de MS project, que pensé que nunca lo vería funcionando en ninguna parte. Espero que detrás de la foto haya todo un proyecto y que no haya servido como foto-recurso.

7.17.2006

Trabajo: capítulo I

Desde hace ya un tiempo me han llamado para alguna que otra entervista laboral, lo cierto es que solo en una de ellas he caído en gracia, aunque después la cosa no fructificara.

Aún recuerdo la prueba de selección de deloitte con cierto agridulce ya que además de ser la primera, fue un cúmulo de sorpresas. Tambien he pasado por tecsidel, esta vez era para unas pruebas psicotécnicas y tecnológicas para una beca en la que finalmente ni me llamaron, lo cual no me extraña, ya que salí cabreado (conmigo mismo, *ejem*). Buen sabor de boca me quedan en mis 3 entrevistas en TID( y 2), dos de ellas para una beca (me llamaron para una tercera pero ya estaba trabajando) y otra más a través de TCPSI, ya con fines laborales serios (nada de becario). Finalmente hace cosa de dos meses, quizás más, me llamaron para otra entrevista, en una empresa formada por dos personas que se dedicaba al I+D. De esa entrevista no he comentado nada aquí y aunque para mi fue muy bien (me sentí agusto), para ellos no debió ser tan buena porque no me llamaron. AH! y otra en cap gemini en el rollo ese que montan en industriales todos los años (FIBEST).

Resumen: deloitte, TIDx3, tecsidel, TVCYL, la empresa de i+d y capgemini. Total 8 entrevistas, "superadas" 1 :), menudo ratio más malo.

Hace cosa de una semana recibía una llamada de GMV madrid, intuyo que de RRHH, diciéndome que habían recibido mi CV a través de infojobs. Me hicieron unas preguntas, imagino que con triple sentido, los de RRHH nunca sabes lo que quieren saber, con lo cual me limité a responder la verdad, así nunca me confundo. Lo que me preguntaron fueron las cosas que más o menos te preguntan siempre, cosas que has puesto en el currículum y las que no has puesto pero que quieren saber: por qué dejaste los trabajos, cuando comenzaste la carrera, cual fueron los pfc's de las carreras, qué tecnologías estaban implicadas en ellos... etc. Mañana tengo la entrevista, supongo, técnica. En principio la empresa me atrae bastante, no solo por lo que se puede leer en su página web, si no por algunas de las conferencias a las que he ido durante mi estancia en la universidad.


Asi que mañana me enfundaré el traje, cosa que me desagrada ligeramente. En otras entrevistas he ido vestido normal, como voy siempre, que es como si consigo el trabajo iré en un futuro. Me parece que si voy así peco de hipócrita, aunque hay una regla no escrita que dice que tienes que ir bien vestido, psé, cosas de esta sociedad de apariencias. A pesar de ceder en este aspecto, a lo que no voy a renunciar es a ser sincero en la entrevista, no tengo problema en decir que no sé hacer y qué se hacer bien, es mejor no llevarse a engaños.

Mañana el desenlace. Más información en próximos capítulos :)

7.15.2006

Usando filtrado de señal en videojuegos

Aviso: frikada
De las cosas que más me gustan es poder aplicar lo que he aprendido a situaciones para las cuales no estaban aplicadas. Cuando estudias electricidad te enseñan lo que es una resistencia, lo que es un condensador, una bobina, los mezclan en ciucuitos de mil maneras y te muestran las ondas que se producen en cada uno de los elementos.

Por otro lado, en los típicos tutoriales de programación gráfica, en aquellos que te enseñan como recoger desde tu programa las pulsaciones de teclado y aplicarlas a la rotación de un cubo. Para rotar un cubo fuciona bien, pero cuando te pones a aplicarlo al juego de naves que estás programando funciona no demasiado bien, hay discontinuidades y no se parece nada a como funciona en los videojuegos "de verdad".

Y qué tiene que ver una cosa con otra? volviendo al tema de los circuitos, el caso habitual era intriducir en el cirucito una tensión en forma de salto para ver como se comportaba el circuito. En la siguiente figura se muestra el comportamiento para diferentes valores de los componentes (arriba la entrada, abajo la salida):



(fuente figura)

Este tipo de filtros se puede aplicar a la entrada de teclado o al movimiento de un objeto para hacerlo más suave.

Por ejemplo, queremos que un objeto se desplace a una velocidad V, lo que se suele hacer es:
obj->vel = V;
obj->pos += obj->vel*delta;

Pero imaginemos que se quiere hacer que acelere suavemente: Se puede, usando un filtro de orden 1:

obj->targetVel = V;
obj->vel += (obj->targetVel - obj->vel)*cte;
obj->pos += obj->vel*delta;

De forma que si falta mucho para llegar a esa velocidad, lo hará más rápido que si falta poco para llegar. Este sería el caso "overdamped response" de la figura. La constante es un factor que indica la velocidad con la cual llegará a la velocidad deseada o en otras palabras, indica la frecuencia de corte del filtro.

Pero la cosa no queda ahí, imaginemos una nave que va a cierta altura del suelo, pilla un obstáculo, se levanta y después cae lentamente y pega unos cuantos botes más antes de estabilizarse. En este caso podemos usar un filtro de orden 2 con la coordenada Z (la que indica la altura) de la nave. En musicdsp.org se pueden conseguir montones de filtros de orden 2, en este caso he tomado el siguiente:

float zfilter(float in)
{
static float buf0 = 0.0f;
static float buf1 = 0.0f;
const float fb = 2.0f;
const float f = 0.1f;
buf0 = buf0 + f * (in - buf0 + fb * (buf0 - buf1));
buf1 = buf1 + f * (buf0 - buf1);
return buf1;
}

basta con hacer:

obj->targetzpos = TerrainHeight(obj->pos) + 3.0; //va a una altura de 3 metros sobre el suelo
obj->pos.z = zfilter(obj->targetzpos);

Variando los parámetros del filtro se puede hacer que responda más rápido a las variaciones o que oscile más. Ojo porque para ciertos valores puede hacer que la salida sea inestable.


Conclusión, es posible usar los filtros para filtrar una entrada de salto, como es presionar una teclar o hacer que los movimientos de un objeto sean más suaves y solo aplicando unas ecuaciones muy simples.

7.12.2006

Premios desarrollador_ES

Hace dos días saltaba la noticia de que este año en la campus vamos a tener la entrega de premios a los mejores desarrolladores españoles de videojuegos.

Es una gran noticia para la gente que se dedica a esto, en particular para los que los que empiezan que tan cercanos me quedan. Muchas suerte a todos ellos y muchas gracias a la gente que se ha movido para que estos premios salgan adelante.

Decir que la noticia ha llegado:

- barrapunto (los comentarios positivos, como siempre)
- vidaextra
- ojgames (de primera mano)

7.10.2006

Sintetizador de música

Hace un tiempo dije que escribiria más a fondo sobre el sintetizador que programé hace tiempo y esta tarde he decidido escribir un artículo hablando un poco sobre como generar música en función de unos pocos datos incluyendo código fuente.

- El artículo: 4k synth



Espero que a alguien le resulte interesante.

7.07.2006

bodas frikis

Estaba mirando el foto de codepixel yme encuentro esto. Los testimonios son para recordar XD.

7.06.2006

Nos vamos a sanfermines

Como viene siendo habitual, me voy a sanfermines. Hay que estar tocado para meterse en aquella ciudad abarrotada de gente, pero tienen algo que enganchan.

Por otro lado, una imagencilla nueva:



Es la misma escena de siempre (envmap+fresnel+ao+difusse), pero esta vez con un poco de color. Esta semana he estado re-implementando un poco el minimotor para poder usar cubemaps de forma transparente.

7.02.2006

Dónde está la gente de Valladolid

Hace tiempo que me pregunto dónde está la gente de Valladolid y, bueno, de Castilla y León. Me explico, leo todos los días planet augcyl, leo las listas de ñuva, sigo algunos foros y blogs, etc y me resulta curioso que haya tan poca gente de Valladolid que se "mueva".

Y me explico de nuevo, no estoy diciendo que seamos más lerdos, ni más tontos, nada de eso, pero me gustaría saber dónde se mete la gente que hace cosas, que programa, que monta charlas y conferencias, etc.

De las personas que conozco, las que más se mueven son la gente de soleup montando talleres, charlas, distros e incluso empresas. También dentro del planet augcyl hay gente que hace (y dice) cosas interesantes, como por ejemplo Diego Calleja, David Grajal o Wonder (ya fuera del planet), pero no conozco nadie más (un respecto de los que me haya olvidado o no conozca) que se mueva en ese entorno.

Imagino que habrá gente de Valladolid (y CyL) que me lea, sobretodo por el planet augcyl, y me gustaría saber si hay gente que se mueva, que programe algo, que le interese y haga cosas. Ya no pregunto nisiquiera le interesa la programación gráfica (oh!)
o el 3D (arg!)

Estaría bien tener un banco de asociaciones/gente que haga cosas en valladolid/CyL.

6.29.2006

Más pruebas: envmap + fresnel + proctex

En estos días de relax no he tocado demasiado este mini-motor/mini-banco-de-pruebas, pero esta mañana que no tengo demasiado que hacer he incluído un shader de envmap con fresnel para ver qué tal quedaba. Si alguien no tiene claro qué es, no es difícil, el envmap se basa en usar la normal de la malla para buscar en una textura el texel adecuado. Lógicamente la normal se mapea a 2D para poder tener los UV de toda la vida. En cuanto a fresnel es, a grandes rasgos, la atenuación de la luz reflejada (o refractada) al incidir sobre un objeto. Se ve muy bien como afecta en este tutorial de blender (las imágenes de abajo). Aunque si eres teleco (JAJA), con tus conocimientos de transmisión de ondas EM por FO puedes entretenerte mirando una solución algo más formal. La aproximación que uso es una que encontré en este foro un poco retocada.

Envmap sin fresnel:



Envmap con fresnel:




La textura que hace las veces de entorno es una textura procedural que simula un piso de azulejos que he hecho con otros propósitos:

La primera aproximación:



Un poco de color:




Un poco de perlin de fondo para dar "realismo":



En la textura guardo el mapa de alturas en el canal alpha para luego hacer bumpmap o generar el normal map en un futuro.


El código que genera la textura es el siguiente:


GEN_BEGIN(Test6)
PIXEL()
{
float step = 1.666f;
float width = 0.2;
float mult = 10;
float xx = mult*float(s)/256.0;
float yy = mult*float(t)/256.0;
float n ;
float n3 = TilePerlinNoise2D(xx,yy,6,mult,1.1);
float n2;
float lim = 0.1;

n = mod(step,xx);

float width2 = 1.0-width + width/2.0;
n = smoothstep(1.0-width,width2,n) - smoothstep(width2,1.0f,n);

n2 = mod(step,yy);
n2 = smoothstep(1.0-width,width2,n2) - smoothstep(width2,1.0,n2);
float f = clamp(0,1,n+n2); //smoothstep(0.9,1,0.5*n+0.5*n2);
//n3 = 0;
float bump = f;
f = 0.7*f + 0.3*fabs(n3);//*(1-f);


int e = int((xx+width/2.0)/step) + int((yy+width/2.0)/step);
//e = 2;
switch(e%3)
{
case 0:
c = RGBA(98,174,115);break;
case 1:
c = RGBA(252,249,141);break;
case 2:
c = RGBA(255,255,255);break;
}

c = (1.0-f)*c;
c[3] = bump*255;



}

GEN_END(Test6)




y las macros que generan la clase que después será instanciada por el manager de texturas:

#define GEN_BEGIN(name) class Texture##name: public GenTexture { public: ~Texture##name(){if(DEBUG_TEX) this->Write(#name##".tga"); } Texture##name(int _x,int _y):GenTexture(_x,_y){ format = T_RGBA;


#define INIT() Setup(); } void Setup(){

#define PIXEL() /*Gen();*/} RGBA& PixelFunc(int s,int t) { static RGBA c; float x = -1.0 + 2.0*(float)s/(float)TextureData::x; float y = -1.0 + 2.0*(float)t/(float)TextureData::y; /*polares*/ Vector2f v(x,y); float r = vectorDist(v); float phi= atan2((float)y,(float)x);

#define GEN_END(name) return c;} Palete paleta;};

6.22.2006

Buscando trabajo... pero así no

Hace ya casi dos semanas que terminé la carrera y todavía estoy un poco descolocado, aunque no lo suficiente como para entrar al capote. El caso es que accenture me ha llamado en esta semana dos veces para ir a una prueba de selección a madrid.

No me parece mal que me llamen para hacer procesos de selección, es más, está bien que piensen en ti, te hace sentir mejor. Pero señores, así no. Para empezar yo no he enviado mi currículum a accenture, pero pasando el pequeño detalle, cuando me han llamado nisiquiera me han dicho para que era la prueba de selección. Han preguntado si era Javier Santana, he dicho que sí (jaja), y a continuación me ha dicho que el miércoles que viene tienen una prueba de selección, que estaban interesandos en que me pasara... ¿pero? ¿qué?.

Si tuvieran un poco de sentido común me hubieran dicho para qué era el proceso, dónde, cuando, cómo, por qué, de qué me conocen, para qué proyecto, qué es lo que les interesa de mi, sueldo, etc, etc.Creo que se deben dar cuenta de que no me están haciendo ningún favor invitándome a ir a un proceso de selección. Imagino que estarán acostumbrados al típico chaval que ha terminado sus estudios, deseando encontrar un trabajo, pero esa NO es la forma de hacer las cosas.

Podría preguntar yo pero es que yo no soy el que está buscando a accenture, son ellos los que me buscan a mi y por tanto tienen que su empresa me resulte atractiva, encima para ir a un proceso de selección... jajaja, sí, para entrar en la élite. SOY YO EL QUE ELIJO EMPRESA SEÑORES, Y LO HAGO PORQUE PUEDO. Queda claro ¿no?. Suena prepotente y tal vez lo sea, pero hay puestos de trabajo para dar y tomar y además, hay que tener en cuenta que, además te haber estado 7 años de mi vida buscando la mejor forma de hacer las cosas, he estado otro par de ellos intentando aplicar lo que he encontrado a la vida real, cosa que no pueden decir muchas personas de mi edad.

Voy a seguir dándoles largas hasta que me dejen de llamar o me pregunten qué pasa. De momento les he dicho que estoy de vacaciones hasta el 15 de julio.

6.21.2006

No renuevan licencias de emisión a la COPE en cataluña

Aparte del revuelo político que seguro provoca la noticia (ojo, fuente 20 minutos), creo que no se han parado a investigar un poco como funcioan esto.

Cuántas cadenas de radio tienen atribuídas las frecuencias que usan? radio nacional y cuántas más? Por le general ocupas una frecuencia, si no te dan el toque, te quedas en ella, si te lo dan, esperas a que te den un ultimatum y la cambias a otra. Por eso puede que alguna vez hayais escuchado onda cero a las 23 y a las 8 de la mañana punto radio (caso posiblemente ficticio). Además que luego es un choteo de mucho cuidado porque aunque una frecuencia se le haya asignado a una entidad, luego la usan otras, etc. Basta con echar un vistazo las atribuciones de frecuencia en castilla y león para la FM. Por ejemplo, punta radio aranda de duero emite en 93.8FM, pero, umh, no veo la asignación de frecuencia en ninguna parte... o buscad la asignación de radio maría en valladolid (100.8) o mortal FM (90.2).

En este país las cosas funcionan así.

"Periodismo" al poder

Leo a través de meneame en el país que un error tipográfico hace que una integral de un exámen de selectividad se haga difícil de resolver para el nivel pedido. Lees el artículo y te preguntas al final... ¿y la integral? Como se puede hablar todo un artículo de una cosa sin decir qué es esa cosa? cómo se puede ser tan malo? Le he enviado a la """periodista""" una nota para decirla que haga el favor.

Las razones de no haber puesto la integral seguramente sean varias... no ha preguntado la integral (porque no tiene ni idea de qué es), no ha puesto la integral porque su jefe le ha dicho que eso hará que la gente no lea su artículo o es posible que no sepa escribir una integral en su editor, jaja.

Otras lecturas: malaprensa

Los videojuegos españoles vistos por españoles

En el blog de Nae leo un interesante análisis de porque tenemos esa visión de los juegos/desarrolladores españoles. No olvides leer los comentarios que también tienen jugo.

Recordar que Nae es diseñador en Digital Legends, esribe en ojgames, anaitgames y además es un tío que sabe muchísimo de videojuegos, sobretodo a nivel nacional. En persona es una espectáculo.

En los comentarios he leído que exelweiss tiene un blog lo cual ha sido unra grata sorpresa.

6.19.2006

Estudio de sexismo en videojuegos

A través de meneame leo el siguiente post acerca de un estudio publicado por el instituto de la mujer sobre el sexismo en videojuegos.

Las joyitas que se pueden leer son muchas y muy buenas, empezando por las que pone Flush en su bitácora (la de los lemmings, pag. 434 es para llorar) y terminando por la que comentan en el AOEII en la que el investigador o investigadora (JAJAJA!), yo me decanto por investigadora, argumenta que es sexista debido a que para generar más ejércitos no se hace referencia al amor y al cuidado de los hijos:

"""
Aunque hay que hacer construcciones, recoger alimentos, cultivar, comerciar...,
no hay ninguna referencia a amarse, reproducirse, cuidar de los hijos e hijas,
educarlos..., como medio de conseguir una civilización.
"""
Ya me imagino llevando a las madres a cuidar a los hijos mientras se quedan huerfanos . No se han dado cuenta de que es un videojuego?

Increible. Solo espero que este libro no se haya pagado con fondos públicos y que esos investigadores e investigadoras no vuelvan a investigar, por favor.

6.17.2006

Tomb raider

Veo en vidaextra a través, como no(*), de youtube, un video de la versión, parece, del mítico y fantástico tomb raider, sí, el original, aquel que el render era por software, que las tetas de lara eran 4 triángulos, el que tenía una música y unos efectos de sonido, que a pesar de ser pocos, te envolvían en aquella atmósfera tan especial que no he vuelto a ver en ningún juego (solo resident evil se acercó).

Para mi tomb raider es el mejor juego de la historia, es todo lo que podía esperar de un videojuego, es el videojuego que yo hubiera creado. Teniendo en cuenta que siempre me gustaron las películas de indiana jones era de esperar. En mi habitación aún tengo posters de Tomb Raider, uno junto a la vista de la ciudad de final fantasy 7 y otro pegando al de sega rally.

Pero la cosa no queda ahí, mi pc se llama qualopec, mi pocketpc qualopy, mi mail es qualopec en gmail.com, el fondo de pantalla de mi PC de sobremesa tengo a lara tirándose de cabeza a la primera piscina de la segunda pantalla (donde aparece el oso), también tengo la versión para pocketpc, escucho la música de vez en cuando (una joya), tengo todos los game40 en los que hablaban de tomb raider, snif.

Una lástima que se deteriorara tanto con el paso del tiempo. Me ha alegrado ver algunas pantallas de aquel mítico tomb raider. ains... :)

EDIT: *Parte* de la música se puede descargar de croftinc y no solo la de TR1.


(*) los blogs se están conviertiendo en el marca, poco texto, muy sensacionalista y bien mascadito, además de muchas imágenes y videos.

6.16.2006

Pruebas con AO

En estos días de relax he decidido ponerme a hacer un pequeño motor que use shaders y procedural (no hay entrada en la wikipedia española, lo mismo la creo), como viene siendo habitual.

No había trabajado todavía con GLSL, el lenguaje de OpenGL para shaders, y me ha sorprendido la facilidad y la potencia para hacer todo tipo de cosas, las que antes se hacían sin shaders y las que ahora son posibles gracias a los shaders.

En un par de días, miré la referencia de GLSL (pdf) que por cierto tiene agradecimientos a un español, y programé un sistema muy simple que me permite trabajar con shaders.

Lo primero que programé es la generación de mallas; además de la subdivisión y smootheado de las mismas, he creado un sistema de extrusión y generación por revolución. Creo que además añadiré algo que permita hacer un dupliverts a lo largo de un spline y que el sistema de extrusión permita hacerlo también usando un spline.
Con una textura basada en perlin, un cuerpo de revolución y un cubo he creado la escena de la derecha. EL cubo tiene un toon shader muy simple y el cuerpo de revolución iluminación direccional por pixel. El suelo usa el render habitual de OpenGL (el shader program 0 :).




Subdividiendo mucho las mallas y usando un shader adecuado se pueden conseguir imágenes como la de la derecha. Es interesante ver como puedes ajustar la iluminación como te de la gana, por ejemplo en la imagen quito la componente especular (no me gusta la luz especular!) y la atenuación que meto en función de la distancia la varío como quiero :).




Ya que estaba me he puesto a jugar un poco con una aproximación de Ambient oclussion, pero las cosas a la primera nunca funcionan bien:



Otras pruebecillas, algo mejor:



Subdividiendo algo más el suelo (la componente de AO se calcula por vértice):




Ahora estoy probando la generación de unos arbolitos con unos perlin... :)

Gracias a iq por la información de su web acerca de su demosystem.

6.10.2006

Y ahora ¿qué?

Esa es la pregunta que seguro que se hacen muchas de las personas que, después de obtener el título, se hacen cuando llegan a casa y tienen un momento para pensar en todo.

Ayer hice la presentación del PFC y en este caso para mi no fue el trámite que hay que pasar para obtener el títutlo, fue una presentación de mi trabajo. Creo que la presentaión fue amena y asequible, duró unos 40 minutos y después de la presentación los comentarios del tribunal fueron alentadores, con tribunales así da gusto.

Como curiosidades decir que no me puse nervioso en ningún momento (se van notando las tablas) y que mi abuela le quitó el diábolo a uno de esos piritis que tienen, además de diábolos, combas, pelotas y esas cosas, y comenzó a lanzarlo al aire mientras el rastas lo flipaba XD.

Al final, una matrícula :)