Historie vývoje počítačových her (116. část – vývoj her v současnosti: od assembleru k PyGame)

20. 2. 2014
Doba čtení: 19 minut

Sdílet

V předchozí části seriálu o historii vývoje her jsme si stručně popsali postupnou změnu vývojových nástrojů na herních konzolích druhé až páté generace. Ovšem změny v programovacích jazycích se samozřejmě nevyhnuly ani dalšímu segmentu: hrám určeným pro domácí a posléze i pro osobní počítače.

Obsah

1. Historie vývoje počítačových her (116. část – vývoj her v současnosti: od assembleru k PyGame)

2. Využití skriptovacích jazyků pro tvorbu her

3. A-code: další specializovaný jazyk pro tvorbu textovek

4. Hledání ideálního skriptovacího jazyka pro počítačové hry

5. Lua o (nejenom) open source hry

6. LÖVE aneb Lua nemusí být pouze pomocný skriptovací jazyk

7. Moduly dostupné v systému LÖVE

8. Pygame a Pyglet: Python vrací úder

9. Odkazy na Internetu

1. Historie vývoje počítačových her (116. část – vývoj her v současnosti: od assembleru k PyGame)

V předchozí části seriálu o historii vývoje počítačových her jsme si řekli, že na herních konzolích lze dobře vysledovat postupnou změnu v používaných vývojových nástrojích. Herní konzole první generace používaly neměnnou herní logiku „zadrátovanou“ přímo do elektronických obvodů konzole či herního modulu, ovšem již u konzolí druhé generace můžeme mluvit o plnohodnotné programovatelnosti. U těchto konzolí se při vývoji používaly assemblery a vývoj typicky probíhal na jiném zařízení – původně na minipočítačích a posléze na osobních počítačích.

Obrázek 1: Hra Pitfall! – zde se musel při vykreslování na obrazovku přesně spočítat každý takt procesoru a navíc byli programátoři omezeni kapacitou paměti; jedná se tedy o typickou hru, při jejímž vývoji byl použit assembler (žádná jiná alternativa za těchto podmínek neexistovala).

I samotné assemblery se samozřejmě postupně vyvíjely od relativně jednoduchých nástrojů určených pro převod mnemotechnických kódů instrukcí do strojového kódu až po pokročilé nástroje s podporou maker, několikaprůchodovým překladem, podmíněným překladem atd. U konzolí čtvrté generace již lze vysledovat snahy o přechod z assemblerů k vyšším programovacím jazykům, ovšem skutečně tato změna nastala až s příchodem herních konzolí páté generace vybavených většinou 32bitovými mikroprocesory typu RISC, velkými kapacitami operačních pamětí a především pak velkou konkurencí na tomto trhu, což výrobce nutilo vydávat kvalitnější hry, a to v co nejkratším čase.

Obrázek 2: Grafická varianta hry Adventure naprogramovaná v assembleru pro herní konzoli Atari 2600. Binární obraz této hry zabíral přesně 4079 bajtů z dostupných 4096 bajtů; v čase běhu se využívalo pouze 128 bajtů operační paměti.

Podobný vývoj je možné sledovat i v případě her, které vznikaly na domácích osmibitových počítačích a později i na počítačích osobních. Komerční hry pro osmibitové mikropočítače byly v naprosté většině případů naprogramovány v assembleru, přičemž objem nutné programátorské práce vynikne zejména u těch her, které byly portovány na různé platformy (počítače vybavené mikroprocesorem Z80 na jedné straně versus systémy s MOS 6502 a zcela odlišnými grafickými subsystémy na straně druhé).

Obrázek 3: Hra 3D Interceptor spuštěná v emulátoru ZX Spectra. Veškeré výpočty byly samozřejmě naprogramovány v assembleru mikroprocesoru Zilog Z80.

Na poli domácích a osobních počítačů je ovšem situace ve skutečnosti mnohem zajímavější, protože – na rozdíl od většiny her určených pro herní konzole – se na počítačích setkáme i s hrami, které nevyžadují příliš velký výpočetní výkon a tudíž u nich může být výhodné použít některý skriptovací jazyk. Jak se dozvíme v navazujících kapitolách, byly skriptovací a specializované jazyky používány například v textovkách a později i v grafických adventurách typu point and click.

Obrázek 4: Hra Elite Plus v režimu grafické karty VGA – opuštění kosmické stanice.

2. Využití skriptovacích jazyků pro tvorbu her

Se skriptovacími jazyky, ať již specializovanými či univerzálními, se můžeme setkat i v některých nejstarších počítačových hrách. Příkladem mohou být skripty naprogramované v jazyku nazvaném Zork Implementation Language či též Zork Interactive Language překládané pomocí kompilátoru ZILCH do speciálního formátu zpracovávaného virtuálním strojem nazvaným Z-machine, jenž byl využíván v textovkách vyráběných společností Infocom (první verze vznikla již v roce 1979, tedy v herním dávnověku).

Obrázek 5: Úvodní informační obrazovka hry Zork III ve variantě pro osmibitové domácí počítače Atari.

Tento princip – využití speciálního skriptovacího jazyka a pro něj naprogramovaného virtuálního stroje – je pro textovky (jakožto hry málo závislé na výpočetním výkonu počítače) velmi výhodný, jelikož umožňoval poměrně rychlou konverzi her na různé typy počítačů. Postačilo pouze převést virtuální stroj a nikoli celou hru; navíc se jeden virtuální stroj mohl použít pro větší počet herních titulů. Mimochodem – virtuální stroje Z-machine (postupně jich vzniklo hned několik) jsou používány dodnes v univerzálních programech určených pro hraní mnoha typů textovek i na moderních zařízeních.

Obrázek 6: Obal kazet či disket se hrou Zork I: The Great Underground Empire (pro některé platformy se však používaly odlišné přebaly).

Vylepšením této myšlenky je Script Creation Utility for Maniac Mansion (SCUMM) využitý v mnoha grafických adventurách (Maniac Mansion, Loom, The Curse of Monkey Island atd.). Posléze se v těchto typech her prosadily i univerzální skriptovací jazyky, z nichž za zmínku stojí především Lua, neboť se jedná o jazyk s minimálními nároky na systémové zdroje a s dobrou vazbou na programovací jazyk C (C++) apod. Tento jazyk byl použit například ve hře Escape from Monkey Island pocházející z roku 2001 či v enginu World of Warcraft (což ovšem v žádném případě není textovka ani adventura :-).

Obrázek 7: Obal kazet či disket se hrou Zork III: The Dungeon Master (hra ovšem nemá nic společného se slavným Dungeon Masterem firmy FTL).

3. A-code: další specializovaný jazyk pro tvorbu textovek

Nezávisle na výše popsaném jazyku ZIL a pro něj vytvořenému virtuálním stroji Z-machine byly v minulosti vytvořeny i další systémy specializované pro tvorbu textovek. Druhý nejznámější historický systém založený na specializovaném jazyku vytvořil Pete Austin, jeden z pozdějších zakladatelů společnosti Level 9 Computing. Ten totiž na mainframu, na němž v té době pracoval, objevil textovku Colossal Cave Adventure a byl touto hrou nadšen, podobně jako Scott Adams (zakladatel Adventure International). Pete se ovšem rozhodl k poměrně odvážnému a technicky složitému kroku – převodu této hry na domácí počítač vybavený pouhými šestnácti kilobajty operační paměti.

Obrázek 8: Textovka Knight Orc v čistě textovém provedení (tj. bez statických obrázků). Na tomto screenshotu je zobrazena varianta této hry určená pro osmibitové počítače Atari.

Aby bylo vůbec možné do takto malého objemu operační paměti vložit jak textový parser, tak i popisy jednotlivých místností a předmětů (nehledě na vlastní logiku hry), musel Pete vytvořit vlastí interpret nazvaný A-code, který obsahoval mj. i rutiny pro komprimaci textu (uvádí se, že komprimace dosahovala v případě angličtiny zhruba padesáti procent, což není na relativně rychlý algoritmus špatné). Nezávisle na výše popsaném virtuálním stroji Z-machine tedy vznikl další virtuální stroj určený pro spouštění textovek, díky jehož existenci mohla nově vzniklá firma Level 9 Computing poměrně rychle portovat své textovky na mnoho různých počítačových platforem.

Obrázek 9: Jedna z variant hry Colossal Adventure, tentokrát pro počítač ZX Spectrum.

Interpret A-code a v něm vytvořená nová „šestnáctikilobajtová“ varianta hry Colossal Cave Adventure se staly prvním komerčním programem prodávaným pod logem firmy Level 9 Computing. Nejprve byly dostupné varianty pro počítač BBC a Nascom, ale v roce 1983 již byla hra nabízena pro všechny důležité typy domácích osmibitových počítačů: Atari (400, 800, 800XL, …), Commodore C64 a samozřejmě taktéž (jak se na firmu pocházející z Velké Británie sluší a patří :-) i pro ZX Spectrum.

Obrázek 10: Úvodní nabídka herní trilogie „Jewels of Darkness“ (opět vytvořeno s použitím A-Code). Screenshot byl pořízen v emulátoru osmibitového počítače Atari.

Z uvedeného roku prodeje hry je zřejmé, že firma Level 9 byla za konkurencí sice poněkud pozadu, nicméně díky existenci interpretru A-code portovaného na různé v té době používané počítačové architektury bylo možné další textovky vytvářet poměrně rychle, takže mezi roky 1983 až 1991 vzniklo více než dvacet her. Většinou se jednalo o čisté textovky, později o textovky doplněné statickými vektorovými obrázky; jen několikrát firma experimentovala například s hrami, kde hráč volil pouze jednu z několika možností (popravdě řečeno se jednalo o poněkud nudné tituly).

Obrázek 11: Úvodní nabídka herní trilogie „Silicon Dreams“. Screenshot byl pořízen v emulátoru osmibitového počítače Atari.

4. Hledání ideálního skriptovacího jazyka pro počítačové hry

Již na osmibitových domácích počítačích vzniklo mnoho her bez použití assembleru, popř. her kombinujících možnosti assembleru s nějakým vyšším programovacím jazykem. Vzhledem k tomu, že většina těchto počítačů obsahovala již ve své paměti ROM interpret programovacího jazyka BASIC, není divu, že byl pro amatérské a dokonce i pro komerčně vydávané hry využíván i tento programovací jazyk. Vzhledem k tomu, že se většinou jednalo o interpret (později se však objevily i překladače, které byly oblíbené například na Amize či v případě TurboBASICu i na IBM PC), mohly být v BASICu vytvořeny pouze hry nevyžadující velký výpočetní výkon. Typicky se opět jednalo o textovky, popř. o různé konverzační hry, mezi něž je asi možné zařadit i u nás známou hru Podraz III Františka Fuky.

Obrázek 12: Hra Artillery ve verzi pro osmibitové mikropočítače Atari. Tato varianta byla naprogramovaná v BASICu.

Nesmíme ovšem zapomenout ani na různé simulace typu Diktátor či Hamurabi. Ve druhém případě se jedná se o implementačně poměrně jednoduchou, ale po herní stránce zajímavou simulaci starověkého státu, v němž vládne panovník (historická postava) Chammurabi (v anglické transkripci Hammurabi, v názvu hry je však jedno písmeno vynecháno, protože na mnoha operačních systémech mohly mít názvy souborů pouze osm znaků). Cílem je zajištění prosperity a rozvoje státu v co nejdelším časovém období.

Obrázek 13: Hra Hamurabi ve verzi pro slavný osmibitový domácí počítač ZX Spectrum (autoři jsou z Polska).

Hra Hamurabi pro komunikaci s hráčem využívá jednoduché textové uživatelské rozhraní (takže ji bylo možné hrát i přes dálnopis) a tahový systém: hráč pro každý (simulovaný) rok ve hře volí, kolik se má založit nových polí, kolik se má zasadit plodin a naopak jak velké množství plodin má být použito jako jídlo. Na první pohled by se mohlo zdát, že se jedná o velmi jednoduchou až prostoduchou hříčku, ve skutečnosti je to ovšem hra dosti návyková, a to i v případě, kdy uživatel při zkoumání zdrojových kódů zjistí, jakým způsobem vlastně tato simulace ekonomiky starověkého státu funguje (další, poněkud čitelnější zdrojové kódy, jsou dostupné zde).

Obrázek 14: Jednu z variací na téma „artillery games“ představuje i hra „Gorily“ (Gorillas) spuštěná pomocí interpretru QBasicu. Tato hra byla standardní součástí MS DOSu a ukazovala některé možnosti QBasicu, ovšem její hlavní význam spočíval v tom, že ji bylo možné hrát i na školních či firemních počítačích bez nutnosti instalace jakýchkoli dalších aplikací (mnozí majitelé počítačů ani netušili, že tuto hru vlastní :-).

V pozdějších letech, zejména na osobních počítačích (Amiga, Atari ST, PC) se však můžeme setkat i s pokusy o použití dalších programovacích jazyků. Zajímavá je v tomto ohledu dnes již open source hra Abuse, která je z velké části napsána v LISPu, což je doposud poněkud opomíjený jazyk, minimálně v oblasti počítačových her. Nízkoúrovňové části této hry používají funkce nativní knihovny (na Linuxu například SDL), ovšem veškerá herní logika je skutečně naprogramována v LISPu a s troškou vůle a volného času lze z Abuse vytvořit zcela odlišnou hru. Zdánlivá (resp. přesněji řečeno tradovaná) malá výkonnost LISPu se zde neprojevuje, protože Abuse lze bez problémů hrát i na stařičkém počítači s mikroprocesorem 80486DX2.

Obrázek 15: Hra Abuse.

Obrázek 16: Ukázka části zdrojového kódu hry Abuse.

5. Lua a (nejenom) open source hry

Určitý přelom v použití skriptovacích jazyků pro tvorbu her nastal v roce 1993, kdy byla vydána první verze programovacího jazyka Lua. Tento programovací jazyk byl již od svých prvních verzí určen pro snadné vkládání (embedding) do jiných aplikací, mj. i her. A právě v oblasti počítačových her se Lua využívá velmi často, což ovšem není překvapivé, protože existuje relativně jednoduchá vazba mezi Luou a céčkem, samotný jazyk je vysokoúrovňový (dovolím si tvrdit, že skoro dosahuje kvalit Pythonu :-) a přitom pro spouštění skriptů je zapotřebí jen minimalisticky pojatý virtuální stroj. Tento jazyk byl použit v komerčních hrách, například v titulech Baldur's Gate, Grim Fandango, již zmíněný Escape from Monkey Island či herní série Blitzkrieg.

Obrázek 17: Hlavní menu hry Gusanos využívající jazyk Lua.

Příkladem open source hry využívající možností skriptovacích jazyků je klon Liera, který nese název Gusanos (jedná se ostatně o jméno stejného zvířete, ovšem přeložené do Španělštiny). Asi největší předností hry Gusanos jsou její velké možnosti konfigurace, protože veškeré nastavení je uloženo v množství textových (a tudíž i snadno editovatelných) souborů a logika hry je uložena ve skriptech naprogramovaných v jazyku Lua. Díky zmíněným možnostem konfigurace je možné v Gusanos změnit prakticky cokoli, čehož bylo využito i v Promode, což je sada konfiguračních souborů, skriptů a bitmap, které do hry Gusanos přidávají mnoho dalších možností, včetně nových multiplayerových režimů.

Obrázek 18: Herní prostředí hry Gusanos se podobá původní hře Liero.

Se skriptovacími jazyky prováděli pokusy i vývojáři roguelike her. Typickým příkladem jsou starší varianty hry Angband, do nichž byla minimálně mezi verzemi 3.0.0 a 3.0.6 přidána i podpora pro skriptování s využitím programovacího jazyka Lua. To ovšem v některých vývojářích i hráčích vyvolalo určitou nelibost, zejména z toho důvodu, protože integrace jazyka Lua do původního engine nebyla dokonalá – mnoho funkcionality bylo duplikováno mezi céčkovým kódem a Luou (na druhou stranu jedna z odvozených her – ToME – vazbu na programovací jazyk Lua s výhodou používá).

Obrázek 19: Angband pro Linux – tvorba hrdiny.

6. LÖVE aneb Lua nemusí být pouze pomocný skriptovací jazyk

Konkrétně v souvislosti s programovacím jazykem Lua můžeme vidět i určitou změnu v chápání tohoto jazyka. Ve hrách zmíněných v předchozí kapitole byla Lua využita skutečně pro skriptování, což znamenalo, že kromě skriptů byl zbytek hry naprogramován v některém kompilovaném programovacím jazyce, typicky v C či C++. Existují ovšem i celé hotové enginy, které jsou tak obecné, že programátoři při tvorbě nové hry mohou psát jenom skripty a nemusí se již vůbec zabývat „kompilovanou“ částí hry. Mezi tyto enginy či systémy patří i LÖVE.

Obrázek 20: Angband pro Linux – výběr rasy.

Systém LÖVE, který jsme si již popsali v rámci seriálu o programovacím jazyku Lua, je určen pro jednoduchou a především rychlou tvorbu her s 2D grafikou, hudbou a zvuky, které jsou naskriptované v programovacím jazyce Lua, popř. se v nich využívá pomocných funkcí naprogramovaných v céčku či C++. Velkou předností systému LÖVE je jeho snadná použitelnost, spočívající zejména v přehledném aplikačním programovém rozhraní (API) jednotlivých knihoven přítomných v tomto systému i jednoduché a snadno použitelné syntaxi jazyka Lua a jeho dynamickém typovém systému.

lua13_03

Obrázek 21: Několikařádkový skript v systému LÖVE.

Samotný systém LÖVE interně využívá (tj. volá funkce) několika céčkových a C++ knihoven, především boost (obecné algoritmy pro aplikace vytvářené v C++), SDL (nastavení grafických režimů, čtení stavu klávesnice, myši a joysticku), SDL_mixer (podpora hudby a zvuků), OpenGL (2D grafika, double buffering), DevIL (práce s rastrovými obrázky) a FreeType 2 (vykreslování písma), avšak vývojář, který pomocí LÖVE vytváří hry či jiné interaktivní aplikace s 2D grafikou, hudbou a zvuky, je od těchto knihoven zcela odstíněn aplikačním programovým rozhraním systému LÖVE a přijde tak do styku pouze se skripty napsanými v Lue.

lua13_04

Obrázek 22: Vykresleno pomocí LÖVE.

V současnosti je systém LÖVE podporován jak na Linuxu, tak i na operačních systémech Microsoft Windows XP, Vista, W7, W8 (lze jej však používat i na Microsoft Windows 98 SE, ovšem jen při překladu ze zdrojových kódů) i Mac OS X. Pro GNU/Linux, přesněji pro distribuce založené na Debianu, tj. i pro Ubuntu, je přímo na stránkách LÖVE k dispozici instalační balíček, ovšem tento systém naleznete i v repositářích dalších distribucí, například ve Fedoře apod. Instalační program existuje i pro operační systémy Microsoft Windows (32bitová i 64bitová verze), což znamená, že pro vytváření her v tomto systému ani není nutné, aby byl v systému přítomný překladač C či C++, což použití LÖVE na těchto operačních systémech dosti zjednodušuje (samotný LÖVE již v tomto případě obsahuje interpretr jazyka Lua i všechny požadované knihovny).

lua13_05

Obrázek 23: Vykresleno pomocí LÖVE (ukázka blendingu).

7. Moduly dostupné v systému LÖVE

Celý systém LÖVE je rozdělen do několika modulů (knihoven), jejichž jména vždy začínají prefixem love., například love.joystick či love.system (nejedná se samozřejmě o nic jiného, než o jmenný prostor implementovaný tak, že jsou všechny knihovny uloženy v globálním asociativním poli pojmenovaném love). Tyto moduly je možné do značné míry používat nezávisle na sobě. Například pro aplikace, které pouze vyžadují základní práci s grafikou, tj. načítání a úpravu rastrových obrázků, vykreslování základních rovinných útvarů, vytvoření okna či přepnutí grafického režimu a další podobné operace, postačuje použít jen knihovnu love.graphics; pro programy s animacemi se navíc využívá knihovna love.timer a při požadavcích na interaktivitu (tj. reakcí aplikace na operace prováděné uživatelem pomocí klávesnice, myši, touchpadu, joysticku či jiného vstupního zařízení) má programátor na výběr funkce umístěné v knihovnách love.mouse, love.keyboardlove.joystick atd. V následující tabulce jsou vypsány všechny moduly, jenž jsou v současné verzi systému LÖVE programátorům nabízeny:

Název modulu Nabízené funkce
love.graphics práce s okny, nastavení celoobrazovkového režimu, povolení či zákaz antialiasingu, vykreslování rastrových obrázků i základních geometrických tvarů, využití částicových systémů
love.font práce s fonty, rasterizace písma atd.
love.image dekódování rastrových obrázků
love.window spolupráce s window managerem (změna ikony…)
love.audio základní práce s hudbou a zvuky, spuštění, pozastavení a zastavení přehrávání, nastavení počtu zvukových kanálů, načítání hudby ze souborů typu WAV, AIFF, MP3, OGG, MIDI, MOD, XM i dalších formátů používaných hudebními trackery
love.sound dekódování souborů se zvuky a hudbou
love.physics řešení kolizí a popř. i vzájemných odrazů konvexních rovinných útvarů, seskupování těchto útvarů do těles (anglicky body)
love.mouse práce s myší – nastavení viditelnosti a pozice kurzoru, programový posun kurzoru na zadané souřadnice, zjištění aktuální pozice kurzoru myši
love.keyboard práce s klávesnicí – zjištění, zda je nějaká klávesa stlačena či nikoli (tato „knihovna“ ve skutečnosti obsahuje pouze jednu funkci, která například rozlišuje mezi pravým a levým Shiftem, numerický blok klávesnice atd.)
love.joystick podpora pro různé typy joysticků či podobných vstupních zařízeních (více na sobě nezávislých os, tlačítek a dalších ovládacích prvků)
love.filesystem načítání a ukládání souborů uložených v adresáři (adresářích) hry; přístup k těmto souborům je tedy jednodušší, než při použití standardního modulu (knihovny) io
love.timer na operačním systému nezávislý časovač s rozlišením jedné milisekundy, podpora pro získání počtu snímků vykreslených za sekundu (FPS – frames per second)
love.event práce s frontou událostí
love.thread vytváření vláken apod.
love.system získání základních informací o systému LÖVE a taktéž o použité platformě (Windows, Linux atd.)
love.math výpočet Bézierových křivek, generátor šumu atd. atd.

8. Pygame a Pyglet: Python vrací úder

I přesto, že je programovací jazyk Lua při tvorbě počítačových her úspěšně používán přes dvacet let, objevují se i nové knihovny a enginy, které i v této oblasti využívají jiné vyšší (řekněme poněkud nepřesně skriptovací) programovací jazyky. Za zmínku zcela jistě stojí Pygame, což je knihovna pro programovací jazyk Python, která interně volá funkce nativní knihovny SDL a několika dalších podpůrných knihoven. Myšlenka, na níž je Pygame postavena, je v mnoha ohledech podobná myšlence výše zmíněného systému LÖVE – implementace nízkoúrovňových operací nechť je vytvořena odborníky v programovacích jazycích C a C++; pokud budou tyto operace implementovány dostatečně rychle, je již možné zbytek hry naprogramovat ve vysokoúrovňovém jazyku Python. A ukazuje se, že je tato myšlenka – a obecně systém rozdělení aplikace mezi dva programovací jazyky – poměrně úspěšná, neboť v Pygame již vzniklo mnoho kvalitních her.

Obrázek 24: Logo knihovny Pygame.

Pygame je kvůli své relativně těsné vazbě na nativní knihovnu SDL určena především pro tvorbu 2D her, tj. různých strategií, plošinovek, RPG apod. Ve chvíli, kdy je zapotřebí vytvořit plnohodnotnou trojrozměrnou hru, je možné použít další knihovnu určenou pro programovací jazyk Python. Tato knihovna se jmenuje Pyglet a mezi její základní vlastnosti patří vazba na OpenGL a tedy i nepřímo na grafické akcelerátory. Kromě vazby na OpenGL však v Pyglet mohou programátoři najít i další zajímavé moduly, například pro práci s hudbou a se zvuky (ALSA, OpenAL, DirectSound), podporu pro různé formáty uložení hudby (zejména OGG/Vorbis), podporu pro načítání a zobrazování animací uložených v DivX, AVI, MPEG, H.263 atd.

Obrázek 25: Logo knihovny Pyglet.

ict ve školství 24

O tom, jak jednoduchý může být skript využívající funkce knihovny OpenGL volané přes Pyglet, se můžete přesvědčit na následujícím screenshotu. Úspornost zápisu by vynikla především při porovnání tohoto zdrojového kódu s ekvivalentním kódem napsaným v C či C++:

Obrázek 26: Ukázka skriptu využívajícího Pyglet.

9. Odkazy na Internetu

  1. Seriál o programovacím jazyku Lua (root.cz):
    http://www.root.cz/serialy/pro­gramovaci-jazyk-lua/
  2. Domovská stránka systému LÖVE
    http://love2d.org/
  3. Domovská stránka programovacího jazyka Lua
    http://www.lua.org/
  4. Web o Lieru, Gusanos, GeneRally, Atari atd.
    http://karelik.wz.cz/
  5. Web o Lieru, Gusanos
    http://karelik.wz.cz/gusanos.php
  6. GUSANOS
    http://gusanos.sourceforge.net/
  7. GUSANOS Download
    http://sourceforge.net/pro­jects/gusanos/
  8. Lua
    http://www.linuxexpres.cz/praxe/lua
  9. Lua
    http://cs.wikipedia.org/wiki/Lua
  10. Lua (programming language)
    http://en.wikipedia.org/wi­ki/Lua_(programming_langu­age)
  11. The Lua Programming Language
    http://www.tiobe.com/index­.php/paperinfo/tpci/Lua.html
  12. Lua Programming Gems
    http://www.lua.org/gems/
  13. LuaForge
    http://luaforge.net/
  14. Forge project tree
    http://luaforge.net/softwa­remap/trove_list.php
  15. gamedev.net: Lua
    http://www.gamedev.net/re­ference/programming/featu­res/lua/
  16. Category:Lua-scripted games
    http://en.wikipedia.org/wi­ki/Category:Lua-scripted_games
  17. Category:Lua-scriptable games
    http://en.wikipedia.org/wi­ki/Category:Lua-scriptable_games
  18. BZFlag
    http://en.wikipedia.org/wiki/BZFlag
  19. BZFlag.org
    http://bzflag.org/
  20. GrimE
    http://en.wikipedia.org/wiki/GrimE
  21. Grim Fandango
    http://www.mobygames.com/game/grim-fandango
  22. Escape from Monkey Island
    http://www.mobygames.com/game/escape-from-monkey-island
  23. Angband na rephial.org
    http://rephial.org/
  24. Angband.oook.cz
    http://angband.oook.cz/
  25. Angband – stránka s možností downloadu hry
    http://angband.oook.cz/download.php
  26. Angband a její klony (varianty)
    http://angband.oook.cz/variants.php
  27. Další seznam klonů hry Angband (podrobnější)
    http://roguebasin.rogueli­kedevelopment.org/index.php?ti­tle=List_of_Angband_varian­ts
  28. Angband (pevnost ve Středozemi)
    http://en.wikipedia.org/wiki/Angband
  29. Angband (hra)
    http://en.wikipedia.org/wi­ki/Angband_(video_game)
  30. Adventure International
    http://en.wikipedia.org/wi­ki/Adventure_International
  31. Stránky o firmě Infocom a jejích hrách
    http://www.csd.uwo.ca/Infocom/
  32. Zork I: The Great Underground Empire (Moby games)
    http://www.mobygames.com/game/dos/zork-the-great-underground-empire/reviews/reviewerId,4465/
  33. Zork I (Wikipedia)
    http://en.wikipedia.org/wiki/Zork_I
  34. Zork I Walkthrough
    http://www.gamefaqs.com/pc/564446-zork-i/faqs
  35. Zork I: The Great Underground Empire
    http://www.csd.uwo.ca/Info­com/zork1.html
  36. Zork II: The Wizard of Frobozz (Moby games)
    http://www.mobygames.com/game/dos/zork-ii-the-wizard-of-frobozz
  37. Zork II (Wikipedia)
    http://en.wikipedia.org/wiki/Zork_II
  38. Zork II: The Wizard of Frobozz
    http://www.csd.uwo.ca/Info­com/zork2.html
  39. Zork III: The Dungeon Master (Moby games)
    http://www.mobygames.com/game/zork-iii-the-dungeon-master
  40. Zork III (Wikipedia)
    http://en.wikipedia.org/wiki/Zork_III
  41. SAGA – Scott Adams Grand Adventure
    http://www.msadams.com/index.htm
  42. Player 4 Stage 1: The Productivity Eaters
    http://www.thedoteaters.com/p4_sta­ge1.php
  43. Textovky.cz – Textovkářův ráj
    http://www.textovky.cz/
  44. Scott Adams (game designer, Wikipedia)
    http://en.wikipedia.org/wi­ki/Scott_Adams_(game_desig­ner)
  45. Interview with Scott Adams (Adventure Classic Gaming)
    http://www.adventureclassic­gaming.com/index.php/site/in­terviews/129/
  46. Scott Adams game interpreter
    http://www.ifarchive.org/indexes/if-archiveXscott-adamsXinterpreters.html
  47. Ohlédnutí za herní historií: Textovky
    http://www.slunecnice.cz/ti­py/ohlednuti-za-herni-historii-textovky/
  48. Richard Hewison – Level 9: Past masters of the adventure game
    http://www.sinclairlair.co­.uk/level9.htm
  49. Level 9 Computing
    http://en.wikipedia.org/wiki/Level9
  50. Worm in Paradise – Level 9 (CZ recenze)
    http://sinclairzxspectrum­.cz/software/recenze/worm_in_pa­radise.php
  51. World of Spectrum: Jewels of Darkness
    http://www.worldofspectrum­.org/infoseekid.cgi?id=0011293
  52. World of Spectrum: Hry společnosti Level 9
    http://www.worldofspectrum­.org/infoseekpub.cgi?regex­p=^Level+9+Computing+Ltd$&lo­adpics=1
  53. BASIC Computer Games (published 1978) – Hammurabi
    http://atariarchives.org/ba­sicgames/showpage.php?page=78
  54. Hamurabi – zdrojový kód v BASICu
    http://www.dunnington.u-net.com/public/basicgames/HMRABI
  55. Hamurabi (Wikipedia)
    http://en.wikipedia.org/wiki/Hamurabi
  56. Hammurabi naprogramovaný v JavaScriptu
    http://www.hammurabigame.com/hammurabi-game.php

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.