Hlavní navigace

SDL: Hry nejen pro Linux (1)

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.

Tweetni to Odměnte autora  Jak to funguje?

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.

Michal Turek

Autor studuje první ročník FEL ČVUT Praha, baví ho vše kolem počítačů, zvláště programování v jazycích PHP a C/C++ včetně počítačové grafiky pod knihovnou OpenGL.

Ohodnoťte jako ve škole:
Průměrná známka 2,85
Tweetni to Odměnte autora  Jak to funguje?

Vzdělávejte sebe i své lidi





.
  •  
    Firemní školení pro web a online marketing
  • Obsah školení přizpůsobíme na míru vaší firmě.
  • Odnesete si informace, které ihned uplatníte v praxi.

Detailní informace o individuálních školeních pro firmy »

       

Přehled názorů

Co to je?
Lembloud 22. 2. 2005 07:23
Nový
└ 
Re: Co to je?
oldium 22. 2. 2005 13:56
Nový
Vizual....
anonymní uživatel 22. 2. 2005 08:09
Nový
Quo vadis, root.cz?
jm 22. 2. 2005 08:30
Nový
├ 
Re: Quo vadis, root.cz?
anonymní uživatel 22. 2. 2005 08:55
Nový
│
├ 
Re: Quo vadis, root.cz?
Lembloud 22. 2. 2005 09:11
Nový
│
│
└ 
Re: Quo vadis, root.cz?
Jirka 22. 2. 2005 09:33
Nový
│
│
 
└ 
Re: Quo vadis, root.cz?
jm 22. 2. 2005 09:52
Nový
│
│
 
 
└ 
Re: Quo vadis, root.cz?
Jirka 22. 2. 2005 13:33
Nový
│
│
 
 
 
└ 
Re: Quo vadis, root.cz?
jm 22. 2. 2005 13:40
Nový
│
│
 
 
 
 
└ 
Re: Quo vadis, root.cz?
Jirka 22. 2. 2005 15:47
Nový
│
│
 
 
 
 
 
└ 
Re: Quo vadis, root.cz?
jm 22. 2. 2005 16:05
Nový
│
│
 
 
 
 
 
 
└ 
Re: Quo vadis, root.cz?
Jirka 22. 2. 2005 16:32
Nový
│
└ 
Re: Quo vadis, root.cz? Trochu obsahlejsi odpoved...
BillyThe.Pilgrim@seznam.cz 22. 2. 2005 12:31
Nový
│
 
├ 
Re: Quo vadis, root.cz? Trochu obsahlejsi odpoved...
smrt 22. 2. 2005 15:21
Nový
│
 
│
└ 
Re: Quo vadis, root.cz? Trochu obsahlejsi odpoved...
Martin 'Bilbo' Petricek 22. 2. 2005 20:21
Nový
│
 
│
 
└ 
Re: Quo vadis, root.cz? Trochu obsahlejsi odpoved...
smrt 22. 2. 2005 23:25
Nový
│
 
└ 
Re: Quo vadis, root.cz? Trochu obsahlejsi odpoved...
lyon 22. 2. 2005 18:06
Nový
├ 
Re: Quo vadis, root.cz?
VZ 22. 2. 2005 09:35
Nový
│
└ 
Re: Quo vadis, root.cz?
Jirka 22. 2. 2005 09:37
Nový
│
 
└ 
Re: Quo vadis, root.cz?
anonymní uživatel 22. 2. 2005 23:24
Nový
└ 
Re: Quo vadis, root.cz?
Honza Bartoš 22. 2. 2005 17:07
Nový
 
└ 
Re: Quo vadis, root.cz?
jm 22. 2. 2005 18:07
Nový
OS/2
anonymní uživatel 22. 2. 2005 08:34
Nový
└ 
Ja uz neco kdysi cetl
anonymní uživatel 22. 2. 2005 13:39
Nový
Timer
debko 22. 2. 2005 13:57
Nový
└ 
Re: Timer
Michal Turek 11. 8. 2005 19:26
Nový
2D akcelerace
anonymní uživatel 22. 2. 2005 14:03
Nový
└ 
Re: 2D akcelerace
Michal Turek 26. 2. 2005 15:34
Nový
Opravdu 0:00
Doli 22. 2. 2005 16:12
Nový
└ 
Re: Opravdu 0:00
Honza Bartoš 22. 2. 2005 17:06
Nový
 
└ 
Re: Opravdu 0:00
Pichi 22. 2. 2005 18:45
Nový
 
 
└ 
Re: Opravdu 0:00
VD 22. 2. 2005 20:05
Nový
rypnuti
isp 22. 2. 2005 21:12
Nový
└ 
Re: rypnuti
Lubos Soltes 22. 2. 2005 22:35
Nový
 
├ 
Re: rypnuti
Adam 22. 2. 2005 22:52
Nový
 
└ 
Re: rypnuti
Ivo Danihelka 23. 2. 2005 00:22
Nový
Cely serial v PDF
Michal Turek 11. 8. 2005 19:28
Nový
Resize, wokno-> fulscreen apod.
anonymní uživatel 13. 9. 2006 15:30
Nový
└ 
Re: Resize, wokno-> fulscreen apod.
Michal Turek 17. 9. 2006 22:05
Nový
 
└ 
Re: Resize, wokno-> fulscreen apod.
anonymní uživatel 22. 5. 2007 13:07
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem