viernes, 11 de enero de 2008

OGRE (II): ¿Por qué OGRE?

OGRE (Object Oriented Graphics Engine) es un motor de gráficos en tres dimensiones multiplataforma. ¿Qué ventajas tiene que sea multiplataforma? Pues que no hay problema para quienes quieran crear aplicaciones para Windows, Linux o Mac. Esto es posible gracias a que está construido de forma que no se compromete con una API en particular, puesto que el motor soporta tanto el uso de DX9 como de OpenGL. Además, la principal ventaja de OGRE sobre otros engines 3D es que es un proyecto open source bajo licencia LGPL. Esto significa que su uso es gratuito y apenas existen exigencias para su uso.

Desde el principio, OGRE fue diseñado bajo la filosofía de orientación a objetos, por lo que su interfaz es clara, intuitiva y fácil de usar. Esto significa que con OGRE podemos hacer juegos o cualquier tipo de aplicación que requieran gráficos tridimensionales que tengan poco que envidiar a los realizados por la mayoría de los motores del mercado.

Continuar leyendo...

Algo que hay que recordar es que OGRE no es un motor diseñado sólo con los juegos en mente, es un motor de gráficos 3D general. Por este motivo, éste no trae soporte nativo para sonido ni física. Esto no supone un problema, ya que, gracias a la enorme comunidad existente en internet, existen módulos especialmente diseñados que le permiten añadir estas funcionalidades.

¿Cuándo y por qué se inició el proyecto? OGRE se inició a principios de 2001 como un spin-off de un proyecto personal de Steve Streeting en el que estaba trabajando. Se trataba de un wrapper que envolvía a Direct3D (versión 5 o 6) de manera que su código fuente no se viera afectado por la fealdad de aquella versión de D3D.

Existen varios principios fundamentales por los cuales se inició el proyecto y que aún hoy son válidos. En primer lugar, y, por encima de todo, fue el deseo de hacer un renderizado en tiempo real que fuera potente e intuitivo. En aquel momento había una gran cantidad de motores que fueron diseñados completamente en torno a una característica técnica, un tipo de formato o de juego concreto. Así, que sintieron la necesidad de crear algo distinto.

Se buscaba una lista de funcionalidades básicas que pudiera soportar plugins para especializarse, es decir, simplemente unos patrones de uso para el manejo de unas estructuras y planteamientos concretos. Además, se buscaba que las prestaciones fueran en tiempo real con unas opciones de guía básicas. Desde entonces, no se ha tratado de asumir ninguna otra función con el fin de asegurarse llegar a una audiencia lo más amplia posible.

Una razón por la que OGRE no está enfocado exclusivamente al mundo de los videojuegos es que no todo el que necesita un motor 3D quiere hacer juegos. Se puede utilizar OGRE también para hacer aplicaciones de simulación, corporativas o de investigación. En segundo lugar, es que, incluso dentro de la industria de los juegos, los requisitos pueden variar ampliamente. Por ejemplo, un MMORPG necesitará una biblioteca de red muy diferente a la de un FPS, y un simulador de vuelo necesitará funciones de colisión y de física muy diferentes a la de un juego de lucha. Si OGRE incluyera todas estas características, forzaría la imposición de una serie de restricciones a seguir, restándole así la flexibilidad de uso que lo caracteriza.

Muchos experimentados desarrolladores de juegos han expresado su aprobación en este sentido porque no incluye limitaciones. Puede ser desalentador para usuarios iniciados que sólo quieren construir otro FPS, pero, para estas personas, hay un número creciente de marcos de trabajo utilizando OGRE en combinación con otras bibliotecas. Es importante darse cuenta de que, estando OGRE siempre separado, se garantiza la flexibilidad suficientemente como para ser incorporado en alguno de estos marcos.

¿Por qué debería considerarse el uso de OGRE en lugar de otros motores 3D? Muchos de ellos, aunque técnicamente son impresionantes, la falta de cohesión y de un diseño adecuado en la documentación les impide que puedan ser utilizados de forma eficaz. La gran mayoría tiene una larga lista de características, pero dan la sensación de ser un montón de demostraciones técnicas reunidas sin una clara visión de trabajar juntas. Además, la mayoría de los motores están diseñados para un determinado estilo de juego.

OGRE es diferente. Prioriza el diseño frente a la acumulación de características. Todas las características se han considerado a fondo y se incluyen en el diseño general de la forma más elegante posible y siempre plenamente documentadas. Así, se consigue que todos los elementos del motor formen parte siempre de un conjunto coherente. Por consiguiente, la calidad es antepuesta a la cantidad. Como la cantidad se puede añadir con el paso del tiempo, se sigue la filosofía de ir poco a poco, pero con la seguridad de un trabajo bien hecho. Por ello, el núcleo del equipo de desarrollo se mantiene deliberadamente pequeño y todos sus miembros son veteranos ingenieros de software con muchos años de experiencia en el mundo real. Pero esto no impide que las actualizaciones de la comunidad sean bienvenidas, si bien, se someten a un estricto control de calidad y cohesión con la filosofía de OGRE antes de ser aceptadas.

OGRE no presupone qué tipo de juego o demo se va a realizar. Por ello, utiliza una jerarquía de clases flexible que permite diseñar complementos para especializar la organización de la escena, criterio adoptado para que se pueda realizar la escena a nuestro gusto. ¿Se desea renderizar rápido los niveles de interiores? Bien, pues utilizamos el plugin BSP/PVS de manejo de escena que ya está escrito. ¿Se quiere un paisaje al aire libre? Una vez más, podemos utilizar otro plugin de manejo de escena. El resto del motor seguirá funcionando exáctamente como antes.

Pero, ¿es OGRE realmente libre? Su código fuente está disponible bajo la GNU Lesser General Public License (LGPL), que, básicamente, significa que puede utilizarse sin problemas siempre y cuando el código sea liberado si se hace algún cambio en el núcleo o si se distribuye. El código de la nueva aplicación o los nuevos complementos que sean creados no tienen que ser liberados, sino que se deja a elección del usuario.

Existe mucha información sobre los principios por los que se ha desarrollado OGRE. Para obtener una visión rápida del diseño la mejor manera es echarle un vistazo a los manuales de usuario. La API es la documentación de referencia, que puedes consultar online. Pero, sin duda, la mejor manera de conocer OGRE es usarlo. Alguna de sus características técnicas son:

Características generales
  • Diseño orientado a objetos. Interfaz simple y fácil de usar, diseñada para que requiera poco esfuerzo el renderizado de escenas en tres dimensiones
  • Arquitectura basada en plugins muy flexible que permite extender las funcionalidades del motor
  • Sistema de Carga/Respaldo. Soporte de zip/pk3 para archivar
  • Diseño limpio y bien documentado de las clases del motor
  • Independiente de la API gráfica, se puede utilizar OpenGL o DirectX


Renderizado
  • Material LOD
  • Soporta la gama completa de operaciones de función fija como multitextura y multipass blending, coordinación de generación de texturas
  • Soporte para múltiples técnicas de materiales
  • Objetos transparentes gestionados automáticamente
  • Sistema de fuentes con fuentes TrueType y texturas precreadas
  • Sistema de GUI 2D con botones, listas, cajas de edición, barras de desplazamiento, etc. (Usando CEGUI)


Gestión de escena
  • Altamente personalizable. Flexible gestión de escena no vinculada a ningún tipo de escena. Se puede usar las clases predefinidas si encajan bien o crearse subclases propias para obtener un control total sobre la organización de la escena
  • Grafo de escena jerarquico
  • BSP, Octrees, Occlusion Culling, LOD


Texturizado
  • Básico, multi-texturizado, bumpmapping, mipmapping, texturas volumétricas y proyectadas
  • Texturizado proyectivo automático entre vínculos con texturas unitarias a instancias Frustum
  • Puede registrar textura de fuentes externas
  • Soporta PNG, JPEG, TGA, BMP y DDS como archivos de imagen


Iluminación
  • Por vértice, por pixel, Lightmapping
  • Puede tener un número ilimitado de luces en la escena
  • Soporte a través de programas de vértices y de fragmentos


Sombras
  • Shadow mapping, shadow volume
  • Técnicas soportadas: modulative stencil, additive stencil, modulative projective
  • Múltiples esténciles para optimizaciones de sombras, incluyendo programas de vertices de extrusión, luz y sombras inteligentes, integración con la malla LOD, métodos zpass y zfail, esténciles de doble cara y saturación de recorte de región
  • Textura sombras que se desvanecen a larga distancia


Shaders
  • Vertex y pixel shaders de alto nivel
  • Soporta programas de vértices y de fragmentos de bajo nivel escritos en ensamblador, y programas de alto nivel en Cg, HLSL, y GLSL


Animación
  • Cinemática inversa, animación esquelética, animación de mezcla
  • Animación del esqueleto, incluyendo la mezcla de múltiples animaciones y de peso variable de skinning de huesos


Mallas
  • Cargado de malla, skinning, progresivo
  • Aceleración de skinning por hardware
  • Flexibilidad en los formatos de malla de datos aceptados
  • Exportadores para muchas herramientas de modelado incluidas Milkshape3D, 3D Studio Max, Maya, Blender y Wings3D


Curvas y superficies
  • Splines
  • Caminos Bezier bicuadrados para superficies curvas


Efectos especiales
  • Cartografía de medio ambiente, billboarding, sistema de partículas, motion blur, cielo, agua, niebla
  • Sistemas de partículas, incluyendo emisores fácilmente extensibles y affectors (personalizable mediante plugins). Los sistemas pueden ser definidos mediante scripts para un ajuste fácil
  • Soporte para skyboxes, skyplanes y skydomes, muy fáciles de usar


Scripting
  • El lenguaje de script permite mantener los materiales fuera del código
  • Scripts de renderizado multipaso


Física
  • Física básica, detección de colisiónes, cuerpos rígidos
  • Controladores que permiten organizar fácilmente los valores entre los objetos derivados
  • Incluye bindings para múltiples sistemas de colisión/física de terceras partes, como ODE o Newton



lunes, 7 de enero de 2008

OGRE (I): Introducción

Un motor hace referencia a una serie de rutinas de programación que permiten el diseño, la creación y la representación del juego. La analogía con el motor de un automóvil es bastante ilustrativa: el motor debajo del capó no es visible, pero le da la funcionalidad al automóvil que es la de transportar. La misma analogía permite explicar algunos de los aspectos que, generalmente, maneja un motor de juegos, en el que las texturas y los modelos 3D serían la carrocería, pintura e interiores.

Del mismo modo en que carrocería, pintura y exteriores no andan sin un motor, el arte y los guiones del juego no funcionan sin un motor de juegos. Un motor de juegos es el núcleo software de un videojuego o de una aplicación interactiva con gráficos en tiempo real. Éste provee las tecnologías necesarias, simplifica el desarrollo y, en algunos casos, permite el desarrollo para distintas plataformas (Mac/Linux/Windows/Consolas).

Esquema típico de un motor de juegos

Continuar leyendo...

Existen muchas librerías que proporcionan las funciones básicas de un motor de juegos, como DirectX, OpenGL, Java3D, SDL, Newton, entre otros. Las librerías gráficas como OpenGL y DirectX usan los drivers de las tarjetas gráficas, de forma que constituyen la interfaz entre la aplicación software (juego) y el adaptador gráfico hardware. Aúnan funciones para dibujar objetos 2D/3D y los motores gráficos se suelen sustentar en ellas. Una librería gráfica, a partir de modelos en 3D, consiguen obtener un espacio bidimensional, pero un motor de juegos hace más cosas, como iluminación, anti-aliasing o mezcla de texturas. Existen varias razones por la que el uso de motores de juego es importante. Algunas de ellas son:

  • Facilita el desarrollo
  • Abre nuevas oportunidades de negocio, como es la venta de las licencias de los motores para la realización de otros juegos
  • Abstracción de la plataforma. Si un Motor corre en varias plataformas, nuestro juego también
  • Separación de Motor/Contenidos, lo cual permite tener varios grupos de trabajo en paralelo
  • Beneficios a terceros, ya que los avances en el motor pueden beneficiar a varios juegos
  • Permite enfatizar en la parte artística, ya que, al tener mayor grado de abstracción, se tiene menor carga de trabajo en programación
  • Mayor modularidad y reaprovechamiento

Los motores de juego surgen en la década de los 90 tras el éxito de Doom y Quake. Juegos como Quake 3 y Unreal ya se diseñaron separando motor y contenidos ¿Qué ilustra el éxito de estos juegos? Por un lado, una mayor rapidez del mundo de los videojuegos. Desarrollar motores agiliza el desarrollo de juegos y permite sacar secuelas más fácilmente para mantener el mercado “caliente”. Además, el licenciar posteriormente los motores permite obtener unos beneficios extras muy suculentos.

La arquitectura de un motor de juegos debe proporcionar mucha abstracción. Con que las librerías utilizadas estén portadas a todos los SO, permitimos que nuestro motor o juego funcione en todas las arquitecturas necesarias. Un parámetro que se debe tener muy en cuenta al elegir un motor de juegos es su portabilidad y en qué librerías se basa. Los motores de juego suelen tener una estructura como la que sigue:

Esquema típico de un motor de juegos

El motor gráfico o de render es el que proporciona funciones de renderizado 2D, 3D y de sprites. Se suele apoyar en librerías/APIs gráficas como OpenGL o DirectX. Define una capa de abstracción entre el HW/SO y el juego en sí. Además, se encarga de la visibilidad (BSP y buffers), el mapeado, el antialiasing, la gestión de mallas 3D, entre otras cosas.

El grafo de escena es una parte muy importante de un motor de juegos. Ésta es una estructura de datos muy utilizada en editores gráficos basados en vectores y en videojuegos. Se encarga de ordenar la representación lógica y, también a veces, espacial de una escena gráfica. Cada nodo puede tener muchos hijos, pero, un nodo sólo suele tener un padre. El efecto de algo sobre un padre es visible por todos sus hijos. Así, una operación sobre un grupo se propaga hacia todos sus nodos hijo. Esto permite manejar (escalar/mover/rotar/etc.) grupos de objetos como si fueran uno solo. En los juegos, cada nodo suele representar un objeto en la escena.

Ejemplo de representación de varios objetos en grafo de escena

El motor de físicas es software que simula modelos de física utilizando variables del tipo velocidad, masa, etc. Su objetivo es simular y predecir los efectos bajo diversas situaciones de lo que ocurre en la vida real o en un mundo de fantasía. En los juegos se utilizan cada vez más, sobre todo en los de carreras donde factores como la fuerza centrífuga o derrapajes necesitan de ecuaciones físicas para aportar realismo.

El detector de colisiones es un algoritmo empleado para detectar cuándo dos o más objetos colisionan. Se suelen realizar mediante el cálculo de la intersección de volúmenes simples (Bounding Volumes). Se pueden utilizar distintos volúmenes para envolver el objeto y así detectar mejor las colisiones, como cubos o esferas. Se puede tomar como un componente independiente, aunque tiene mucho que ver con el grafo de escena y el motor de físicas.

El motor de inteligencia artificial es el encargado de dotar a ciertos elementos del juego un comportamiento pseudointeligente. Por regla general, lo que se aplica en los juegos son técnicas muy simples de inteligencia artificial como máquinas de estados o algoritmos de búsquedas. Sin embargo, cada vez más se utilizan nuevas técnicas para conseguir una inteligencia más “realista” como redes neuronales o algoritmos genéticos.

El motor de sonido es el encargado de reproducir la banda sonora del juego y los efectos de sonido, como disparos o explosiones, en sincronía con la acción del juego.

La gestión de redes está alcanzando una progresiva mayor importancia. Hoy por hoy, casi todos los juegos tienen una componente de red. Existen juegos exclusivamente online, de los cuales, la mayoría ofrece partidas multijugador a través de red. Es importante tener un componente que aglutine todas las utilidades de red, de forma que, el hecho de que se juegue de una forma u otra sea, en cierta medida, “transparente” para el desarrollador del juego.

Todas las partes que componen un motor de juegos tienen su importancia, pero lo más básico e imprescindible de un motor de juegos es el motor gráfico. Aunque el Grafo de Escena es también una pieza vital, el resto de componentes son más prescindibles y no aparecen en todos los motores, y cuando lo hacen, aparecen como plugins. La elección del motor de un motor u otro es algo fundamental, sobre todo si necesitamos alguno de estos componentes. Un ejemplo de motor de juegos básico es OGRE 3D, que, básicamente, aglutina únicamente funciones de tratamiento gráfico y deja a elección del usuario las otras componentes. La comunidad de OGRE es la que ofrece multitud de librerías para complementarlo y añadirle funcionalidad, las cuales se integran a la perfección con dicho motor. Pero OGRE 3D no es único, pues existen infinidad de motores. Éstos se suelen clasificar por su licencia de uso:

Los motores comerciales suelen tener la ventaja de proporcionar soporte y mayor número de herramientas de desarrollo adicionales. No obstante, coste de licencia puede suponer un gran inconveniente, puesto que suele ser mayor cuantas mejores prestaciones ofrezca el motor. Algunos de los distintos motores comerciales pueden ser:

  • Torque Game Engine
  • 3D Game Studio
  • Blitz3D
  • Reality Engine
  • Deep Creator
  • Cipher

Los aquí mostrados son los que se pueden llamar “asequibles”. Me refiero con ello a los que tienen licencias de bajo coste. Ninguno de estos se han utilizado para los últimos títulos AAA, pero son utilizados frecuentemente por pequeños estudios y grupos amateurs de desarrollo.

Los motores de código libre en cambio presentan la ventaja de que no tienen ningún coste, junto a que el usuario tiene la libertad de poder modificarlos si así lo necesita. Por el contrario, tienen la desventaja de que no hay soporte técnico “oficial”, aunque la comunidad suele ayudar, y puede sufrir en determinadas ocasiones falta de herramientas que ayuden al desarrollo. Además, hay que tener en cuenta que muchos de estos motores están regidos por unas licencias de uso limitadas y pueden surgir inconvenientes si el juego que se va desarrollar presenta fines comerciales. Algunos de los motores open source más populares son:

  • OGRE
  • Crystal Space
  • Irrlicht
  • jME
  • Reality Factory
  • RealmForge GDK

Como hemos visto OGRE 3D no es el único motor, e, igualmente, lo mismo no es el que más conviene, ya que cada uno de ellos ofrece diferentes funcionalidades y licencias de uso. Antes de aventurarse con un proyecto es conveniente analizar con profundidad cual es el que más se ajusta a nuestras necesidades, ya que una buena elección puede evitar numerosos quebraderos de cabeza.



Introducción a OGRE

OGRE 3D es un motor de gráficos en tres dimensiones de código abierto. Es flexible y orientado a objetos. Además, éste es portable a múltiples entornos, como Windows, MacOS X o Linux. Ha sido diseñado con la idea de hacer más sencillo el desarrollo de juegos 3D. Explota al máximo las posibilidades de las tarjetas gráficas, ya que brinda soporte para vertex y pixel shaders, como HLSL (DirectX), GLSL (OpenGL) y Cg (DirectX/OpenGL). El motor está muy extendido y es muy valorado por la comunidad de código abierto. Con él se han desarrollado muchos juegos, algunos de ellos con carácter comercial.

Por sugerencia stratera, he decidido recopilar aquí los artículos/tutoriales que estoy redactando sobre OGRE. Este post además servirá de índice para dichos artículos y lo iré actualizando conforme los vaya publicando. Sin más preámbulos:


Última actualización: 23/1/2008

jueves, 3 de enero de 2008

¿Conoces la solución?



miércoles, 12 de diciembre de 2007

Como lágrimas en la lluvia

Yo he visto cosas que vosotros no creeríais. Atacar naves en llamas más allá de Orión. He visto rayos C brillar en la oscuridad cerca de la puerta de Tanhauser. Todos esos momentos se perderán en el tiempo, como lágrimas en la lluvia... es hora de morir.

No sé por qué me salvó la vida. Quizá en esos últimos momentos amaba la vida más de lo que la había amado nunca, no sólo su vida, la vida de todos, mi vida. Todo lo que él quería eran las mismas respuestas que todos buscamos: ¿de dónde vengo?, ¿a dónde voy?, ¿cuánto tiempo me queda? Todo lo que yo podía hacer era sentarme allí y verle morir

sábado, 8 de diciembre de 2007

Introducción a OGRE 3D

Hace unos días comenté que este podría ser un curso dedicado a los videojuegos. Me matriculé de unas pocas asignaturas de esta temática. Pues bien, para una de estas asignaturas nos mandaron un trabajo de investigación sobre la temática de videojuegos que más nos interesara. Se podía elegir entre uno de los temas propuestos o elegir uno propio. Entre los que proponían se encontraban:
  • Diseño de videojuegos
  • Ingeniería del Software aplicada a los videojuegos
  • Técnicas de programación
  • Historia, orígenes, evolución del videojuego
  • Proceso de desarrollo, fases, participantes, empresas del sector
  • Géneros de juegos
  • La educación y los videojuegos, incidencia en el mundo académico, empleo como herramienta de enseñanza
  • Relaciones con el cine y la música
  • Física y Matemática para videojuegos
  • Desarrollo de videojuegos en dispositivos móviles
  • Juegos multijugador
  • ¿Cómo preparar una buena demo/trailer o presentación de un juego
  • La administración pública y los videojuegos
  • La legalidad en el mundo de los videojuegos
Mi intención en un principio fue el de hacer un enfoque centrado en los motores gráficos, sus características, los diferentes motores existentes, tanto comerciales cómo open source, y luego hacer un análisis posterior de un motor particular, en mi caso OGRE3D. Pero un compañero se me adelantó, así que el profesor me aconsejó que me centrara en la parte de OGRE. Así pues, eso hize y aquí tenéis el resumen, un pequeño adelanto de lo que será el trabajo definitivo. Cualquier cosa interesante que sepáis sobre el tema y queréis que indague sobre ello no dudéis en comentármela. Para la versión definitiva tendréis que esperaros al día de reyes. Seguiré informando.

miércoles, 5 de diciembre de 2007

¿Por qué quieres dominar el mundo?

¿Dónde radica el placer de someter a la raza humana? ¿Qué satisfacción obtienes manipulando gentes a tu antojo? ¿Cuál es el beneficio de conquistar otros territorios? Estos y algunos otros interrogantes siempre me han perturbado, y tal como yo pienso no le encuentro ninguna explicación lógica. No me entra en al cabeza cual es el sentido de ser dueño de bastas extensiones de terreno, inmensas sumas de dinero o acumular en tu indice todo el poder, ¿de qué sirve?

Analicemos: El dinero es el cáncer de la sociedad actual y vivimos sometidos a su dictadura. El dinero todo lo puede y sin dinero no eres nadie, socialmente dejas de existir. Pero claro, en sí el dinero no es más que un instrumento, simplemente una letra de cambio, el problema lo encontramos en un defecto humano, la AVARICIA. Yo creo que existe un límite de acumulación, al cual llegas y piensas "con esto tengo más que necesario para vivir", pues... ¿para qué coño quieres más? pues simplemente por poseer. No sirve de nada tener tantas riquezas porque no vas a tener tiempo en esta vida para gastártelas, pero te da igual, tu anhelas más y más. Llegado este punto te has vuelto un yonki y tus drogas son las riquezas y bienes materiales. Bueno, y si al pintas ese le da por chutarse oro liquido intravenoso... ¿a mí qué más me da? Pues que harás cualquier cosa por conseguirlo. Tienes pasta para hacer lo que te propongas, y no dudarás en embaucar, extorsionar, manipular y corromper a todo aquel que se ponga en tu camino. Este tipo es peligroso, pero no está sólo.

El líder de una nación, un magnate de los negocios, un investigador de prestigio, una superestrella mediática, todos tienen algo en común, la AMBICIÓN. Virtud y defecto. Por ambición se pueden alcanzar grandes logros, y esto en si mismo no tiene nada de malo, pero contra más alta sea la cima que te propongas, por encima de más cabezas tendrás que pasar. ¿Y qué pasa cuando te pasas por el forro a los demás? Pues que generalmente querrás ocultarlo para darle más valor a tu logro. Es aquí cuando te vuelves alimento para avariciosos sin escrúpulos, es hora de conocer a tus nuevos amigos, te presento al chantaje, la corrupción, la manipulación, la conspiración y demás entidades de la misma calaña.
Diógenes rió y le dijo:

`¿Adónde vas? Durante meses he visto ejércitos moviéndose... ¿Adónde vas? ¿Y para qué?`

Y Alejandro le dijo:

`Voy a la India a conquistar el mundo entero`.

`Y luego, ¿qué vas a hacer?', le preguntó Diógenes.

Alejandro le contestó: `Luego descansaré`.

Diógenes rió nuevamente y le dijo:

`Estás loco. Yo estoy descansando ahora. No he conquistado el mundo, no veo la necesidad de ello. Si al final quieres descansar, ¿por qué no ahora? ¿Quién te ha dicho que antes de descansar tienes que conquistar el mundo? Y te digo: si no descansas ahora, no descansarás nunca. Nunca serás capaz de conquistar el mundo... morirás a mitad de camino. Todos morimos a mitad de camino`.

La avaricia y la ambición son el motor que mueve la sociedad en que vivimos. Estas sometido a sus tejemanejes, mentiras y despropósitos, y la mayoría de veces ni te enteras. Generalmente vives feliz en tu ignorancia, mientras que todo lo que haces está decidido de antemano, y no te creas que es un ente superior... Todo a tu alrededor está controlado por el dinero. La manipulación está a la orden del día y es socialmente aceptada. ¿Por qué sino nos creemos sin dudar todo lo que dicen en televisión? Los medios de comunicación son un negocio y siempre te informarán conforme a sus intereses, y esto es así. Mismamente el gobierno de tu nación responde a los intereses de los que tienen dinero, pero no sólo el de tu nación. Asume que vives en una civilización cimentada en los defectos de la raza humana y que ni tu ni nadie estáis libres de pecado. A veces entran ganas de vivir aislado de todo, ajeno a lo que ocurre en el mundo, con tu huerto y tus cabras, pero... ¿para qué engañarte? También lo corromperías.

Para terminar sólo decir que toda esta verborrea sin sentido ha sido generada tras el visionado de esta cosa. Creete a pies juntillas lo que dice. De hecho no te creas nada. Duda de todo. No des nada por sentado. Mucho menos toda esta pitufada que te he soltado.