Manual Lua
A Linguagem Lua e suas Aplicac¸o
Waldemar Celes, Luiz Henrique de Figueiredo, Roberto Ierusalimschy
1
Introduc¸a˜ o
Uma pesquisa realizada em setembro de 2003 pela gamedev.net — um importante site para programadores de jogos — revelou que a grande maioria dos jogos (72%) e´ desenvolvida com o aux´ılio de uma linguagem de script.
Embora as linguagens de script n˜ao sejam definidas muito precisamente, elas apresentam um conjunto de caracter´ısticas comuns t´ıpicas. Em geral, as linguagens de script s˜ao linguagens interpretadas, tˆem tipagem dinˆamica e gerˆencia autom´atica de mem´oria, e fornecem facilidades para construc¸a˜ o de estruturas de dados dinˆamicas e manipulac¸a˜ o de cadeias de caracteres. Tipicamente, essas linguagens funcionam acopladas a programas hospedeiros implementados em linguagens compiladas tradicionais como C e C++. Uma outra caracter´ıstica importante de linguagens de script e´ que elas devem ser seguras, n˜ao sendo poss´ıvel acessar servic¸os n˜ao autorizados do programa hospedeiro. A combinac¸a˜ o dessas caracter´ısticas resulta numa excelente ferramenta para o desenvolvimento de jogos.
Acoplar uma linguagem de script em um jogo traz v´arios benef´ıcios. A linguagem de script pode ser usada para efetivamente implementar o script do jogo, para definir objetos e seus comportamentos, para gerenciar os algoritmos de inteligˆencia artificial e controlar os personagens, e ainda para tratar os eventos de entrada e descrever a interface com o usu´ario. Uma linguagem de script tamb´em desempenha um papel importante nas etapas de prototipac¸a˜ o, teste, depurac¸a˜ o e an´alise de adequac¸a˜ o do jogo. A escolha de uma linguagem de script simples permite ainda que seja dado a roteiristas e artistas acesso program´avel ao jogo, a fim de que eles que possam experimentar novas id´eias e variac¸o˜ es. Esses profissionais conduzem a maior parte do desenvolvimento real do jogo mas n˜ao s˜ao em geral programadores profissionais e n˜ao