Allegro Eine Bibliothek für Computer-Spiele-Programmierung


Support This Project
Bereitgestellt von: dotsrc.org
dotsrc.org

  

Einführung

Allegro ist eine portable Bibliothek, gedacht für Computer-Spiel- und Multimedia-Programmierung. Ursprünglich geschrieben wurde Allegro von Shawn Hargreaves für den DJGPP Compiler, in einer Mischung aus C und Assembler.

Laut dem Oxford Companion für Musik ist Allegro das italienische Wort für «schnell, lebendig, hell». Es ist außerdem ein rekursives Akronym für «Allegro Low LEvel Game ROutines».

Plattformübergreifende Unterstützung

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

Grafik-Funktionen

  • Vektor-Grafik:
    • Pixel, Linien, Rechtecke, Kreise, Ellipsen, Bögen, Bezier Splines
    • Flächenfüllung, mit oder ohne Textur
    • Polygone: Flat, Gouraud, Textur (3D), Transparent
  • Sprites:
    • Maskierte, komprimierte und kompilierte Sprites
    • Blitten, Rotation, Skalierung, Farb-Reduktion, Alpha-Blending, Gouraud Schattierung
    • Interne Unterstützung für BMP, LBM, PCX und TGA Dateien (andere Formate werden mit Bibliotheks-Erweiterungen unterstützt)
  • Palette:
    • Palette-Manipulation (schreiben, lesen, konvertieren)
    • RGB <-> HSV Farbformat-Konvertierung
  • Textausgabe:
    • Unterstützung verschiedener Textkodierungen und Konversion, standardmäßig UTF8
    • Bitmap Schriften (Masking, Farbauswahl, Ausrichtung)
  • Verschiedenes:
    • Direkter Zugriff auf den Videospeicher oder beliebig große Speicher-Bitmaps
    • Hardware-Scrolling und Triple-Buffering (soweit Unterstützung vorhanden), Mode-X Split-Screen
    • Animationswiedergabe im FLI/FLC Format

Graphik-Treiber

  • Unix:
    • X Window, DGA, fbcon
    • SVGAlib
    • VBE/AF
    • mode-X
    • VGA
  • Windows:
    • DirectX (Windowed oder Full-Screen)
    • GDI
  • MacOS X:
    • Quartz (Windowed oder Full-Screen)
  • BeOS:
    • BWindowScreen
    • BDirectWindow
  • Dos:
    • VGA 13h Modus
    • Mode-X (23 VGA Auflösungen und Unchained 640x400 erweiterter Modus)
    • SVGA Modi mit 8, 15, 16, 24 und 32 Bits pro Pixel
    • Linearer VBE 2.0 Framebuffer Zugriff
    • Hardware Beschleungigung mit VBE/AF API soweit unterstützt
    • Zusätzliche Grafik-Treiber durch das FreeBE/AF Projekt
  • OpenGL:
    • Das AllegroGL-Addon erlaubt die Verwendung von OpenGL Grafik mit Allegro.

Sound-Funktionen

  • Midi:
    • eingebaute Unterstützung für das MIDI Musik-Format (mit 64 gleichzeitigen Effekten)
    • Dynamische Kontrolle/Behandlung von Music-Note an, Note aus, Gesamtlautstärke, Position, Frequenzänderung, und Programm-Änderung
    • benutzt General MIDI Patches
    • Man kann Wavetable-Patches für die MIDI Dateien einlesen (SF2 und GUS patches)
  • Wave:
    • Interne Unterstützung für WAV und VOC Datei-Formate (Können vorwärts, rückwärts oder bidirektional geloopt abgespielt werden)
    • Streaming Audio
    • Lautstärke, Position, Frequenz, etc. können während dem Abspielen geändert werden

Sound-Treiber

  • Unix:
    • OSS
    • ALSA (0.5/0.9/1.0)
    • ESD
    • aRts
    • JACK
    • SGI AL
  • Windows:
    • DirectSound
    • WaveOut
    • MIDI Treiber
  • 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

Mathematische Funktionen

  • Festpunkt Arithmetik und trigonometrische Funktionen
  • Vorberechnete trigonometrische Tabellen
  • 3D - Vektor/Matrizen/Quaternionen Funktionen (Translation, Rotation, Skalierung, Projektion)

Verschiedenes

  • Maus, Tastatur und Joystick Behandlungsroutinen
  • Hochauflösenede Timer Interrupts (10, 5 oder weniger ms, je nach Plattform)
  • Vertikale Retrace Simulation unter DOS
  • Manipulation von Konfigurationsdateien
  • Manipulation komprimierter Dateien im LZSS Format
  • Manipulation von komprimierten, Multi-Objekt 'Datafiles'
  • Tool zur Erzeugung von Datafiles (grabber)
  • Einfache grafische Oberfläche mit Dialogen und File-Browser

Ich bin neu bei Allegro. Was soll ich tun?

Zuerst, willkommen! Abhängig von Ihren Vorkenntnissen gibt es verschiedene Möglichkeiten.
Falls Sie ein Anfänger mit der Programmiersprache C sind, wird Ihnen Allegro nicht sehr viel nützen. Als eine C Bibliothek (C ist eine Programmiersprache), setzt Allegro die Kenntnis darüber voraus, wie man C Programme schreibt, kompiliert und ausführbare Dateien erzeugt. Leider müssen Sie das alles zuerst lernen. Eine Suchmaschine wie Google kann helfen, Tutorials und Dokumentation über C zu finden, oder ein entsprechendes Buch. C ist eine weit verbreitete Programmiersprache, die es schon lange gibt, es sollte also nich schwer sein, Informationen darüber zu finden.
Falls Sie bereits wissen, wie man C Programme schreibt, aber noch keine Erfahrung mit Spieleprogrammierung haben, ist Allegro genau das richtige für Sie. Als erstes sollten sie Allegro herunterladen. Empfehlenswert ist die stabile Version. Allegro beinhaltet eine umfassende Referenz-Dokumentation und über 40 Beispiele, die dabei helfen, mit einfachen Dingen zu beginnen, und dann Schritt für Schritt weitere Fähighkeiten zu erlernen. Es gibt auch ein kleines Demospiel, bei dem man Asteroiden abschießen muss. Die enthaltene Dokumentation kann man auch online lesen, und es gibt viele Tutorials und sogar einige Bücher, um Ihr Wissen zu erwitern.
Falls Sie ein erfahrener Spieleprogrammierer sind, können Sie sich leicht einen Überblick über den Aufbau von Allegroprogrammen verschaffen, indem Sie einen Blick auf die API werfen, oder sich die Beispielprogramme ansehen. Allegro erfordert einen DOS-artigen Programmierstil, bei dem das Programm in der main() Funktion startet, und keine Threads oder, wie in anderen Bibliotheken, Events, benötigt. Allegro versucht auch, Dinge so einfach wie möglich zu gestalten, und Dinge wie das setzen eines Grafikmodus benötigen nur einen Aufruf. Falls Sie einen anderen Stil bevorzugen (wir denken, es ist der bessere, da man sich so auf das Spiel konzentrieren kann anstatt auf das manipulieren komplizierter Funktionen), es gibt auch noch andere Bibliotheken mit ähnlicher Funktionalität, z.B. auf der Links Seite.
Ob sie ein Anfänger sind oder nicht, es gibt immer einen Weg, Kontakt mit anderen Allegrobenutzern aufzunehmen. Es gibt mehrere Mailing-Listen, in die man sich einschreiben kann. Normalerweise sind dort relativ wenige Meldungen, und nur wenn jemand eine Frage stellt, antwortet jeder. Es gibt auch ein Web-Forum auf Allegro.cc, mit einer wesentlich höheren Teilnehmerzahl (und ensprechender Signal-to-Noise Rate). Dort können Sie über Ihre Ideen und aktuellen Projekte reden. Jeder sieht gerne ein neues Allegro Spiel, vor allem, wenn Sie den Source Code dazugeben, sodass andere davon lernen können.