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
DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

DigiZone.cz: Sony MP-CL1A: miniaturní projektor

Sony MP-CL1A: miniaturní projektor

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

Podnikatel.cz: Poslanci chtějí sebrat majetek Bakalovi

Poslanci chtějí sebrat majetek Bakalovi

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

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

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

DigiZone.cz: Samsung EVO-S: novinka pro Skylink

Samsung EVO-S: novinka pro Skylink

Lupa.cz: Aukro.cz mění majitele. Vrací se do českých rukou

Aukro.cz mění majitele. Vrací se do českých rukou

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu

Podnikatel.cz: EET pro e-shopy? Postavené na hlavu

EET pro e-shopy? Postavené na hlavu

DigiZone.cz: Ginx TV: pořad o počítačových hráčích

Ginx TV: pořad o počítačových hráčích

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

Podnikatel.cz: Znáte už 5 novinek k #EET

Znáte už 5 novinek k #EET

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

Podnikatel.cz: Babišovi se nedá věřit, stěžovali si hospodští

Babišovi se nedá věřit, stěžovali si hospodští

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

DigiZone.cz: Na jaká videa se vlastně díváme

Na jaká videa se vlastně díváme