Hlavní navigace

SDL: Hry nejen pro Linux (1)

Michal Turek 22. 2. 2005

V této sérii článků se vám představí knihovna SDL, která slouží pro vývoj her a multimediálních programů a jejíž největší předností je možnost zkompilovat zdrojový kód pro všechny běžně používané operační systémy. Ukázkové programy budou napsány v jazyku C/C++ a zkompilovatelné minimálně pod operačními systémy GNU/Linux a MS Windows.

Základní informace o SDL

Počátky knihovny Simple DirectMedia Layer (SDL) ukazují ke společnosti Loki Entertainment Software, která se zabývá portováním her do operačního systému GNU/Linux, a jejímu hlavnímu programátoru Samu Lantingovi. Byla navržena jako obecné nízkoúrovňové API (aplikační programové rozhraní) pro tvorbu her a obecně multimediálních aplikací. Z velké části zastřešuje funkce operačních systémů, a tím umožňuje téměř stoprocentní přenositelnost zdrojového kódu. Současná nejnovější stabilní verze je 1.2.8.

Logo SDL

SDL obsahuje funkce pro vytvoření okna (včetně fullscreenu) a správu událostí. Dvourozměrná grafika je zahrnuta přímo, 3D grafika je realizována pomocí OpenGL, které má přímou podporu. SDL dále umožňuje práci s audiem, CD-ROM a časovači, pokročilejší programátory jistě potěší podpora vícevláknového programování.

Jak už plyne z názvu (Simple…), je tato knihovna relativně malá. V jádru obsahuje pouze základní funkcionalitu, díky čemuž je přehledná a nezahrnuje programátora žádným gigantickým API. Vše „navíc“ poskytují různé nadstavby, např. SDL_image pro nahrávání obrázků (samotné SDL umí nahrát pouze formát BMP), SDL_sound a SDL_mixer pro zvuky, SDL_ttf pro truetype fonty, SDL_net pro síťování a další. V nejhorším případě musí programátor vše potřebné dotvořit sám, nicméně v naprosté většině případů už to někdo řešil před ním, stačí hledat.

Operační systémy a programovací jazyky

V součanosti je SDL portováno do operačních systémů GNU/Linux, MS Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, a QNX. Dále je ho možno najít na Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64 a SymbianOS, ale tyto systémy zatím nejsou oficiálně podporovány.

SDL je napsáno v jazyce C a samozřejmě funguje i v C++. Může být však používáno i v dalších jazycích. Jsou jimi Ada, C#, Eiffel, Erlang, Euphoria, Guile, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python a Ruby. Všechny příklady v tomto seriálu budou napsány v jazyce C nebo C++. Pokud vás zajímají jiné, odkazy na implementace naleznete na domovské stránce SDL.

Licence

SDL je k dispozici pod licencí GNU Lesser General Public License (GNU LGPL) verze 2 nebo novější. Podrobnosti ohledně licencování naleznete na licenční stránce SDL nebo přímo v textu licence.

Všechny ukázkové programy k těmto článkům budou šířeny, pokud výslovně nebude uvedeno jinak, pod licencí GNU General Public License (GNU GPL) verze 2 nebo novější.

Výhody a nevýhody

Hlavní výhody už byly popsány výše, jsou jimi především přenositelnost, jednoduchost, rychlost, flexibilita…

Co se týče nevýhod, existuje asi jen jediná. Dokumentace je sice celkem kvalitní, ale začíná být trochu zastaralá (z roku 2001) – neobsahuje popis některých nově přidaných vlastností. Dá se to však kompenzovat pročtením hlavičkových souborů, které jsou hodně a dobře komentované, dostupností zdrojových kódů a spoustou ukázkových programů. U online dokumentace je také spousta příspěvků přidaných uživateli (ve formě diskuse/fóra u každé stránky), které také často pomohou.

Kde lze SDL získat?

Adresa www.libsdl.org je prvním místem, které by měl programátor, hledající cokoliv ohledně SDL, navštívit. Lze zde nalézt naprosto vše včetně dokumentace, tutoriálů, FAQ, souborů pro download, stovek aplikací a knihoven využívajících SDL (většinou včetně zdrojových kódů) a spousty dalších věcí.

Samotné SDL bývá také standardní součástí naprosté většiny linuxových distribucí, u jiných operačních systémů bude nutné stahovat. Pokud plánujete vývoj nebo kompilaci programů, jsou nutné devel balíčky, které obsahují hlavičkové soubory, dynamické knihovny, zdrojové kódy, dokumentaci a několik ukázkových programů. Runtime knihovny jsou pouze pro spouštění již zkompilovaných programů.

Download

Pokračování

V následujícím dílu se podíváme na instalaci SDL a vytváření projektů v gcc, MS Visual C++ a Dev-C++. Na popis kódu se pravděpodobně ještě nedostane.

Našli jste v článku chybu?

22. 2. 2005 12:31

BillyThe.Pilgrim@seznam.cz (neregistrovaný)
Prosim? Asi mam trosku delsi vedeni, ale smysl tehle odpovedi mi nedochazi? Chapu to spravne ve smyslu: "No a co ze clanek je o nicem, hlavne ze aspon neco" + "Kdyz jsi na tenhle site nic nenapsal, nemas co kafrat do obsahu"?

Tak nevim, ale musim souhlasit s predchozim komentarem a navic pridat trochu vlastni kritiky. Tentokrat ale ne jenom na tenhle clanek, ale obecne na root.cz . Novy engine je urcite propracovanejsi (i kdyz subjektivne - graficky horsi nez minuly), ale b…

22. 2. 2005 15:21

smrt (neregistrovaný)
"Co si to dovolujes? Pomlouvat nas root.cz? Na root.cz se prece nechodi kvuli tomu jak vypada, ale kvuli tomu co se tam pise ne? Ja ctu root quli obsahu a jesli se ti to nelibi tak znas lynx?" Shit.... Kdyz tohle slysim tak bych vrhnul. Vyslo mi tu 7 clanku, na kazdym sem poctive potil krev nejmin 20 hodin cistyho casu a ted kdyz vidim jak je root sprasenej, clanky ocividne nikdo nevybira - asi jich maj malo a poustej sem kazdou kravinu. To kolem je taky hnus - vyblitej design - jooo, ale ze je …
Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Root.cz: Pinebook: linuxový notebook za 89 dolarů

Pinebook: linuxový notebook za 89 dolarů

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi