Extrait du cours Lua intégration d’un langage de script
scripter le comportement du « monde »
pourquoi ?
- simplier l’ecriture du comportement de chaque classe d’entite,
- aide pour le programmeur,
- mais surtout :exposer simplement la « logique » du comportement,
- et cacher la programmation « bas niveau » associee,
permettre aux LD de decrire les interactions / comportements.
integrer un langage de script
pourquoi ?
- separer le « code » et les « donnees »,
- le comportement d’une entite est une donnee pour le jeu,
- ne pas recompiler l’application a chaque test,
- change le cycle de mise au point du jeu.
classique :
coder, compiler, executer, reproduire les conditions permettant de tester la modication, tester …
data driven (comportement == donnee) :
executer, charger le script, tester, modier le script, continuer a tester …
presentation Lua
pourquoi Lua ?
- l’interpreteur est une librairie C,
- facile a inclure dans une application,
- rapide, + machine virtuelle JIT (x86),
- gestion memoire automatique (garbage collector),
- multi-threade (cooperatif) + co-routines,
- interactions entre code C/C++ et code lua interprete :
- variables globales,
- appel de fonctions C/C++ depuis lua,
- appel de fonctions lua depuis C/C++.
presentation de Lua
– define a function
function Erupt()
Camera.SetMode(ORBIT);
Camera.SetOrbitRate(PIOVER2);
entity= Entity.find(« Volcano »);
Camera.SetTargetEntity(entity);
end
– define a main
while(1)
Script.WaitSeconds (10);
Erupt()
end
……..

Cours Lua intégration d’un langage de script (246 KO) (Cours PDF)
