Archive for Agosto 10th, 2009

Aviso para los fans de la Coca-Cola

// Agosto 10th, 2009 // 2 Comments » // salud

coca-cola

Para los que se dejan seducir por su “sabor” y sus atractivos comerciales…

Quienes beben refresco de cola en exceso (¡atención consumidores mexicanos!) se encuentran en grave riesgo de reducir sus niveles de potasio en la sangre –padecimiento que se conoce como hipopotasemia– y sufrir problemas musculares severos.

Vamos, ¿qué le ven de malo a consumir agua de frutas? ¡Nada! y por el contrario le haces un bien a tu organismo.

Se de un par de personas y familias súper asiduas a beber este líquido endulzado pintado de negro, pero es tan “tradicional” consumirlo a la hora de la comida en sus hogares, que creo me colgarían si hablo mal de la Coca.

Bueno, ahora conozco una razón más para no hacerlo.

Si quieren leer la nota completa vayan al sitio de la Profeco: Mucha cola, poco músculo

Artículos relacionados:

Un año caminando a través de China

// Agosto 10th, 2009 // No Comments » // andanzas, recomendaciones, videos

Ahh como quiero hacer algo como esto…

The Longest Way 1.0 – one year walk/beard grow time lapse from Christoph Rehage on Vimeo.

Artículos relacionados:

La pared nunca caerá — Stick figure pwnage!

// Agosto 10th, 2009 // No Comments » // ocio, videos

Artículos relacionados:

Ruby steering behaviors

// Agosto 10th, 2009 // 2 Comments » // game development

steering_b1

O, como dirían en español:
Comportamientos de dirección en Ruby.

Estos sirven para crear agentes autónomos que navegan un ambiente. Un agente armado con estos comportamientos puede ir tras otro, huir de él, esconderse, ser parte de una formación, etc.

Unos de los más interesantes de observar son los comportamientos en manada (flocking behaviors), pero sobre eso ya vendrá otro artículo. :)

En este fin de semana programé estos cuatro:

  • Seek (búsqueda)
  • Flee (huir)
  • Arrive (llegar)
  • Pursuit (persecusión)

Espero poder incluir los demás pronto, aunque creo que refactorizaré un poco antes de implementar más cosas.

Estoy planeando usarlos en mi siguiente juego, que como les había comentado es un clon del Missile Commander (ese donde tenías que derribar los misiles enemigos con los propios antes de que tocaran el suelo y destruyeran tu base).

El código

No está comentado por el momento y seguramente se puede mejorar en muchas partes, ya lo iré limpiando y ajustando en las próximas semanas.

Entre las cosas que contiene hay una clase llamada Viewport que creé para poder jugar con mis agentes en un espacio más grande sin que el tamaño de la pantalla fuera una limitante. Velo como un sandbox que puedes configurar con un tamaño arbitrario.

Por ejemplo, puedes tener un espacio virtual de 4000×3000 pixeles dentro de un viewport que mide 800×600 pixeles (reales) dentro de tu pantalla configurada a 1024×768.

Además se comporta como un toroide, es decir, los agentes pasan de un lado al otro, no pueden salirse de él.

Esto lo implementé porque estoy pensando mostrar cada comportamiento en un viewport diferente, pero todos en la misma pantalla.
Creo que también se podría usar para implementar un mini mapa, ¿no?

El demo

Hay tres agentes de diferentes colores en el demo.

Usa tu ratón. Al dar clic en algún lugar de la pantalla se pondrá una marca verde y sucederán 3 cosas:

  • El agente verde huirá de ella.
  • El agente blanco llegará a ella.
  • El agente rojo perseguirá al blanco, prediciendo su posición futura, ésta se muestra como una marca blanca enfrente del agente blanco.

Presiona D para ocultar el texto informativo.
Presiona Esc para salir del demo.

Pueden bajar la aplicación demo de GitHub: ruby_steering_behaviors

Estoy usando como referencia el excelente libro: Programming AI by Example.

Implementación en C++

Para los que anden buscando una implementación en C++ existe OpenSteer.

OpenSteer is a C++ library to help build steering behaviors for autonomous characters in games and animation. OpenSteer provides an app which displays predefined demos of steering behaviors. You can prototype, visualize and debug your own as a plug-in.
License: MIT License

Artículos relacionados:

FireStats icon Con la potencia de FireStats