Dit is een archief-pagina

Dit is een archief-pagina. Ik werk deze pagina niet meer actief bij.
Informatie kan verouderd zijn, en links lopen mogelijk dood.
Maar, misschien heeft iemand er nog wat aan.


Allegro Game Library

Allegro LogoAllegro is een game library (dus geen kant-en-klaar programma) voor het maken van (2D en platform) spel-programma's op verschillende C platforms, zoals onder Windows, onder DOS met DJGPP, onder Linux, etc. Portable, makkelijk, uitgebreid, plus dat er nog veel uitbreidingen bovenop verkrijgbaar zijn (bijvoorbeeld JPEG file import). Allegro zorgt voor de grafische afhandeling (sprites, palette control, images, etc), maar ook voor het spelen van geluidsfragmenten (.WAV files), midi muziek tracks, animaties, keyboard/joystick handling, en zo voort. Hierdoor kan je zelf met minder werk in C (of C++) een spel programmeren. Op de site ook documentatie, tutorials, en zo voort. Voor libraries voor 3D-spelletjes (bijvoorbeeld OpenGL library) zie mijn 3D pagina.

Hoe maak ik spelletjes, behalve met Allegro en C? Kijk op mijn Games pagina.

PinpinMet behulp van Allegro heb ik ook mijn gratis down te loaden PinPin spelletje gemaakt!

Bovendien kan ik de Allegro game library gebruiken onder Windows/DirectX7. Games in DirectX programmeren zonder iets van windows etc af te weten (zie voorbeeld verderop) !!!! Flitsend snelle games, voor de demo game in 640 x 480 full screen (8 bit color) draai ik zelfs krap 2000 fps... Voor Allegro werk ik met de recente 4.0.3 versie, met de Dev-C++ compiler.

Voor Dev_C++: gebruik de package manager: er is een Allegro package voor Dev_C++ die de hele zaak automatisch installeert (hoop ik). Zie menu Tools --> Check for Updates/Packages, en haal de Allego package op. Heb ik zelf overigens niet geprobeerd, daar ik Allegro nog op de oude manier had geïnstalleerd (en dat werkt, dus waarom wijzigen).

[ De oude manier... Je moet hebben van de Allegro site release 4.0.3 (all403.zip) of nieuwer, en dx70_mgw.zip (de DirectX library/header files). Voor Dev_C++: installeer de hele zaak zoals beschreven in de mingw32.txt versie in de directory docs/build van de all403.zip download. Dan compileert de library (in ieder geval bij mij onder Windows ME) haast zonder problemen. Het enige probleem dat ik had is dat ik 'make' enkele keren moest draaien, omdat'ie er wel eens halverwege mee ophield. Hint: draai voor 'make install' ook 'make compress' mits je 'upx' geïnstalleerd hebt (zie mijn C pagina): dit comprimeert de gegenereerde programma's etrc; scheelt weer disk-ruimte. Het demo-spelletje (met raket op meteorieten schieten, inclusief intro, MIDI/Wavegeluid en alles) levert een exe op van slechts zo'n 17 Kbyte!!! (plus de dll van 492 Kbyte, maar die overhead is voor ieder spel gelijk, en een datafile van zo'n 380K met geluid en graphics). ]

Voor DJGPP: lees de djgpp.txt file in de directory docs/build van de allegro download.

Een voorbeeld van de eenvoud van Allegro (onder DirectX!), compileerbaar als Win32 GUI (met -lalleg linker optie):

#include <allegro.h> /* de library */

int main()
{
    
allegro_init ();   /* initialise library */
    
set_gfx_mode (GFX_AUTODETECT,640,480,0,0); /* zet scherm mode */
    
clear(screen);    /* scherm wissen */
    
circlefill (screen,100,100,50,make_col(255,0,0)); /* x, y, radius, color:red */
    install_timer(); rest(5000); /* wacht voor 5 seconden */
    return 0;         /* klaar!!! */
};

Voor Perl: Er is nu ook een Allegro module (in een experimenteel stadium) om Allegro onder Perl te gebruiken.

Allegro komt met een aantal hulprogrammas, bijvoorbeeld om datafiles te maken waarin je al je graphics, sounds, midi files, en zo voort kan plaatsen, zodat je niet allemaal losse files bij elkaar hoeft te houden. Kan bovendien met een password, zodat anderen niet met je spel kunnen gaan prutsen. Komt ook met uitgebreide HTML (en andere formaten) documentatie.

Uitbreidingslibraries voor Allegro

Voor extra uitbreidingen voor Allegro, zoals een multi-threading/tasking uitbreiding (geef ieder spelobject zijn eigen thread?), links naar intro's en demos, utilities voor fonts, sound etc.: kijk op Allegro.cc. Allegro is ook beschikbaar voor andere platforms (DOS, Linux, .....). Ik heb zelf hier bijvoorbeeld een JPEG image display library (jpgalleg) gehaald, en een 'level editor' voor games (Mappy).

Wat er zoal meer met Allegro wordt gedaan? Kijk op de Allegro web ring!

Alternatief voor Allegro: SDL

Een ander alternatief voor 3D-graphics is SDL: (uitleg in het Engels) Simple DirectMedia Layer is a cross-platform multimedia library designed to provide level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."

Nog een alternatief: PLIB, een C/C++ library voor 3D games (OpenGL). Net als Allegro zowel voor Windows als voor Linux.