Allegro Knihovna pro programování her


Support This Project
Hostováno na: SourceForge
Stránka projektu

  

Představení

Allegro je přenositelná knihovna. Je určená hlavně na psaní her a multimediální programování. Původně ji započal Shawn Hargreaves jako knihovnu pro kompilátor DJGPP napsanou ve směsici C a assembleru.

Podle Oxford Companion to Music, Allegro je italsky «rychlé, plné života, jasné». Z toho byl vytvořen název, který je rekurzivním akronymem těchto slov: «Allegro Low LEvel Game ROutines».

Multiplatformní podpora

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

Grafické funkce

  • Vektorové kreslení:
    • pixely, čáry, pravoúhelníky, kružnice, elipsy, oblouky, Bezierovy křivky
    • vyplněné, s nebo bez vzorku
    • mnohoúhelníky: ploché, Gouraud, texturované (3D) a průsvitné
  • Sprites:
    • maskované, zkomprimované a zkompilované sprites
    • blitting, rotace, roztahování, zmenšení, alfa míchání, Gouraud šrafování
    • vestavěná podpora pro soubory BMP, LBM, PCX a TGA (další typy jsou podporovány pomocí rozšíření knihovny)
  • Barevné palety:
    • manipulace s barevnými paletami (čtení, zápis, konverze)
    • konverze barevných formátů RGB <-> HSV
  • Text:
    • podpora pro různá kódování a konverze, výchozí je UTF-8
    • bitmapové fonty (maskování, zbarvení, zarovnání)
  • Různé:
    • kreslení přímo na obrazovku nebo na jakkoli velkou bitmapu v paměti
    • hardwarový scrolling a triple buffering (pokud je dostupný), mode-X split screen
    • animační funkce pro formát FLI/FLC

Grafické ovladače

  • Unix:
    • X Window, DGA, fbcon
    • SVGAlib
    • VBE/AF
    • mode-X
    • VGA
  • Windows:
    • DirectX (v okně nebo fullscreen)
    • GDI
  • MacOS X:
    • Quartz (v okně nebo fullscreen)
  • BeOS:
    • BWindowScreen
    • BDirectWindow
  • Dos:
    • mód VGA 13h
    • mode-X (23 VGA rozlišení plus rozšířený režim 640x400)
    • SVGA módy v 8, 15, 16, 24 a 32 bitech na pixel
    • lineární VBE 2.0 framebuffer přístup
    • hardwarová akcelerace přes VBE/AF API (pokud je podporováno)
    • další grafické ovladače prostřednictvím projektu FreeBE/AF
  • OpenGL:
    • Addon AllegroGL umožňuje používat s Allegrem OpenGL grafiku.

Funkce pro zvuk

  • Midi:
    • nativní podpora pro hudební formát MIDI (s 64 simultánními efekty)
    • dynamická kontrola/reakce na music note on, note off, main volume, pan, pitch bend a změny programu
    • používání General MIDI patchů
    • můžete číst ve wavetable patchích pro MIDI soubory (SF2 a GUS patche)
  • Wave:
    • nativní podpora formátů WAV a VOC (hraní ve smyčce dopředu, dozadu nebo obousměrně)
    • zvukové proudy
    • upravení hlasitosti, pan, pitch, atd. během hraní

Zvukové ovladače

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

Matematické funkce

  • aritmetrické a trigonometrické rutiny v pevné desetinné čárce
  • předkalkulované trigonometrické tabulky
  • 3d manipulace s vektory/maticemi/čtveřicemi (překlady, rotace, měřítka, projekce)

Různé

  • správa myši, klávesnice a joysticku
  • časovače s vysokým rozlišením (rozlišení 10, 5 nebo méně ms, závisí na platformě)
  • vertical retrace simulation
  • manipulace s konfiguračními soubory
  • manipulace s komprimovanými soubory ve  formátu LZSS
  • manipulace s mnohoobjektovými komprimovanými datasoubory
  • nástroj pro tvorbu datasouborů (grabber)
  • jednoduché GUI na dialogy a výběr souborů

Vidím Allegro poprvé, co mám dělat?

Především, vítejte! Na základě vašich zkušeností byste se měl rozhodnout, jestli nebude lepší začít s něčím jiným než Allegrem.
Pokud jste úplným začátečníkem v programování v jazyku C, tak vám Allegro moc nepomůže. Allegro, jako knihovna pro jazyk C, předpokládá, že víte, jak napsat program v jazyce C, jak ho zkompilovat a slinkovat, aby se vytvořil spustitelný program. Toto se bohužel budete muset naučit jako první. Můžete použít nějaký vyhledávač (např. Google), abyste našli nějaký tutoriál a dokumentaci o programování v jazyce C nebo si našli a koupili nějakou knihu s touto tématikou. Jazyk C je velmi známý a existuje už mnoho let, takže nebudete mít při vyhledávání informací o tomto jazyku příliš mnoho problémů.
Pokud už víte, jak se píší programy v jazyce C, ale nemáte zkušenosti s psaním her, tak si vychutnejte a užijte učení se Allegra a jeho používání. Pokud si teď chcete Allegro stáhnout, tak doporučujeme, abyste si stáhli stabilní verzi. Allegro obsahuje dobrou dokumentaci a více jak 40 ukázkových programů, z kterých se můžete naučit základní věci, od kterých pak můžete dále rozvíjet svoje zkušenosti. Můžete si dokonce zahrát malou demonstrativní hru, ve které je cílem zničit asteroidy. Dokumentaci zabalenou v balíku s Allegrem můžete také najít online a je také mnoho tutoriálů a dokonce i nějaké knihy, které si můžete přečíst, abyste se ještě více zlepšili.
Pokud jste zkušený programátor her, můžete rychle získat představu, jak program používající Allegro vypadá, letmým přelétnutím po API nebo přečtením si ukázkových programů zabalených v balíku Allegra. Allegro se snaží udělat vytváření her co nejjednodušší, ale udržuje si flexibilitu, aby se daly použít i nízkoúrovňové síly, které jsou někdy ve stejný čas potřeba.
Ať už jste začátečníkem nebo ne, měl byste vědět, že je několik cest, jak komunikovat s dalšími uživateli Allegra. Existuje několik mailing listů, které můžete odebírat. Většinou jsou tiché a klidné do té doby, než někdo nezačne nějakou zajímavou diskuzi a každý nepřijde se svojí odpovědí. Je také webové fórum Allegro.cc s daleko větším počtem uživatelů (a také s větším poměrem noise-to-signal). Nestyďte se podělit s ostatními o svoje nápady a ukázat svoje projekty. Každý rád uvidí hru, která dostává Allegro až na samé hranice. Ještě lepší je, pokud poskytnete zdrojový kód ostatním, aby se z něho mohli také něco naučit.