Allegro Una librería para programar videojuegos


Support This Project
Albergado en: dotsrc.org
dotsrc.org

  

Introducción

Allegro es una librería portable principalmente enfocada a videojuegos y programación multimedia, originalmente escrita por Shawn Hargreaves para el compilador DJGPP en una mezcla de C y ensamblador.

Según el suplemento de música del diccionario Oxford, Allegro es la palabra italiana para «rápido, vivo, brillante». Además es un acrónimo recursivo de «Allegro Low LEvel Game ROutines» [rutinas de bajo nivel para videojuegos].

Soporte multi-plataforma

  • Unix (Linux, FreeBSD, Irix, Solaris, Darwin)
  • Windows (MSVC, MinGW, Cygwin, Borland)
  • BeOS
  • QNX
  • MacOS X
  • Dos (DJGPP, Watcom)

Funciones gráficas

  • Dibujo vectorial:
    • pixels, líneas, rectángulos, círculos, elipses, arcos, curvas Bezier
    • relleno de figura, con o sin patrón
    • polígonos: planos, sombreado Gouraud, texturizados y translúcidos
  • Sprites:
    • sprites con máscara, comprimidos y compilados
    • blits, rotaciones, reescalado, alpha blending, Gouraud shading
    • soporte nativo de ficheros BMP, LBM, PCX y TGA (otros soportados por extensiones de la librería)
  • Paletas de color:
    • manipulación de paletas de color (lectura, escritura, conversión)
    • conversión entre formatos de color RGB <-> HSV
  • Texto:
    • soporte para diferentes codificaciones y conversiones, por defecto en UTF-8
    • fuentes bitmap (transparente, coloreado, alineamiento)
  • Miscelánea:
    • dibuje directamente en la pantalla o en bitmaps de memoria de cualquier tamaño
    • scroll por hardware y triple buffering (donde sea disponible), pantalla partida en modo-X
    • funciones de animación para el formato FLI/FLC

Drivers gráficos

  • Unix:
    • X Window, DGA, fbcon
    • SVGAlib
    • VBE/AF
    • mode-X
    • VGA
  • Windows:
    • DirectX (en ventana o pantalla completa)
    • GDI
  • MacOS X:
    • Quartz (en ventana o pantalla completa)
  • BeOS:
    • BWindowScreen
    • BDirectWindow
  • Dos:
    • modo VGA 13h
    • modo-X (23 resoluciones VGA más el modo extendido desencadenado 640x400)
    • modos SVGA en 8, 15, 16, 24 y 32 bits por pixel
    • acceso lineal al framebuffer con VBE 2.0
    • aceleración por hardware a través de la API VBE/AF si está soportada
    • drivers gráficos adicionales por el proyecto FreeBE/AF
  • OpenGL:
    • La extensión AllegroGL permite usar gráficos OpenGL con Allegro.

Funciones de sonido

  • Midi:
    • soporte nativo del formato MIDI (con 64 efectos simultáneos)
    • control/respuesta dinámica a los eventos note on, note off, main volume, pan, pitch bend y program change
    • usa conjuntos musicales General MIDI
    • puede usar sonidos digitales pregrabados para los ficheros midi (SF2 y parches GUS)
  • Wave:
    • soporte nativo de ficheros WAV y VOC (reproducción contínua hacia delante, atrás o bidireccional)
    • flujos de audio
    • modifique el volúmen, la panoramización, la frecuencia, etc durante la reproducción

Drivers de sonido

  • Unix:
    • OSS
    • ALSA (0.5/0.9/1.0)
    • ESD
    • aRts
    • JACK
    • SGI AL
  • Windows:
    • DirectSound
    • WaveOut
    • drivers MIDI del sistema
  • MacOS X:
    • Core Audio
    • Sound Manager
    • Core Audio MIDI
    • QuickTime MIDI
  • Dos:
    • Adlib, SB, SB Pro, SB16, AWE32
    • MPU-401
    • ESS AudioDrive
    • Ensoniq Soundscape
    • Windows Sound System

Rutinas matemáticas

  • rutinas aritméticas y trigonométricas en punto fijo
  • tablas trigonométricas precalculadas
  • manipulación de vectores/matrices/cuaterniones 3d (translación, rotación, escalado, proyección)

Miscelánea

  • gestión de ratón, teclado y joystick
  • temporizadores por interrupciones de alta velocidad (resolución de 10, 5 o menos ms dependiendo de la plataforma)
  • simulador de retrazo vertical
  • manipulación de ficheros de configuración
  • manipulación de ficheros comprimidos en formato LZSS
  • manipulación de ficheros de datos multi-objeto comprimidos
  • herramienta para crear ficheros de datos (grabber)
  • simple interfaz gráfica (GUI) para diálogos y selector de ficheros

Soy nuevo con Allegro, ¿qué debería hacer?

Antes de nada, ¡bienvenido! Dependiendo de sus habilidades querrá comenzar de forma distinta.
Si es totalmente ajeno a la programación en C, Allegro no le ayudará mucho. Al ser una librería de C (donde C es el nombre de un lenguaje de programación), Allegro asume que sabe escribir programas en C, compilarlos y enlazarlos para producir un ejecutable. Lo sentimos, pero tendrá que aprender primero a hacer eso. Puede usar un motor de búsqueda como Google para buscar tutoriales y documentación sobre programación en C, o quizás prefiera comprar un libro. C es un lenguaje de programación muy conocido con muchos años a sus espaldas, así que no debería tener problemas para encontrar información sobre él.
Si ya sabe cómo escribir programas en C pero no tiene los conocimientos para escribir videojuegos, entonces disfrutará aprendiendo y usando Allegro. Obviamente primero querrá descargar Allegro. Le recomendamos que obtenga una versión estable. Allegro trae una buena documentación de referencia y más de 40 ejemplos que le ayudarán a comenzar con cosas básicas y de ahí en adelante mejorar sus habilidades. Incluso puede jugar un pequeño juego demo donde su misión es destrozar asteroides. La misma documentación que se genera con Allegro puede encontrarla online aquí, y hay muchos tutoriales e incluso algunos libros que le permitirán extender aun más su conocimiento.
Si es usted un programador experimentado, puede obtener una idea rápida de cómo son los programas con Allegro ojeando la API o leyendo los ejemplos que trae. Allegro intenta facilitar la tarea de crear juegos todo lo posible, intentando mantener a la vez suficiente flexibilidad para que pueda usar todo el poder de bajo nivel que desee usar.
Y sea un programador inexperto o nó, debería saber que hay varias posibilidades para ponerse en contacto con otros usuarios de Allegro. Hay unas cuantas listas de correo a las que puede apuntarse. Normalmente están en silencio hasta que alguien comienza una buena discusión y el resto comienza a mandar respuestas. Para aquellos que no les gusta el correo, Allegro.cc es un foro web con una mayor participación (y razón señal-ruido). No dude en comunicar sus ideas y proyectos actuales. A todo el mundo le gusta ver un juego que usa Allegro hasta los límites, y más si proporciona el código fuente para que otros puedan aprender de él.