Introducción

De Asterisk Wiki
Revisión del 04:11 23 abr 2012 de SirLouen (discusión | contribuciones) (Página creada con «Asterisk es el mayor proyecto de software libre diseñado para la integración y unificación de los sistemas de comunicaciones conocidos Originalmente fue concebido como ...»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegación Ir a la búsqueda

Asterisk es el mayor proyecto de software libre diseñado para la integración y unificación de los sistemas de comunicaciones conocidos

Originalmente fue concebido como una plataforma para la generación de un sistema PBX, pero con el tiempo ha ido evolucionando a otro tipo de usos, como Pasarelas VoIP, sistemas integrales para call-centers, salas de conferencias, buzones de voz, y todo tipo de aplicaciones que tengan relación con las comunicaciones en tiempo real.

Comparativamente Asterisk es para el mundo de las comunicaciones lo mismo que sería Apache para el mundo de las aplicaciones web. Apache es un servidor web, y Asterisk es un servidor de comunicaciones.


¿Que es Asterisk?

En primer lugar, Asterisk es una plataforma de comunicaciones basada en la filosofia Open Source

Es capaz de convertir un ordenador comun en un completo servidor de comunicaciones.

Plataformas de Comunicaciones

Plataforma comunicaciones.jpg

En el momento en el que comenzamos a bucear por la red y a leer tutoriales sobre motores 3D comprobamos que carecemos de una fuente sólida. Puede que la nube de conceptos nos sobrepase rápidamente. Quizá lo mejor sería repasar o conocer ciertos aspectos matemáticos y físicos sobre geometría del espacio. Vectores, matrices, fuerzas, aceleración... Conceptos que se estudian durante el instituto. Puede que en dicho momento pareciesen poco útiles pero llegados a este punto son imprescindibles. Es por ello que en IberOgre existe un capítulo dedicado a las nociones básicas sobre la programación de videojuegos en tres dimensiones. Esta especie de repaso es independiente de Ogre3D, de hecho no guarda ningún tipo de relación con la tecnología que se emplee posteriormente.

Lo usual sería acudir primero a un libro que nos orientase sobre geometría del espacio y física básica para después aprender a utilizar un motor gráfico (como es Ogre). IberOgre trata de unificar ambos apartados de forma que sea necesario acudir a una sola fuente.

Paginas principales:

Fundamentos y capacidades de Ogre3D

Tras ahondar en la primera parte de la guía, será el turno de recorrer a vista de pájaro qué es Ogre y cuales son sus capacidades. Será interesante ver su estructura, su diseño y qué pone a disposición del desarrollador de videojuegos 3D. No se pretende comenzar a trabajar con la biblioteca, simplemente será una aproximación.

Instalar Ogre3D

Como no podía ser de otra manera, para comenzar a seguir el manual será necesario instalar el SDK de Ogre3D en nuestro sistema. En IberOgre se exponen dos artículos a tal efecto cubriendo los sistemas operativos Windows y GNU/Linux (con especial atención a distribuciones basadas en Debian).

Enfoques de trabajo en Ogre3D

Ogre3D tiene una virtud muy importante, es increíblemente flexible, escalable y adaptable a nuestras necesidades. Es posible utilizarlo dejando que el motor se encargue de muchas tareas pesadas o, en cambio, tomar el control sobre dichas tareas y conseguir que el sistema haga las cosas exactamente como deseemos. Aunque no se profundizará en exceso en este aspecto, sí se pretende dejar la puerta entreabierta para que el lector pueda seguir explorando más adelante.

Manejar escenas en Ogre3D

Archivo:Speedtree.jpg
Plugin SpeedTree

El sistema de gestión de escenas en Ogre es muy complejo y profundo. Aquí conoceremos sus fundamentos y aprenderemos a componer escenas utilizando modelos tridimensionales, geometría estática, fuentes de luz, etc. Así mismo realizaremos operaciones con cámaras (posicionamiento, movimiento, seguimiento...) y con multitud de otros elementos.

Según el tipo de videojuego al que nos estemos enfrentando existen técnicas y enfoques a la hora de manejar escenas que funcionan mejor que otras. Estos son temas más avanzados e IberOgre simplemente realizará varias pinceladas al respecto.

Materiales y texturizado

Ogre3D pone a disposición del desarrollador un sistema de texturizado y materiales que ofrece un sinfín de combinaciones posibles. ¿Quieres que tu videojuego tenga un look oscuro? ¿Prefieres algo más desenfadado? ¿Quizás un aspecto más cercano al cómic? Las texturas y los materiales son los elementos que conseguirán que tus modelos 3D dejen de ser trozos de plástico gris y pasen a cobrar "vida".

En IberOgre aprenderemos a diseñar materiales que pueda comprender y aplicar Ogre3D. Comprenderemos cómo trabaja Ogre con ellos y actuaremos en consecuencia. No será necesario ahondar en exceso ya que el trabajo de texturizado es más propio de los diseñadores, los programadores deben saber cómo aplicar los mencionados materiales.

Animación básica

El mundo de la animación en 3D dentro del ámbito profesional es inmenso. Sólo hay que echarle un vistazo a las últimas películas de Pixar o a simuladores de fútbol como FIFA. En dichos desarrollos se produce un despliegue de medios sustentado por presupuestos astronómicos: captura de movimientos, actores reales, cientos de cámaras, muchas tomas... El detalle que alcanzan las animaciones faciales es, en ocasiones, muy sorprendente.

Hay que ser conscientes de las limitaciones que tenemos, en IberOgre trataremos animaciones básicas, lo suficiente para que se pueda comenzar a desarrollar un videojuego sencillo en tres dimensiones.

Efectos de partículas

Escena de combate con efectos de partículas en el RTS Glest

Una de los elementos que más llaman la atención en los videojuegos actuales (sobre todo si son de acción) son los efectos de partículas: humo, explosiones, lanzamiento de hechizos, la llamarada de un volcán en erupción... Ogre provee un sistema para producir efectos de partículas bastante bueno y en esta wiki vamos a trabajar con él. Aprenderemos a generar este tipo de efectos que darán un toque especial a nuestros videojuegos.

Videojuegos en 3D

Básicamente, es posible resumir los apartados anteriores en uno sólo. El objetivo es ofrecer suficientes contenidos que el lector pueda utilizar para iniciarse y ser capaz de desarrollar juegos básicos en tres dimensiones.

Plataforma ampliable

Por encima de todo, IberOgre pretende aprovechar el carácter colaborativo de las wikis para que otros usuarios, si lo desean, puedan aportar sus conocimientos sobre el tema. De esta manera los contenidos iniciales de IberOgre pueden verse ampliados o incluso es posible que sus objetivos crezcan. De hecho, esperamos que sea así.

Filosofía

Archivo:Gnu.png
Logo del proyecto GNU

Se pretende que todas las lecciones de IberOgre sigan una filosofía común basada en una serie de principios básicos. Es posible que no todos la compartan para proyectos individuales pero en este entorno es importante que se cumpla.

Compatibilidad

Todos los ejemplos de IberOgre funcionarán en Windows y en GNU/Linux sin modificar una sola línea de código. Ogre3D es un motor multiplataforma y es deseable aprovechar esta característica. Esto implica no utilizar funciones, bibliotecas o cualquier elemento específico de una plataforma.

Software Libre

La totalidad del código alojado en IberOgre está sujeto a una licencia GPL v3. Debe obtenerse una copia de dicha licencia con cada paquete con ejemplos que se descargue.

Buenas prácticas

El hecho de que se estén ofreciendo ejemplos no significa que éstos estén descuidados. Siempre se procurará que las prácticas en términos de programación sean correctas. En multitud de ocasiones, al estar trabajando con ejemplos, los problemas más típicos no se resuelven de la manera en la que se haría si se tratara de un trabajo mayor. A menos que la complejidad crezca más allá de lo razonable el código contendrá buenas prácticas.


Estructura de las lecciones

Los artículos referidos a un tema concreto se estructurarán en todo momento siguiendo unas directrices generales. Norma necesaria para proveer al conjunto de un nivel de coherencia y uniformidad aceptables. Salvo en ocasiones justificadas que resulten obvias las lecciones se estructurarán de la siguiente manera:

  • Introducción: pequeño apartado en el que se presenta el problema a abarcar a lo largo del capítulo. Su utilidad es establecer en contacto al lector, así mismo se adjuntará el índice de contenidos.
  • Requisitos previos: listado de las lecciones o conceptos que el lector debería conocer antes de enfrentarse a el capítulo actual. Si el lector cumple todos los requisitos no debería tener ningún problema para llegar a dominar el contenido de la lección.
  • Contenido: una o más secciones con el grueso del contenido de la lección. Cada apartado importante deberá estar acompañado de un ejemplo el cual deberá estar explicado (al menos los puntos más problemáticos) en el propio artículo.
  • Resumen: breve apartado en el que se repase o enumere el contenido de la lección.


Estado actual

IberOgre es aún muy joven y muchos de los objetivos expuestos en apartados anteriores no han sido cubiertos. Conforme pase el tiempo se redactarán y publicarán lecciones (con ejemplos incluídos) al respecto.


Contribuciones

La meta de IberOgre es llegar a formar comunidad alrededor de la wiki, por supuesto, las colaboraciones son bienvenidas y deseadas. Al estar en una fase muy temprana de su desarrollo aún no se ha abierto a ediciones externas. El motivo es sencillo: su estructura no está completamente definida y, valorando las distintas opciones, se ha decidido esperar.

A pesar de todo, aseguramos que dentro de poco todo el mundo pueda aportar sus conocimientos sobre la programación de videojuegos 3D en general y sobre Ogre en particular.


Licencia

IberOgre está formada por varios componentes: la documentación en forma de texto y el código de los ejemplos. Todos los artículos y lecciones están sujetos a la GNU Free Documentation License v1.2, consulta su texto si quieres conocer más detalles. Así mismo y, como ya se ha mencionado, el código tiene una licencia GNU General Public License v3, de nuevo, es posible acceder al texto completo de dicha licencia para más información.