sábado, 13 de abril de 2013

INTRODUCCIÓN A ENGINES Y FRAMEWORKS DE DESARROLLO (I)


DESARROLLO DE VIDEOJUEGOS EN WINDOWS 8 (Sesión 2A)

Segunda clase en el taller de creación de videojuegos en w8. 

Nuestro siguiente paso es obtener conocimientos, herramientas y habilidades necesarias para desarrollar un juego casual, que son los que proliferan en el Windows Store. No es casualidad que mas del 40% de las aplicaciones se que encuentran hoy en día, caigan en está categoría y a su vez en diversas subcategorías de videojuegos.
Para el marketplace adentrarse al desarrollo de un videojuego, por mas pequeño que este sea, es una actividad algo compleja, ya que no solo se habla de simplemente entender una sintaxis de un lenguaje de programación o aprender una herramienta (como alguno de los engines de los que se van a hablar aquí), involucra muchas disciplinas y es por esto que empezaremos tratando de definir un poco de cual es el perfil que necesitamos.


Con esto queremos decir que para desarrollar un videojuego tenemos que desarrollar habilidades que van mas aya de solo conocer un nuevo lenguaje de programación, dominar su sintaxis u obtener la certificación del engine que estemos utilizando.

Un programador de videojuegos tiene que ser capaz de justificar cada uno de los elementos y/o personajes que tiene su videojuego; también debe de tener la capacidad de dirigir en donde irán las cámaras, las perspectivas. las luces que iluminarán las escenas de su videojuego e incluso, poder justificar la historia atrás de cada uno de estos personajes o escenarios dentro del videojuego.


Pero claro que es necesario jugar para conocer que hay en el mercado, incluso, para copiar algunas ideas y mejorarlas o evitar errores que podríamos detectar en los juegos. Sin embargo hay muchas fuentes de inspiración para los diseñadores de los videojuegos, puede ser desde un libro, una película  una escena en especifico o tratar de copiar algún personaje o incluso el guión de alguna novela en concreto. A diferencia de la creación de aplicaciones o software empresarial, al crear un videojuego puede aumentar el numero de roles necesarios o simplemente se puede dejar las responsabilidades a una sola persona.

Si tuvieramos que estar haciendo una serie de reclutamiento podríamos escuchar algunas frases como:

  • Soy artista gráfico
  • Tengo muchas habilidades para codificar
  • Me gusta crear historias
  • Tengo talento para jugar
  • Soy músico
  • Quiero ganar dinero
  • Quiero ayudar
  • Tengo curiosidad de involucrarme en el proyecto
Es por esta razón que debemos de cuidar la forma de invertir nuestro tiempo, el tipo de herramientas que vamos a aprender, que tipo de habilidades vamos a adquirir y cual sería la ruta critica para llegar a este primer objetivo que es: "la creación y publicación de nuestro primer videojuego", para esto vamos a seguir un diagrama muy interesante.


Como podemos ver tenemos tres caminos a seguir, el primero es como "desarrollador independiente de un videojuego" y para esto debemos de tener fundamentos sólidos de programación en lenguajes como C, C++, C#, JavaScript, así como también en estándares como HTML5, para enfocarnos prácticamente en patrones, estructuras y arquitecturas de mismo juego.
Pero como se había comentado anteriormente, la creación de videojuegos es multidisciplinaria y hay personas con habilidades en Marketing y negocios que tienen la idea o el concepto o también personas con experiencia en el Diseño gráfico o artistas plásticos que pueden llegar a utilizar un engine como lo es Construct para la creación de un videojuego sencillo (de una manera simple sin tener mucho conocimiento de codificación o sintaxis de los lenguajes de programación) pero bastante potente y muy bien aceptado.

En este nivel tenemos c# como el lenguaje de programación a utilizar sobre el engine, por otro lado si utilizamos construct podemos desarrollar un videojuego en su versión inicial rápidamente y tenemos que empezar a considerar las cuestiones de música y sonido. Aquí hay que decidir si tomar el concepto 2D y 3D, todo dependiendo del alcance de nuestro videojuego y también de las actividades que tengamos en la manipulación de las herramientas necesarias.
Como podemos ver tenemos un par de caminos, el primero es generar código estrictamente orientado al lenguaje de programación que utilicemos ayudados de frameworks y el segundo que es utilizar un engine de desarrollo de videojuegos (construct o Unity)

Una definición básica de ENGINE sería:
Son sistemas computacionales diseñados para facilitarnos la creación y desarrollo de un videojuego desde la perspectiva de un programador.
Por lo general este tipo de sistemas cuentan con 3 características básicas:

  1.  Motor de física: Que son un conjunto de funciones matemáticas que procesan en tiempo real la posición de nuestros objetos o recursos dentro de una escena en el videojuego, teniendo como finalidad otorgarles atributos como la gravedad, inercia, etc.
  2. Rendering: Esto es la posibilidad de agregar texturas, sombras, animaciones, etc a todos los objetos o personajes del juego
  3. La capacidad de auxiliarnos en el momento de codificar o detectar colisiones, entendiendo como colisión en el ambiente de videojuegos como el momento en que 2 objetos se acercan lo suficiente para provocar una reacción.
Otras características que tienen algunos engines:
  • Manejo de sonido y audio
  • Incorporar aspectos de inteligencia artificial
  • Efectos de animación
  • Complementar con temas de conectividad hacia redes
  • Manejo y optimización de memoria
  • Portabilidad hacia múltiples plataformas.

No hay comentarios.:

Publicar un comentario