Seriál Programovací jazyk Lua

Při pohledu do technické specifikace některých her i dalších aplikací se můžeme dočíst, že pro vývoj byl mj. využit i skriptovací jazyk Lua. Jedná se o jednoduše použitelný programovací jazyk, který je skutečně mezi výrobci herního softwaru z několika příčin oblíbený. V tomto seriálu si řekneme, proč tomu tak je.

Využití knihovny debug v programovacím jazyku Lua

Programovací jazyk Lua sice ve své základní konfiguraci nabízí vývojářům pouze omezené množství knihoven, ovšem i funkce ze standardních knihoven jsou mnohdy velmi užitečné (a v mnoha jazycích je nenajdeme). Dobrým příkladem je knihovna nazvaná debug, kterou si dnes ve stučnosti představíme.

Pavel Tišnovský

3. 9. 2015 0:00
| 6

Profilery pro programovací jazyk Lua

Někteří vývojáři používající programovací jazyk Lua potřebují kromě samotného interpretru a standardních knihoven využívat i debugger a profiler. V této oblasti sice Lua nenabízí žádné unifikované řešení, ale jak debuggery, tak i profilery pro tento jazyk existují. Dnes si jeden z těchto nástrojů popíšeme.

Pavel Tišnovský

20. 8. 2015 0:00

Kooperace mezi jazykem Lua a nativním (céčkovým) kódem: knihovna FFI

Zatímco v předchozí části seriálu o využití jazyka Lua v praxi jsme se zabývali převážně rozhraním mezi C a Luou nabízeným přímo standardním interpretrem jazyka Lua, dnes se zaměříme na popis způsobu použití knihovny FFI, s níž je možné pracovat v tom případě, kdy se namísto standardního interpretru použije LuaJIT.

Pavel Tišnovský

13. 8. 2015 0:00

Kooperace mezi jazykem Lua a nativním (céčkovým) kódem

V předchozím článku o programovacím jazyku Lua jsme se mj. seznámili s možností transpřekladu skriptů naprogramovaných v Lue do jazyka C. Zdrojový kód v céčku je pak možné běžným způsobem přeložit. Mnohem častěji se v praxi využívá kooperace mezi nativním (céčkovým) kódem a skripty napsanými v Lue.

Pavel Tišnovský

4. 8. 2015 0:00

Interpretry, překladače, JIT překladače a transpřekladače programovacího jazyka Lua

Programovací jazyk Lua je standardně překládán do bajtkódu, který je následně interpretován, podobně jako je tomu u většiny dalších skriptovacích jazyků. Ve skutečnosti však mají vývojáři využívající tento programovací jazyk k dispozici i další možnosti: transpřekladače či JIT překladače.

Pavel Tišnovský

28. 7. 2015 0:00

Programovací jazyk Lua v roli skriptovacího jazyka pro WWW stránky

JavaScript, jakožto jazyk používaný (nejenom) pro tvorbu skriptů spouštěných v rámci webových prohlížečů, pravděpodobně není nutné představovat. Pro vývojáře však mohou být zajímavé projekty umožňující tvorbu skriptů pro WWW stránky v odlišném jazyku. Dnes se seznámíme se dvěma projekty pro jazyk Lua.

Pavel Tišnovský

21. 7. 2015 0:00

Metalua: užitečná rozšíření jazyka Lua

V dnešní části seriálu o programovacím jazyku Lua bude dokončen popis projektu Metalua, který umožňuje metaprogramování, tj. vývojářem řízenou modifikaci programového kódu generovaného překladačem. Popíšeme si především dvojici nástrojů „gg“ (grammar generator) a „mlp“ (Metalua parser) i některá užitečná rozšíření jazyka Lua.

Pavel Tišnovský

11. 8. 2009 0:00
| 1

Metalua: programovatelné rozšíření sémantiky jazyka Lua

Velmi zajímavé a užitečné rozšíření původního, v podstatě minimalistického, programovacího jazyka Lua představuje projekt nazvaný Metalua, který umožňuje metaprogramování, tj. řízenou změnu programového kódu generovaného překladačem. S využitím metaprogramování lze například do jazyka Lua přidat další operátory.

Pavel Tišnovský

4. 8. 2009 0:00
| 3

LuaJ a skriptování podle specifikace JSR-223

V dnešní části seriálu o programovacím jazyku Lua si ukážeme různé způsoby využití interpretru a překladače LuaJ, což je implementace jazyka Lua určená pro "Javovské" platformy J2SE i J2ME. Budeme se též zabývat využitím tohoto interpretru ve formě odpovídající API specifikovaného v JSR-223.

Pavel Tišnovský

28. 7. 2009 0:00
| 1

LuaJ – implementace jazyka Lua v Javě

V dnešní části seriálu o programovacím jazyku Lua si ukážeme, jakým způsobem je možné využít jednu z poměrně zdařilých implementací tohoto jazyka. Jedná se o implementaci nazvanou příhodně LuaJ, protože je vytvořena, na rozdíl od originální "céčkovské" Luy, v programovacím jazyku Java.

Pavel Tišnovský

21. 7. 2009 0:00
| 2

Hrátky se systémem LÖVE - dokončení

V dnešní části seriálu o programovacím jazyku Lua dokončíme popis „herního“ systému LÖVE. Řekneme si, jaké další vazby mezi tělesy je možné v tomto systému použít. Popis bude, podobně jako v předchozích částech seriálu, doprovázen animacemi i několika demonstračními příklady.

Pavel Tišnovský

14. 7. 2009 0:00
| 7

Hrátky se systémem LÖVE - pružné vazby mezi tělesy

V osmnácté části našeho seriálu o programovacím jazyce Lua a knihovnách určených pro tento jazyk si ukážeme, jakým způsobem je možné v systému LÖVE vytvořit pružné (elastické) vazby mezi několika tělesy a jak tyto vazby ovlivní vzájemnou interakci těles v simulovaném prostoru.

Pavel Tišnovský

7. 7. 2009 0:00
| 7

Hrátky se systémem LÖVE - kolize a odrazy těles II

V sedmnácté části seriálu o programovacím jazyce Lua se budeme, podobně jako v části předchozí, zabývat knihovnou love.physics. Ukážeme si především několik demonstračních příkladů, například simulaci pádu dominových kostek, zobrazení obalových těles použitých při detekci kolizí apod.

Pavel Tišnovský

30. 6. 2009 0:00
| 4

Hrátky se systémem LÖVE – kolize a odrazy těles

Další knihovnou nabízenou "herním" systémem LÖVE, kterou si v seriálu o programovacím jazyku Lua popíšeme, je knihovna nazvaná love.physics, pomocí které je možné provádět simulace vzájemných kolizí i odrazů dvojrozměrných těles s respektováním jejich tvaru, hybnosti i hmotnosti.

Pavel Tišnovský

23. 6. 2009 0:00
| 2

Hrátky se systémem LÖVE - částicové systémy

V patnácté části seriálu o programovacím jazyce Lua a systému LÖVE si řekneme, jakým způsobem je možné v aplikacích a hrách využívajících systém LÖVE použít částicové systémy (particle systems), například pro vytvoření animovaných efektů ohně, sněhu, mraků, tekoucí vody či různých výbuchů.

Pavel Tišnovský

16. 6. 2009 0:00
| 7

Vytváříme hru v systému LÖVE

Ve čtrnácté části seriálu o programovacím jazyku Lua bude ukázán způsob vytvoření jednoduché 2D hry s využitím systému LÖVE. Vzhledem ke snadno použitelnému API nabízeného systémem LÖVE je tvorba podobných typů her snadná a rychlá (řádově desítky minut), což je ideální například pro tvorbu prototypů.

Pavel Tišnovský

9. 6. 2009 0:00

Hrátky se systémem LÖVE

V dnešní části seriálu o programovacím jazyce Lua si na sedmi jednoduchých příkladech ukážeme, jakým způsobem je možné s využitím systému LÖVE vytvořit okno, vykreslit do tohoto okna geometrické obrazce, vytvářet animace a taktéž pracovat s fonty i rastrovými obrázky, které lze mj. použít jako sprity.

Pavel Tišnovský

2. 6. 2009 0:00

Lua + LÖVE: vytvořte si vlastní hru

Ve dvanácté části seriálu o programovacím jazyku Lua se seznámíme se souborem modulů (knihoven) LÖVE, pomocí nichž je možné vytvářet různé multiplatformní interaktivní aplikace, především hry. Velkou předností LÖVE je snadná použitelnost, takže se do vytvoření jednodušší hry mohou pustit i začátečníci.

Pavel Tišnovský

26. 5. 2009 0:00

Knihovny a frameworky pro programovací jazyk Lua

V jedenácté a následně i dvanácté části seriálu o programovacím jazyce Lua budou popsány standardní knihovny dodávané společně s překladačem a interpretrem tohoto jazyka. Taktéž se budeme zabývat několika užitečnými externími knihovnami, frameworky a v neposlední řadě i sémantickými rozšířeními Lua.

Pavel Tišnovský

19. 5. 2009 0:00

Programovací jazyk Lua a koprogramy

V desáté části seriálu o programovacím jazyce Lua si vysvětlíme způsob použití takzvaných koprogramů (coroutines), pomocí nichž je možné ve vytvářených skriptech implementovat například kooperativní multithreading, pracovat s vlastními iterátory, napodobit generátory známé z programovacího jazyka Python atd.

Pavel Tišnovský

12. 5. 2009 0:00
| 5

Objektově orientované programování v Lua II

V deváté části seriálu o programovacím jazyce Lua si ukážeme, jakým způsobem je možné vytvořit objektový systém s využitím metatabulek, událostí a metametod navázaných na události. Pomocí metatabulek lze zajistit jak volání metod objektu, tak i přetížení operátorů, vytvoření getterů a setterů apod.

Pavel Tišnovský

5. 5. 2009 0:00

Objektově orientované programování v Lua

V osmé části seriálu o programovacím jazyce Lua si ukážeme složitější příklad, v němž použijeme volání céčkových funkcí ze skriptů psaných v Lua, včetně kontroly počtu a typů parametrů. Dále si vysvětlíme, jakým způsobem lze v jazyku Lua psát aplikace s využitím objektově orientovaného programování.

Pavel Tišnovský

28. 4. 2009 0:00

Programovací jazyk Lua v aplikacích II

V sedmé části seriálu o programovacím jazyce Lua budou popsány rozdíly v aplikačním programovém rozhraní verze 5.0 a 5.1, vysvětlíme si způsob použití vlastního alokátoru paměti a taktéž si ukážeme, jakým způsobem lze kontrolovat a převádět parametry předávané z Lua skriptu do volaných céčkových funkcí.

Pavel Tišnovský

21. 4. 2009 0:00
| 6

Programovací jazyk Lua vestavěný do aplikací

V šesté části seriálu o jazyce Lua si ukážeme, jakým způsobem lze zabudovat překladač a interpret tohoto jazyka do vlastních aplikací. Také si popíšeme nejdůležitější funkce z aplikačního programového rozhraní, pomocí něhož mohou skripty napsané v Lua komunikovat s aplikací, do níž je Lua zabudována.

Pavel Tišnovský

14. 4. 2009 0:00

Funkce v programovacím jazyku Lua - uzávěry

V páté části seriálu o programovacím jazyku Lua si ukážeme, jakým způsobem je možné pracovat s takzvanými uzávěry (closures). Pomocí uzávěrů lze ve funkcionálních jazycích vytvořit objektový systém (tyto jazyky tedy nemají speciální syntaxi pro třídy a objekty), konstruují se řídicí struktury apod.

Pavel Tišnovský

7. 4. 2009 0:00

Funkce v programovacím jazyku Lua

Ve čtvrté části seriálu o programovacím jazyku Lua si popíšeme, jak je možné definovat nové funkce, předávat jim parametry (včetně možnosti použití proměnného a volitelného počtu parametrů), získávat návratové hodnoty z funkcí a další užitečné postupy, které Lua převzala především z funkcionálních jazyků.

Pavel Tišnovský

31. 3. 2009 0:00

Operátory a asociativní pole v jazyku Lua

Ve třetí části seriálu o programovacím jazyku Lua si popíšeme všechny operátory nabízené tímto jazykem a taktéž se zmíníme o práci s asociativními poli, protože tento datový typ představuje základ jak pro tvorbu "klasických" indexovaných polí, tak i seznamů, zásobníků, front, stromů, struktur typu záznam a dokonce i objektů.

Pavel Tišnovský

24. 3. 2009 0:00

Základní konstrukce v programovacím jazyku Lua

Ve druhé části našeho nového seriálu o programovacím jazyku Lua se společně seznámíme se základními programovými konstrukcemi a datovými typy, které jsou v tomto jazyce podporovány. Ukážeme si především práci s proměnnými, tvorbu bloků, podmíněných příkazů a také programových smyček.

Pavel Tišnovský

17. 3. 2009 0:00

Programovací jazyk Lua

Při pohledu do technické specifikace některých her i dalších aplikací se můžeme dočíst, že pro vývoj byl mj. využit i skriptovací jazyk Lua. Jedná se o jednoduše použitelný programovací jazyk, který je skutečně mezi výrobci herního softwaru z několika příčin oblíbený. V tomto seriálu si řekneme, proč tomu tak je.

Pavel Tišnovský

10. 3. 2009 0:00
Vitalia.cz: Signál roztroušené sklerózy: brnění končetin

Signál roztroušené sklerózy: brnění končetin

120na80.cz: I tuto vodu můžete pít

I tuto vodu můžete pít

Podnikatel.cz: Pohlaví, věk, víra a další. Při pohovoru tabu

Pohlaví, věk, víra a další. Při pohovoru tabu

Podnikatel.cz: 3 velké průšvihy obchodních řetězců

3 velké průšvihy obchodních řetězců

Lupa.cz: IT scéna po brexitu: přijde exodus vývojářů?

IT scéna po brexitu: přijde exodus vývojářů?

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Podnikatel.cz: Daň z nemovitosti? Změny budou v říjnu

Daň z nemovitosti? Změny budou v říjnu

Podnikatel.cz: Účtenky v rámci EET? Klidně emailem

Účtenky v rámci EET? Klidně emailem

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Měšec.cz: Banky umí platby na kartu, jen to neříkají

Banky umí platby na kartu, jen to neříkají

DigiZone.cz: Sázka na e-sporty stanici Prima vychází

Sázka na e-sporty stanici Prima vychází

Podnikatel.cz: Polská vejce na českém pultu Albertu

Polská vejce na českém pultu Albertu

Vitalia.cz: Bio vejce nepoznají ani veterináři

Bio vejce nepoznají ani veterináři

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Měšec.cz: Test: Výběry z bankomatů v cizině a kurzy

Test: Výběry z bankomatů v cizině a kurzy

Vitalia.cz: Klíšťata letos řádí, skvrna se udělá jen někomu

Klíšťata letos řádí, skvrna se udělá jen někomu

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

Vitalia.cz: Cheese&Chilli: předsudky o nudné britské kuchyni

Cheese&Chilli: předsudky o nudné britské kuchyni

Podnikatel.cz: Nereaguje na výzvu ČOIky, zaplatí milion

Nereaguje na výzvu ČOIky, zaplatí milion