"Ningún juego dura tanto hasta que te lo terminas como el que te programas tú mismo, ninguno te absorbe tanto y ninguno te produce tanta satisfacción cuando lo has acabado"
Librerías que miles de aficionados, gente para la que no tengo palabras más que de agradecimiento, pone generosamente a disposición de quién quiera usarlas. Es la magia de internet.
Excelente librería matemática especialmente pensada para programación gráfica, OpenGL más concretamente. Permite hacer las operaciones matemáticas al estilo con el que se hacen en GLSL, en el que esta basado, pero no en un shader si no en el programa principal. Una excelente manera de acostumbrarse a esta forma de hacer, y además útil.
FTGL es una librería gratuita para renderizar texto con OpenGL de varias formas, bitmap, poligonal o con textura. Muy fácil de usar y de hecho usada en varios programas. Hace antialiasing del texto y permite cargar ficheros truetype y de más formatos de fuente. Usa la librería FreeType2, también gratuita.
Para facilitar las cosas he compilado FTGL y FreeType2 para VC2005 y para DEV-C (MinGW), y las he incluido en un ZIP con las cabeceras, para poder empezar a usarlas de inmediato. Está en la zona de descargas de USW, aquí.
OpenCTM es una nueva iniciativa de software libre que tiene muy buena pinta, de un formato de fichero para modelos 3D de carga rapida y con muchisimos triangulos en el menor espacio posible. Estan preparando un pugin para Blender y ya se puede descargar una libreria para cargar los modelos, no facil, facilisima de usar.
Las extensiones son la forma en que OpenGL crece y se hace mejor. Desde el principio se penso en mejorar la libreria y se penso un metodo para poder hacerlo a medida que se aumentaban sus prestaciones. El metodo es el de las extensiones. Si quieres usar una extension OpenGL provee un metodo para comprobar si tu hardware la soporta y un metodo para obtener un puntero a las funciones de esa extension y asi poder usarlas. El unico pero al sistema es lo tedioso del metodo para cada extension. Aqui es donde entran esos fantasticos y maravillosos seres que nos facilitan la vida a traves de internet, poniendo a nuestra disposicion su trabajo de forma gratuita. Con estas librerias (supongo que habra mas) nos ahorramos el trabajo de hacer visibles en nuestro programa las extensiones de OpenGL. Aqui van dos.
GLEE que es la que usaremos en el curso de programacion de juegos. Absolutamente sencilla de usar y util.
GLEW que es otra con la que podeis probar si quereis.
Las dos librerias soportan en sus ultimas versiones OpenGL 3.0.
Fantásticas librerías que tienen funciones de sistema, gráficos, audio y red y totalmente libres. Lo mejor es que la documentación, aunque en ingles, esta bien.
Fantástico motor gráfico que forma parte del SDK de OpenGL. Se puede usar como librería de vínculo dinámico o como librería estática (yo conseguí compilarlo así y que funcionó). Tiene buena documentación y código de ejemplo para empezar a usarla, pero llega un momento que uno necesita más y no lo encuentra. Espero que mejoren este aspecto y no se conformen con la típica lista de clases, miembros y spacenames generada con doxygen.
La librería para compresión mas usada. La puedes usar tú, pero lo más facil es que la necesites para compilar alguna otra librería que la usa. Es de uso libre.
La librería gráfica definitiva. Antes llamada OpenIL Carga cualquier formato de imagen y si no se quiere usar para visualización o manipulación de la imagen no cargas la librería correspondiente y ya está (vienen las 3 por separado). Licencia LGPL (la usas para lo que quieras). Documentación muy buena.
Magnífica librería gráfica con la que puedes cargar PNG, JPEG, PCX, BMP, TGA, y GIF. en tu programa OpenGL sin complicación ninguna y con licencia OpenSource. También permite hacer más cosas con los gráficos cargados. Está descontinuada desde el 2003 pero funciona igual que entonces.
Para poderla usar con MinGW (Dev-C) he compilado la librería, ya que en su sitio oficial solo se baja compilada para Windows. Se puede bajar de aquí, la zona de descargas de UnSitioWeb.