jueves, 4 de abril de 2013

Desarrollo De VideoJuegos en Windows 8

C++ como plataforma nativa en Windows 8

 

 

Introducción

¿Que significa C++ para Windows 8? Esa es la pregunta que trataremos de clarificar en este artículo. Desde el punto de vista del código nativo, hasta el desarrollo de juegos, pasando por la portabilidad y las librerías.

Tipos de Proyectos

Los proyectos para Windows 8 que podemos crear con C++ se dividen en 3 grandes grupos.
  • Aplicaciones: Desarrolladas con XAML o Direct2D, son similares a las que podemos crear con JavaScript y HTML, VB.Net o C#.
  • Aplicaciones o Juegos con Direct3D: Se trata de código específico para dibujar en pantalla con alta performance. Este tipo de aplicaciones o juegos también pueden ser portadas de otras plataformas basadas en C++.
  • Librerías de WinRT o DLLs: Son componentes reutilizables que pueden ser consumidos en otras aplicaciones.
 

La importancia de los Juegos

Los motores gráficos para desarrollo de videojuegos serán un interesante agregado a las aplicaciones de Windows 8, no solo porque permiten acelerar los tiempos de programación sino que aprovechan al máximo las capacidades del hardware y estandarizan componentes para juegos de manera sencilla.
A modo de ejemplo, el motor de Unity, estará disponible en Windows 8 y en Windows Phone 8.
 
http://www.engadget.com/2012/08/22/windows-8-and-windows-phone-8-to-play-nice-with-unity-game-engin/.

Unreal Engine 3

Un caso especial es el aclamado motor de Unreal, responsable de juegos como Gears of War y Mass Effect. Recientemente se confirmó la llegada del motor a Windows 8, incluyendo la versión ARM. Los chips de alto poder gráfico como el Nvidia Tegra 3 permiten renderizar gráficos increíbles, todo gracias a C++ y Windows 8.



Creando un Juego para Windows 8

Haremos un breve recorrido sobre la creación de Juegos en Windows 8, utilizando HTML 5, CSS3 y JavaScript. Este artículo no pretende ser una guía extensiva por lo cual no tocaremos el tema de C++, aceleración de hardware ni modos 3D.

Como se Divide el Proyecto

En este ejemplo veremos la siguiente estructura de carpetas y archivos:
  • CSS: Hojas de Estilo para las páginas del juego (menú principal, selección de nivel, etc.)
  • HTML: Páginas que contendrán las pantallas del juego, cada página puede asociarse a un archivos JavaScript para la lógica y a un archivo CSS para definir su estilo.
  • IMAGES: Todas las imágenes y assets gráficos de nuestro juego. Aquí también se incluyen las imágenes para el Tile de nuestro juego.
  • JS: Archívos de código en JavaScript.
  • SOUNDS: Archivos de sonido. Efectos, música de fondo, etc.
  • Default.html: Es el punto de entrada al juego. Puede referenciar a un archivo dentro del a carpeta HTML o bien mostrar contenido propio. 
  

Manteniendo la Estructura de Juego

Si han desarrollado algún juego con anterioridad, utilizando XNA Game Studio o cualquier otro Framework, será fácil identificar en el código las estructuras principales de un juego en JavaScript.

Métodos Estándar

  • Initialize: Carga los contenidos principales del juego en memoria. Gráficos, Fuentes, estructuras de datos. Crea un Timer para la ejecución del Loop Principal.
  • Start: Comienza un nuevo juego, pone las variables en 0, listo para la partida. Inicia el Timer.
  • Update: Refresca el estado del juego, las variables y es donde se encuentra la lógica principal. Se ejecuta con cada tick del timer.
  • Draw: Refresca la pantalla. Muestra u oculta controles. Recordemos que al hablar de HTML5 y su Canvas, se pueden dibujar tanto controles como líneas y figuras en 2D sin problemas.
  • End: Finaliza el juego y muestra los resultados. Limpia variables innecesarias. Frena el Timer principal.

Métodos de Windows 8

  • Show / Hide: Determinar que hacer al perder el foco en el juego. Podemos elegir pausar por ejemplo.
  • Snap / UnSnap: Al ingresar o salir del modo de Snap View. En algunos juegos que solo pueden ser jugados en un tamaño mayor al Snap View, podemos mostrar un mensaje de advertencia.
  • touchHandle, touchStart, doTouch: Estos métodos permiten manejar el input táctil o el click de un mouse sobre cualquier parte de la pantalla. 

El Juego en Acción

En el siguiente video podremos ver en vivo y en directo el juego el juego desarrollado con HTML 5, cortesía de Channel9.

http://channel9.msdn.com/posts/Entrevista-a-los-pioneros-de-Windows-8-que-realizaron-la-aplicacin-de-Senku


TOMADO DE LOS BLOGS DE MICROSOFT VIRTUAL ACADEMY
http://blog.nncorp.com.ar/?p=1300
http://blog.nncorp.com.ar/?p=1125