martes, 31 de marzo de 2009

PRE-ALPHA 3: donwload! - Black Edition


Ya tenemos lista la versión preALPHA 3 para descargar y empezar a hacer pruebas y testeos. Ha costado más de lo que me imaginaba y las matemáticas no se han puesto de mi parte. He podido comprobar que hay cosas mejorables en la "inteligencia" del Blable a la hora de ir a por la comida y he tomado nota de cómo mejorar. La versión final tendrá muchas mejoras pero lo importante es que he conseguido moverlo y hacer que "vea" y decida.

ALPHA3- Comprueba movimientos sin salirse de la cuadrícula
- El Blable come!
- Nivel de Visión 0 (ciego)
- Nivel de Visión 1
- Nivel de Visión 2
- descarga aquí

Me he dado el gusto y el placer de hacer un diseño especial y aplicar las ideas que me ha dado Lourdes (gracias) Espero que te guste la Black Edition.

What's next? Con el éxito del movimiento y la visión, el siguiente reto pueden ser varios; más de un Blable a la vez compitiendo por la comida, incluir iTERs, reproducción y cría de los bebés blables... Creo que el siguiente paso natural será incluir más Blables que compitan y ver así cómo diferentes niveles de visión pueden ser más efectivos.

Mientras tanto, disfruta de la Alpha 3 Black Edition, una edición de lujo para coleccionistas de Blables jeje

Blables, iTERS y demás amiguitos

¡Ay, qué dolor! rezaba la canción aquella de los Inhumanos allá por los ochenta. Ayer no fui capaz de acabar con el Nivel 2 de Visión porque la complejidad crecía a medida que avanzaba. A todo ello se juntó el cansancio de no haber dormido mucho el día anterior y que había vivido una maravillosa jornada laboral. Además, aquí ha hecho frío, un poco de viento, lluvia... claro, llegas a casa, te tomas un caldo que te dejó preparado tu madre y a los 45 minutos estás pensando que mejor apagas el pc y te vas a dormir. Hoy creo que podré acabarlo.

Una vez relatadas las desventuras de un programador aficionado, quiero presentar a los nuevos amigos de mis queridos Blables. Con ellos, se abre un mundo nuevo de posibilidades, por ejemplo, la creación de un super-depredador (o SiTER) que campe a sus anchas por Lirondo sin que nada ni nadie lo detenga y de apetito voraz. Bueno, no me alargo más y os presento a la familia Blable:

BLABLE
de origen desconocido, se dice que nació debajo de una col aunque otros lo niegan. De color azul pastel y rosa. De tacto blando y suave, vegetariano y con agresividad escasa.

iTER
La estrella de la cadena alimentícia, un depredador en toda regla, de costumbres carnívoras y poco amigo de los Blables.


SiTER
El Super iTER, máximo exponente de los depredadores carnívoros. De movimientos rápidos y ágiles, cuenta con visión total de Lirondo.



NIG-AIR
Personaje afrolirondiano caracterizado por su densa y frondosa cabellera. Sin objetivos aparentes, se le conoce como amigo de los Blables e incomestible para los iTERs



TiNTeNFiS
Suele recorrer Mondo Lirondo en busca de árboles donde esconderse. De vez en cuando atrapa algún iTER y lo devora. No suele hacer caso de los Blables; según comenta, algo que sólo come verde no puede estar sabroso.







¿Qué os parece? Tal vez Blables se acabe convirtiendo en un juego para niños en vez de un estudio serio y sesudo sobre biología y evolución genética informatizada. Tal vez deba dejar que Blables acabe siendo lo que "él" quiera ser o, mejor todavía, que sea ambas cosas: un entorno divertido y a la vez complejo, tal vez como un acuario, un espacio bonito, con plantitas, peces de colores, burbujitas, pero no deja de ser un ecosistema con toda su complejidad biológica.

sábado, 28 de marzo de 2009

Contando los Eones


Navegar, surfear o incluso googlear son algunas de las formas que usamos para definir lo que he hecho yo esta mañana lluviosa de sábado. En un de golpe de suerte he acabado en una web que parecía mal escrita, como si estuviese traducida por una máquina desde el inglés, con frases un tanto raras pero su contenido se entendía bien. No daré más publicidad a esa web pero sí diré que tenía un contenido realmente interesante sobre la IA (inteligencia artificial) y los logros computacionales en esta materia. Una extensa descripción sobre el genio Conway y su Game of Life, análisis sobre diversos estudios sobre programas de simulación celular y un increíble párrafo sobre un proyecto japonés con una máquina de 5.120 procesadores llamado Earth Simulator.

Muy interesante y hasta recomendable si no fuese porque está escrito por un creyente cristino de orígen sudamericano que finaliza su artículo sobre la simulación con una serie de puntos a modo de conclusión. El tercer punto dice así:

"3.- Se intenta imitar la naturaleza, metiéndola en un ordenador, para ver que sucede. Tal vez mostrando una falta de responsabilidad social."


Me gustaría citar a Isaac Asimov en su libro Contando los Eones:

"Yo no creo en la ciencia Babilónica. Han pasado dos mil quinientos años y hemos aprendido un poco desde los tiempos de los babilonios..., aunque los creacionistas no puedan decir lo mismo.
Si los creacionistas pudiesen hacer su voluntad, este libro y otros serían quemados, y todos nos veríamos constreñidos dentro de los estrechos, estrechísimos límites de su mezquina e irreflexiva concepción del Universo.
Bueno, yo, al menos, me niego a amilanarme ante ellos, me niego a adularles, me niego a transigir, y sólo pretendo combatirles, con el fin de defender mi simple derecho a pensar."


Y dicho esto por el magistral Issac, dejo una entrevista a John Conway hablando de su Game of Life añandiendo que tengo casi lista la pre-Alpha con Nivel de Visión 2 :)
Que lo disfrutes!


Entrevista a John Conway - Parte 1





Entrevista a John Conway - Parte 2

miércoles, 25 de marzo de 2009

Dios no tiene botón de reinicio

Algunos definen el principio de todo hace 13 mil millones de años con una magnífica explosión, otros tal vez no hace tanto con un soplo divino, costillas, serpientes y manzanas, y otros simplemente no se han preguntado nunca por los orígenes. Sea cual sea la opción de cada uno, hay una cosa común para todos y es que no hay vuelta atrás (undo) ni tampoco botón de reinicio.

La vida siempre sigue hacia adelante y si una especie se topa con un cambio climático de sopetón y no tiene la capacidad de adaptarse... pues nada, desaparece y santas pascuas. Otro debate sería si, esa misma especie, sufre un sobrecalientamento global (pongamos 10 grados, para ir sobradetes) y realmente sí tiene la capacidad de perder el pelo, de aumentar sus partes acras para disipar mejor el calor, no sé, le crecen las orejas como al elefante africano y las usa a modo de ventilación, y... mmmm, por ser imaginativos, sus pies se hacen más pequeños para tener el mínimo contacto con el caliente suelo. Pues bien, con esta capacidad de adaptación, ¿no estaríamos hablando de que la especie original ha desaparecido? En realidad han sabido adaptarse pero tal vez a costa de ser "otra cosa".

Todo esto es para explicar que lo justo sería que en Mondo Lidondo no existiese el botón de reset, que la partida continuase indefinidamente. Al apagar el ordenador, todos los progresos de los Blables iría al traste sin posibilidad de recuperar ese estado anterior. Para ello, acabo de diseñar lo que voy a llamar GODRESET y no es más que una funcionalidad que guarda a disco el estado actual de Lirondo para que pueda ser recuperado en cualquier momento sin tener que empezar de nuevo.



Otra aplicación es recuperar la partida en caso de cuelgues inesperados de Windows. A mí nunca se me ha pasado pero he oído por ahí que se ha dado algún caso.

¿Difícil? En realidad no. Para los más técnicos se trata de un snapshoot del estado actual. Fijándome en el proceso, el uso de memoria ráramente necesita de más de 2Mb por lo que intuyo que la versión final puede rondar los 600Mb más o menos. Será fácil recoger toda la información y guardarla en un ficherito.




En cualquier caso, Dios nunca usó el reset, ¿verdad? No, espera, ¿y el diluvio universal? Más que universal tendría que llamarse terrenal pero eso ya es otra historia.

martes, 24 de marzo de 2009

PRE-ALPHA 2: donwload!

¡Ya tenemos aquí la versión pre-Alpha 2 de Blables! Ahora dispone de Visión de Nivel 0 y es realmente emocionante ver cómo toma la decisión de comer según lo que ve a su alrededor.

El Blable está dotado de un sistema de reconocimiento que, dependiendo de las casillas inmediatamente contiguas (Nivel de Visión 1), condiciona su movimiento para ir a por la comida.

ALPHA2
- Comprueba movimientos sin salirse de la cuadrícula
- El Blable come!
- Nivel de Visión 0 (ciego)
- Nivel de Visión 1
- descarga aquí


Sin intervenir manualmente, con comida automática y Nivel de Visión 1, el máximo nivel de efectividad que he conseguido es del 24,92%

Por cierto, he hecho caso de la única sugerencia que he recibido: la mía! y ahora es un blable chica jeje Es un poco "feo" pero hay que recordar que son las primeras versiones, con un Lirondo reducido y con unos gráficos... ejem, mejor juzgas tú mismo. Por cierto, necesito sugerencias!

lunes, 23 de marzo de 2009

La Clave de la Vida

Sí, este es otro título llamativo para llamar la atención pero creo haber visto la luz hoy al despertar. ¿Por qué todas las buenas ideas me vienen a la cabeza cuando despierto? Este punto debería ser motivo de estudio; yo me inclino a pensar que, aunque el cuerpo descansa, el cerebro sigue trabajando en sus cositas y haya soluciones a problemas que, de forma consciente, no somos capaces de relacionar.

Este fin de semana hemos disfrutado (espero que alguien más que yo, snif!) de la primera PRE-ALPHA donde testear el movimiento del Blable por su Lirondo particular. Únicamente estaba disponible la opción de Nivel de Visión 0 (ciego) ya que no he tenido tiempo de ir más allá aunque, para gloria propia, debo decir que conseguí que el Blable "viese" aunque no llegué a publicarlo.

Precisamente en ese momento, en el de programar la vista, caí en la cuenta que había cometido un error de diseño (horror, pánico, tres veces miedo) y que debía re-construir el sistema de cero (y de ahí que no haya "visión" todavía) En realidad no supe en ese momento cual era mi error pero SABÍA que había un error. No ha sido hasta esta mañana al despertar que he tenido la sensación de haber dado con la clave de la vida como lo llamo yo. No, no pienses que en dos frases voy a explicar algo tan trancendental como eso pero espero que después de mi explicación, te quede la misma sensación que a mí.


El error de diseño es que el Blable no ve, no mira, sino que todo es un conjunto, todo está relacionado. No sé cómo explicarlo pero no se trata de un Blable que está en una casilla y "reconoce" lo que tiene a su alrededor; informáticamente hablando es la casilla la que tiene un Blable y son las de su perímetro las que le dan la información sobre el entorno la solicite o no. La vista, en Mondo Lirondo, no es una capacidad que aumente del Nivel 0 al Nivel 3; la vista ya existe, yo sólo debo "limitarla" a los niveles que deseo. Es difícil de explicar pero por un momento he visto algo claro, yo no soy yo, soy todo lo que me rodea y de alguna manera estamos todos relacionados con todo.

Prometo que nunca he tomado drogas y que nunca lo volveré a hacer :)

viernes, 20 de marzo de 2009

PRE-ALPHA 1: donwload!

¡Llegó el día de hacer los primeros testeos!
Acabo de colgar la primera serie de versiones pre-ALPHA con las que probar las teorías que he ido desarrollando (sí, vaaaale, con ayuda de "alguien" jeje)

ALPHA1
- Comprueba movimientos sin salirse de la cuadrícula
- El Blable come!
- Sólo Nivel de Visión 0 (ciego)
- descarga aquí

Nota: Yo no he conseguido que un Blable ciego tenga un ratio de efectividad mayor de 0.18 sin ayuda.

Espero vuestras sugerencias e ideas! La primera la pongo yo, ¿por qué no una Blable chica? ;)

miércoles, 18 de marzo de 2009

PRE-ALPHA - Testeos de Lirondo

En empresas que desarrollan software (VMware, IBM, Symantec o incluso Microsoft) se pasa por diferentes fases hasta llegar a la versión definitiva que podemos encontrar en las estanterías de las tiendas. Cada versión importante de un producto pasa generalmente a través de una etapa en la que se agregan las nuevas características (etapa alfa), después una etapa donde se eliminan errores activamente (etapa beta), y finalmente una etapa en donde se han quitado todos los bugs importantes (etapa estable). Las etapas intermedias pueden también ser reconocidas. Las etapas se pueden anunciar y regular formalmente por los desarrolladores del producto, pero los términos se utilizan a veces de manera informal para describir el estado de un producto. Normalmente muchas compañías usan nombres en clave para las versiones antes del lanzamiento de un producto, aunque el producto y las características reales son raramente secretas.

Los Blables - Proyecto Evolutivo empieza su andadura con una serie de versiones Alpha diseñadas al testeo de las funcionalidades. Son muchas las ideas, criterios y leyes que van a regular el ecosistema de Lirondo por lo que he considerado necesario lanzar una serie de testeos para confirmar que todo va por el camino correcto.

Dicho esto, me complace anunciar que en breve estará disponible la primera de estas versiones Pre-Alpha para descargar directamente desde aquí! :)

martes, 17 de marzo de 2009

La Paradoja Generacional

Detrás de esta título tan enigmático y sugerente se haya la única intención de que empieces a leer, a ver si consigo que sigas hasta el final. Debo admitir que no existe tal paradoja, ni rasgadura en el continuo espacio-tiempo ni nada por el estilo; te estaba dando iTER por Blable jejeje.

Para poder comparar datos y procesos evolutivos he diseñado un sistema generacional con el que llevar la cuenta de las generaciones de Blables que están sobreviviendo. El sistema es sencillo, si un Blable de primera generación tiene descendencia con un Blable de primera generación, su hijito será un Blable de segunda generación. Fácil!

El problema viene cuando, al cabo de un tiempo, convivan dentro de Lirondo más de una generación de Blables lo cual es, dicho de paso, lo más normal del mundo. Nos podemos encontrar con que un Bable de primera generación tenga descendencia con un Blable de 3ª generación por poner un ejemplo. Si esto es así, ¿qué generación sería el hijito resultante? ¿Sería de 2ª generación al ser el padre de 1ª? ¿Sería de 4ª por ser hijo de un Blable de 3ª? Fíjate en el ejemplo de la imagen; dos Blables de 1ª generación tienen un descendiente que, a su vez, se aparea con su madre. El resultado deberá ser una generación más que la generación del individuo más joven.

Y ahora una paradoja de las de verdad; ¿cuántas generaciones dirías que ha habido desde el origen del Homo Sapiens hasta ahora? Teniendo en cuenta que eso ocurrió hace un momporrón de años, seguro que el primer pensamiento es decir ¡¡muchísimas!! ¿Qué dirías si te digo que ha habido 100 generaciones? Piensa, piensa jeje



(descarga de ficheros en pruebas: click aquí)

iTERs - Técnicas de Caza y Comunicación

He recibido dos sugerencias desde el Centro de Regulación Genómica de Barcelona (www.crg.es) que me ha llamado la atención. La primera idea que me ofrecen es la del lenguaje o comunicación entre Blables que den la señal de alarma en caso de avistar un depredador. En la imagen podemos ver cómo funcionaría esa comunicación. El Blable A detecta un depredador al contar con nivel 2 de visión y su instinto le hará huir. Los Blables B, C y D captarán esa señal de alarma y huirán también aunque no hayan visto al depredador.

Esta idea de avisos o comunicación ya había rondado mi cabeza aunque no la habia desarrollado. Gracias a los consejos e información que me ofrecen creo la que cosa empieza a estar definida.

¿Cómo funciona realmente?


El Blable A no avisa realmente a los Blables que tiene su alrededor (dentro de su campo de visión) sino que son los que lo pueden ver (Blable B,C y D) los que advierten que ese Blable A está en alerta y escapando de algo. Al igual que un grupo de pelícanos, si asustamos a uno de ellos, el resto sale volando por la simple razón de ver a uno que escapa aunque no sepan exactamente de qué.

Esto lleva a la conclusión que los Bables deben tener dentro de sus variables internas un campo que incluyese el valor booleano HUIDA. En el caso de estar en valor = 0 el Blable estaría en reposo, haciendo "vida normal". En el caso de estar en valor = 1 se encontraría en huida e informando a todos los que lo pudieran ver que existe un peligro cerca.

Llevando más allá la idea, ¿deberían comunicarse también los iTERs? Si fuesen capaces de trabajar en grupo serían más efectivos. Sin duda sería una buena idea si supiera como crear la red neuronal adecuada para que así fuera. La primera idea que se me ocurre es dotar del mismo campo que tendrían los Blables pero con la finalidad de informar que existe alimento cerca. El resto de iTERs sabrían de la existencia de caza e ir a por ella aun en el caso de no tenerla dentro de su campo de visión.


La segunda idea que me ofrecen surge de la siguiente pregunta: ¿qué ocurriría si un Blable estuviese cerca de un árbol? La sugerencia es que el individuo debería perder capacidad de visión al tener un elemento que la bloquea. Por el contrario, un iTER, debería encontrar en los árboles una forma de ocultarse y optimizar así sus técnicas de caza.

Ambas ideas me parecen estupendas y mejorarán la AI de las especies. Ya veremos si un pentium 4 de cuatro nucleos será suficiente para realizar todos los cálculos! Gracias por la aportaciones.

lunes, 16 de marzo de 2009

Especies - Las Plantas

La tercera especie del Mondo Lirondo y la única que carece de movimiento pero no por ello la menos importante. Esta especie es la encargada de aportar energía al sistema siendo el alimento de los Blables y toda la biología del sistema depende del ciclo de esta especie. En época de lluvias su crecimiento aumenta ofreciendo alimento a los Blables que ven aumentar sus posibilidades de supervivencia que a su vez, ofrecen más alimento a sus depredadores los iTERs. Cuando llega la sequía y el número de plantas disminuye, el alimento escasea y los Blables que hayan acumulado menos energía o que hayan encontrado menos alimento se verán menos preparados para afrontar esta época, y más teniendo en cuenta que la población de iTERs habrá aumentado gracias a la abundancia pasada.

Existen dos tipos de plantas:

1.- Plantas alimenticias, de crecimiento rápido y gran aporte energético.

- Aporte energético: 50 unidades
- Esperanza de vida: 5 años
- Reproducción: inexistente, generación espontánea.
- Posición: fija, sin movimiento y permite el paso del resto de especies.

2.- Árboles, de crecimiento lento, larga vida e incomestible.

- Aporte energético: nulo, incomestible
- Esperanza de vida: 100 años
- Reproducción: inexistente, generación espontánea
- Posición: fija, sin movimiento y no permite el paso del resto de especies.




Una curiosidad que he encontrado por ahí. Me ha llamado la atención por lo original de utilizar peces con el objetivo de hacerlos más efectivos a la hora de encontrar alimento.

viernes, 6 de marzo de 2009

Reproducción Sexual del Blable


¡Qué feliz acontecimiento la unión de dos Blables para reproducirse!


Debo reconocer que, bromas aparte, tengo cierto interés y expectación por ver cómo esos dos "bichejos" engendran un descendiente que herede a partes iguales su material genético. Reconozco también, que nunca en mis pruebas anteriores desde el 2006, había llegado al punto de la reproducción y esto en parte, había sido por los problemas que surgen al plantear este feliz acontecimiento.





Reproducción por contacto: Nada nuevo, ¿verdad? Al igual que los humanos (por norma general) nacemos del contacto físico entre dos individuos de sexo opuesto. En el caso de los Blables funciona igual pero sin cortejos ni demás parafernalias; si dos Blables buscan el contacto, se creará automáticamente un Blablecito hijo.


Noviazgus Interruptus: Según las normas que mueven a los Blables, dos individuos que estén dentro del campo de visión y con energía suficiente para reproducirse, lo estarían haciendo indefinidamente. Incluso, aun teniendo en cuenta que la energía no fuese suficiente como plantearse la reproducción, un carácter gregario haría que la pareja siguiese junta y “se persiguiera” sin propósito alguno. Para evitar que la pareja quedase “enganchada”, tanto hembra como macho incorporarán a su catálogo de características el campo DISPONIBLE en formato booleano (SI/NO) Una vez el macho se reproduce, cambia su valor a NO hasta pasado un tiempo. En el caso de la hembra este plazo de no-disponibilidad será más largo como explicaré más adeltante.


El bebé: el hijo resultante de la pareja “aparece” en una casilla contigua a la Blable mamá y continuará a su lado durante cierto tiempo (sí parece esto muy familia perfecta según los cánones más clásicos, ¿verdad? Bueno, se trata de simular un comportamiento típico de mamíferos simplemente) El simple hecho de aparecer a su lado podría propiciar una nueva reproducción entre la mamá y el bebé. Para evitar esto, el campo DISPONIBLE del bebé estará en NO hasta pasados los 7 años (y de paso evitar que el padre también procree con la cría inmediatamente) La mamá estará en DISPONIBLE = NO durante 8 años para que:


1. Su hijo pueda separarse de ella lo suficiente como para que haga vida independiente y la genética se mezcle adecuadamente.

2. No esté disponible de nuevo hasta estar seguros que ha criado completamente a su descendencia.




Alimentación: El pequeño Blable seguirá al lado de la mamá hasta cumplido este plazo de 7 años en los que la acompañará a donde quiera que vaya. La madre será la que tome las decisiones del movimiento y el blablecito únicamente la seguirá, por lo tanto, será la madre la única que consiga alimentarse. Para evitar que el hijo muera de hambre, de todo lo que coma la madre, el 40% de la energía irá directamente al bebé simulando la lactancia de los mamíferos. Una vez pasado el tiempo de lactancia, el blablecito dejará de tener esa “dependencia” de su mamá para pasar a comportarse como un Blable adulto.



1