September 28th, 2006

Game Interface and Design

El diseño de la interfaz en un juego es un tema poco tocado, especialmente entre los desarrollos amateur o semi-profesionales, no debido a que no se programe la interfaz o que sea poco atractiva visualmente (bueno en algunos casos si lo es), sino que carece de planeación. Este libro muestra tanto la perspectiva visual, como la planeación involucrada en la creación de una interfaz de videojuego atractiva, usable y que agregue elementos positivos a la jugabilidad.

El libro está dividido en 15 capítulos (cerca de 220 páginas) que recorren el diseño, planeación, realización, utilización de elementos particulares (botones, sliders, menús, etc), HUD o interfaz en juego y finalmente tiene algunos tips la realización de todo esto en photoshop y flash. Los capítulos son:

  1. Introducción a los videojuegos.
  2. Planeando el flujo de menús.
  3. El “look and feel” de la interfaz.
  4. básicos de diseño.
  5. Consolas o PC?
  6. Estados de botón.
  7. Creando un punto focal.
  8. Usando texto en la interfaz.
  9. Requerimientos técnicos y trucos.
  10. Herramientas.
  11. Usando animación.
  12. Iconos, iconos, iconos.
  13. Diseñando el HUD.
  14. Diseñando la interfaz.
  15. Creando la maqueta interactiva.

Este libro no posee mancha de código, así que es ideal para diseñadores, artistas y programadores multifacéticos.

September 26th, 2006

Graphic Remedy Logo
Graphic Remedy es la empresa responsable de la creación del gDEBugger, una herramienta que analiza y ayuda a corregir errores sobre los API OpenGL y OpenGL ES.

gDEBugger permite entre otras cosas:

- Colocar BreakPoints sobre la ejecución de funciones gl y ext.
- Monitoreo automático de los errores en OpenGL y detiene la aplicación en caso de que uno ocurra.
- Monitoreo del rendimiento de OpenGL, lo que permite detectar los cuellos de botella.
- Ver una estadística de los llamados a funciones de OpenGL (función-numero de llamados).
- Ver las variables “maquina de estado” del API.
- Mostrar las capacidades de la actual implementación de OpenGL (resolución, profundidad de color, extensiones, etc).

Graphic Remedy y el OpenGL ARB (Architecture Review Board) están ofreciendo una versión académica de este software, orientada a estudiantes de tiempo completo, profesores e instituciones educativas. Los requisitos son bastante sencillos en ambos casos:

Estudiantes (1-2 licencias):
1. Llenar el formato de aplicación académica.
2. Una copia del documento que lo acredite como estudiante.
Es necesario usar el email académico para aplicar.

Instituciones académicas(3 licencias o mas)
1. Llenar el formato de aplicación académica.
2. Anexar una carta oficial del jefe de departamento que realiza la solicitud.
Igualmente es necesario un email académico.

La versión académica tiene algunas limitaciones, entre otras, no se pueden realizar aplicaciones comerciales con esta licencia, no tiene soporte (aunque se puede comprar por algunos dolares al año) y el trabajo que involucre el uso de gDEBugger debe ser público.

September 23rd, 2006

Hace unos cuantos meses y como parte de un proyecto de creación de videojuegos desarrolle este pequeño test para medir el rendimiento de render de triángulos de manera simple. La prueba se realizó con el objetivo de mostrar cuantos triángulos podría mostrar un juego no optimizado bajo una cierta resolución, en modo ventana o pantalla completa

La prueba genera una cantidad especificada de triángulos y los muestra con un color y posición aleatorio dentro del espacio de dibujo, luego realiza diez mediciones de cuantos frames se pueden dibujar en un segundo. Al terminar todas las pruebas el programa genera un dialogo estándar "guardar como", para obtener la dirección y el nombre de un archivo .txt que contiene todos los datos de la prueba, con alguna información del sistema (memoria, procesador y tarjeta de video).

Todo la funcionalidad de la prueba es accesible a través de la clase CPolygonTest , declarada en el archivo PolygonTest.h. El código típico (incluido en principal.cpp) para ejecutar una prueba es:

C++:
  1. #include <windows.h>
  2.  
  3. #include "ventana.h"
  4. #include "LibreriasGL.h"
  5. #include "PolygonTest.h"
  6.  
  7.  
  8.  
  9.  
  10. int WINAPI WinMain( HINSTANCE    hInstance,HINSTANCE hPrevInstance,LPSTR    lpCmdLine,int nCmdShow)
  11. {
  12.  
  13.     CPolygonTest test;
  14.  
  15.     test.correrPrueba(50000,240,320,false,32,1,10000,1000);
  16.     test.correrPrueba(80000,240,320,false,32,1,10000,1000);
  17.     test.correrPrueba(100000,240,320,false,32,1,10000,1000);
  18.     test.correrPrueba(50000,480,640,false,32,1,10000,1000);
  19.     test.correrPrueba(80000,480,640,false,32,1,10000,1000);
  20.     test.correrPrueba(100000,480,640,false,32,1,10000,1000);
  21.     test.correrPrueba(50000,600,800,false,32,1,10000,1000);
  22.     test.correrPrueba(80000,600,800,false,32,1,10000,1000);
  23.     test.correrPrueba(100000,600,800,false,32,1,10000,1000);
  24.     test.correrPrueba(50000,480,640,true,32,1,10000,1000);
  25.     test.correrPrueba(80000,480,640,true,32,1,10000,1000);
  26.     test.correrPrueba(100000,480,640,true,32,1,10000,1000);
  27.     test.correrPrueba(50000,600,800,true,32,1,10000,1000);
  28.     test.correrPrueba(80000,600,800,true,32,1,10000,1000);
  29.     test.correrPrueba(100000,600,800,true,32,1,10000,1000);
  30.     test.finalizarPruebas();
  31.    
  32.  
  33. }

En una futura versión (de existir) tendría las siguientes modificaciones:

- Posibilidad de elegir entre la versión Microsoft y OpenGL del driver.
- Otros modos de render con optimizaciones.
- Mayores opciones de control sobre OpenGL.

Nota: Este software - código fuente se proveen sin garantía. Úsese bajo su propio riesgo.

September 17th, 2006

3d Game Engine Design
A pesar de lo que pueda sugerir el titulo principal de este texto, este se centra muy poco en el diseño del motor de un videojuego y mas en los algoritmos involucrados en el proceso de su creación, o como dice el subtitulo "Una aproximación práctica a la computación gráfica en tiempo real". El libro en sí es una recopilación de técnicas indispensables a la hora de programar la engine desde 0, con un fuerte enfoque matemático y pequeños programas en c++ que muestran la realización de la parte teórica.

El libro está dividido en 13 grandes capítulos y dos apéndices así:

  1. Introducción.
  2. Métodos geométricos.
  3. La tubería (pipeline) gráfica.
  4. Representación jerárquica de escenas.
  5. Selección.
  6. Detección de colisiones.
  7. Curvas.
  8. Superficies.
  9. Animación de personajes.
  10. Nivel de detalle geométrico.
  11. Terrenos.
  12. Ordenamiento espacial.
  13. Efectos espaciales.

A. Infraestructura orientada a objetos.
B Métodos numéricos.

Si usted es un programador de videojuegos que no se impresiona con notación matemática (al principio hay 2 paginas de convenciones al respecto) y con que los temas sean explicados de esta manera 70% matemática 30% programación, esta libro es una referencia técnica muy fuerte de programación de motores gráficos orientados hacia videojuegos para usted.

September 11th, 2006

Este tutorial cubre el manejo de primitivas en OpenGL, fundamental a la hora de realizar cualquier tipo de aplicación 3d, ya que con estas (especialmente los triángulos) es que se representan los objetos 3d en los videojuegos. Al igual que en los anteriores tutoriales vale la pena aclarar que la documentación sobre la que se basa este tutorial es la de la implementación 1.1 de OpenGL, que aún sigue vigente en la implementación actual, pero con variaciones gracias a la introducción de nuevas tecnologías en las tarjetas gráficas.

Este tutorial, a diferencia de los anteriores, permite ver en acción las capacidades de OpenGL al mismo tiempo que su sencillez, posteriormente, con la introducción de las transformaciones, texturas, iluminación, extensiones y shaders se mostrara la potencia que la actual versión de OpenGL permite.

PRIMITIVAS

En el mundo físico los objetos poseen formas variadas que no necesariamente guardan relación con los objetos en la geometría básica. En los videojuegos y demás software 3d en tiempo real, representar esas formas de manera exacta sería muy costoso computacionalmente hablando (hardware), al punto de que sería casi imposible con la tecnología actual, es por eso que se usan aproximaciones para hacer que las cosas se vean lo mas cercanas posibles a la realidad y al mismo tiempo, lo mas ajustado posible a las capacidades del hardware actual. Al fin y al cabo hay un dicho en computación gráfica “si luce bien, esta bien”.

Ejemplo alambres
Un modelo hecho de triángulos a la izquierda, a la derecha con superficie e iluminación.

Continuar Leyendo... »