Lua para Jogos

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Lua para Jogos - Presentation Transcript

    1. Descobrindo Lua S´rgio Queiroz de Medeiros e smedeiros@inf.puc-rio.br LabLua Campus Party 2008 S´rgio Queiroz de Medeiros e Descobrindo Lua 1
    2. Lua ◮ Uma linguagem de script: ◮ Robusta; ◮ R´pida; a ◮ Port´vel; a ◮ Linguagem de extens˜o; a ◮ Pequena; ◮ Livre; S´rgio Queiroz de Medeiros e Descobrindo Lua 2
    3. Lua ◮ Alguma semelhan¸a com outras linguagens de script (Perl, c Python, Tcl); ◮ Linguagem de descri¸˜o de dados (anterior a XML); ca ◮ Linguagem de extens˜o extens´ a ıvel: ◮ Enfatiza o desenvolvimento em m´tiplas linguagens u S´rgio Queiroz de Medeiros e Descobrindo Lua 3
    4. Importˆncia a ◮ ´ Unica linguagem criada em um pa´ em desenvolvimento a ıs ganhar proje¸˜o mundial; ca ◮ De outra forma: unica linguagem relevante que n˜o foi ´ a desenvolvida no eixo EUA/Europa/Jap˜o. a ◮ Jap˜o == Ruby a S´rgio Queiroz de Medeiros e Descobrindo Lua 4
    5. Usos de Lua ◮ Especialmente utilizada em jogos; ◮ Uma pesquisa informal feita em 2003 pelo site gamedev.net apontou Lua como a linguagem de script mais utilizada para jogos; S´rgio Queiroz de Medeiros e Descobrindo Lua 5
    6. Lua em Jogos ◮ ”It is easy to see why Lua is rapidly becoming the de facto standard for game scripting.- Artificial Intelligence for Games, Morgan Kaufmann,2006; ◮ ”It’s quite possible that game developers will look back at the 2000s as the decade of Lua- Game Programming Gems 5, Charles River Media, 2005. S´rgio Queiroz de Medeiros e Descobrindo Lua 6
    7. Jogos que Usam Lua S´rgio Queiroz de Medeiros e Descobrindo Lua 7
    8. Jogos que Usam Lua S´rgio Queiroz de Medeiros e Descobrindo Lua 8
    9. Jogos que Usam Lua S´rgio Queiroz de Medeiros e Descobrindo Lua 9
    10. Jogos que Usam Lua S´rgio Queiroz de Medeiros e Descobrindo Lua 10
    11. Mais Aplica¸˜es co ◮ Adobe Lightroom is ’the complete, elegant environment for the art and craft of digital photography from raw capture to creative output’. Over 40% of Adobe Lightroom is written in Lua. Mark Hamburg (Adobe Fellow) S´rgio Queiroz de Medeiros e Descobrindo Lua 11
    12. Mais Aplica¸˜es co S´rgio Queiroz de Medeiros e Descobrindo Lua 12
    13. Mais aplica¸˜es co ◮ Impressoras Olivetti; ◮ P´s-produ¸˜o de filmes; o ca ◮ Monitoramento remoto; ◮ Desenvolvimento Web; S´rgio Queiroz de Medeiros e Descobrindo Lua 13
    14. Raz˜es para usar Lua o ◮ Portabilidade ◮ Simplicidade ◮ Pequeno tamanho ◮ ”Acoplabilidade” ◮ Eficiˆncia e S´rgio Queiroz de Medeiros e Descobrindo Lua 14
    15. Portabilidade ◮ Lua roda em praticamente todas as plataformas conhecidas: ◮ Unix ◮ Windows ◮ Windows CE ◮ Symbian ◮ Palm ◮ PS2 ◮ Escrita em ANSI C ∩ ANSI C++ S´rgio Queiroz de Medeiros e Descobrindo Lua 15
    16. Simplicidade ◮ Somente um tipo num´rio (geralmente double); e ◮ Um unico tipo de estruturas de dados: ´ ◮ Tabelas ◮ Mecanismos ao inv´s de pol´ e ıticas ◮ e.g., orienta¸˜o a objetos; ca S´rgio Queiroz de Medeiros e Descobrindo Lua 16
    17. Pequeno Tamanho ◮ Menos de 200k; ◮ Distribui¸˜o completa cabe (com folgas) em um disquete; ca ◮ N´cleo + Bibliotecas u ◮ N´cleo com menos de 100k; u ◮ Bibliotecas independentes (podem ser removidas). S´rgio Queiroz de Medeiros e Descobrindo Lua 17
    18. Acoplabilidade ◮ Lua ´ uma biblioteca C; e ◮ API simples e bem definida: ◮ modelo de pilha ◮ Biderecional; ◮ Acoplada em: ◮ C/C++ ◮ Java ◮ Fortran, ◮ C# ◮ Perl ◮ Ruby ◮ Ada ◮ etc S´rgio Queiroz de Medeiros e Descobrindo Lua 18
    19. Eficiˆncia e ◮ Benchmarks independentes mostram Lua como uma das mais r´pidas linguagems de script interpretadas com tipagem a dinˆmica; a ◮ Lua n˜o ´ r´pida somente em benchmarks. a e a S´rgio Queiroz de Medeiros e Descobrindo Lua 19
    20. Lua x Ruby S´rgio Queiroz de Medeiros e Descobrindo Lua 20
    21. Lua x Perl S´rgio Queiroz de Medeiros e Descobrindo Lua 21
    22. Lua x PHP S´rgio Queiroz de Medeiros e Descobrindo Lua 22
    23. Lua x Python S´rgio Queiroz de Medeiros e Descobrindo Lua 23
    24. LuaJIT ◮ Compilador Just In Time para Lua; S´rgio Queiroz de Medeiros e Descobrindo Lua 24
    25. Hist´ria de Lua o S´rgio Queiroz de Medeiros e Descobrindo Lua 25
    26. Como tudo come¸ou c ◮ Lua nasceu em 1993, dentro do Tecgraf, na PUC-Rio; ◮ Criadores: ◮ Roberto Ierusalimschy; ◮ Luiz Henrique de Fiqueiredo; ◮ Waldemar Celes. S´rgio Queiroz de Medeiros e Descobrindo Lua 26
    27. O Ambiente ◮ Tecgraf foi criado em 1987; ◮ Laborat´rio de pesquisa e desenvolvimento; o ◮ Pol´ ıtica de reserva de mercado para hardware e software; ◮ Vigorou de 1977 a 1992; ◮ Precisa de alguma coisa? Fa¸a! c S´rgio Queiroz de Medeiros e Descobrindo Lua 27
    28. Constru¸˜o de Interfaces Gr´ficas ca a ◮ 1992: Projeto entre PUC-Rio e PETROBRAS (CENPES); ◮ Interfaces gr´ficas para programas de simula¸˜o. a ca S´rgio Queiroz de Medeiros e Descobrindo Lua 28
    29. DEL - Linguagem para Especifica¸˜o de Di´logos ca a ◮ Descri¸˜o de dados; ca ◮ Defini¸˜o de formul´rio: ca a ◮ Lista de parˆmetros; a ◮ tipo e valores default. S´rgio Queiroz de Medeiros e Descobrindo Lua 29
    30. Limita¸˜es de DEL co ◮ Estruturas de controle; ◮ Predicados; ◮ Necessidade de maior poder de express˜o. a S´rgio Queiroz de Medeiros e Descobrindo Lua 30
    31. PGM - Programa Gr´fico Mestre a ◮ 1993: projeto com a PETROBRAS; ◮ Visualiza¸˜o de perfis geol´gicos (com op¸˜es de ca o co configura¸˜o); ca S´rgio Queiroz de Medeiros e Descobrindo Lua 31
    32. SOL - Simple Object Language ◮ Linguagem para descri¸˜o de objetos; ca ◮ Sintaxe inspirada no BibTeX. S´rgio Queiroz de Medeiros e Descobrindo Lua 32
    33. Programa SOL type @track {x:number, y:number=23, z} type @line {t:@track=@track{x=8}, z:number*} -- create an object ’t1’, of type ’track’ t1 = @track{y=9, x=10, z=\"hi!\"} l = @line{t=@track{x=t1.y, y=t1.x}, z=[2,3,4]} S´rgio Queiroz de Medeiros e Descobrindo Lua 33
    34. Limita¸˜es de SOL co ◮ Recursos para constru¸˜o de di´logos; ca a ◮ Mecanismos de programa¸˜o procedural; ca ◮ Mecanismos de abstra¸˜o mais poderosos. ca S´rgio Queiroz de Medeiros e Descobrindo Lua 34
    35. DEL + SOL = ? ◮ DEL e SOL compartilhavam v´rios problemas; a ◮ Achar uma solu¸˜o comum: ca ◮ Roberto Ierusalimschy (PGM) ◮ Luiz Henrique (DEL) ◮ Waldemar Celes (PGM) S´rgio Queiroz de Medeiros e Descobrindo Lua 35
    36. Precisa-se de uma linguagem ◮ Estruturas de controle, sub-rotinas, atribui¸˜o; ca ◮ Capaz de descrever dados facilmente; ◮ Port´vel; a ◮ Converse amigavelmente com C; ◮ Sintaxe f´cil. a S´rgio Queiroz de Medeiros e Descobrindo Lua 36
    37. 1993 ◮ Tcl estava dispon´ ıvel; ◮ Scheme e Lisp tamb´m; e ◮ Python estava nascendo; ◮ Vamos fazer nossa pr´pria linguagem! :-) o S´rgio Queiroz de Medeiros e Descobrindo Lua 37
    38. Adeus, SOL! ◮ SOL estava saindo de cena; ◮ um novo nome foi sugerido... S´rgio Queiroz de Medeiros e Descobrindo Lua 38
    39. Bem-vinda, Lua! S´rgio Queiroz de Medeiros e Descobrindo Lua 39
    40. Um pouco de Lua 1.0 ◮ Similaridades com SOL t1 = @track {x = 10.3, y = 25.9, title = \"depth\"} S´rgio Queiroz de Medeiros e Descobrindo Lua 40
    41. Um pouco de Lua 1.0 ◮ Mas bem diferente t1 = @track {x = 10.3, y = 25.9, title = \"depth\"} function track (t) if not t.x then t.x = 0.0 end if type (t.x) ~= \"number\" then print (\"invalid ’x’ value\") end if type (t.y) ~= \"number\" then print (\"invalid ’y’ value\") end end S´rgio Queiroz de Medeiros e Descobrindo Lua 41
    42. Lua 1.0 ◮ Chamada de 1.0 posteriormente; ◮ “The simplest thing that could possibly work” ◮ tabelas implementadas via listas! ◮ Implementa¸˜o padr˜o: ca a ◮ yacc + lex ◮ m´quina de pilha a ◮ Menos de 6000 linhas de c´digo C. o S´rgio Queiroz de Medeiros e Descobrindo Lua 42
    43. Lua 1.0 ◮ Expectativas: solucionar problemas com PGM e DEL ◮ dispon´ para uso em outros projetos do Tecgraf ıvel ◮ Correspondeu `s expectativas: a ◮ DEL e PGM usaram Lua com sucesso ◮ PGM ainda est´ sendo usado a ◮ Foi um grande sucesso no Tecgraf S´rgio Queiroz de Medeiros e Descobrindo Lua 43
    44. Usando Lua adoidado S´rgio Queiroz de Medeiros e Descobrindo Lua 44
    45. Lua 1.1 ◮ 1994: primeira vers˜o lan¸ada publicamente; a c ◮ V´rios usu´rios reais; a a ◮ Manual de referˆncia; e ◮ Defini¸˜o e documenta¸˜o da API com C; ca ca ◮ Licen¸as para uso comercial negociadas. c S´rgio Queiroz de Medeiros e Descobrindo Lua 45
    46. Ganhando o Mundo ◮ Artigo publicado em 1996 na revista Dr. Dobb’s; ◮ Bret Mogilefsky (LucasArts); ◮ 1998: lan¸amento de Grim Fandango; c A tremendous amount of the game was written in Lua ◮ Mesa redonda na Game Developer’s Conferece (principal evento para desenvolvedores de jogos). S´rgio Queiroz de Medeiros e Descobrindo Lua 46
    47. lua-l ◮ 1997: cria¸˜o da lista de discuss˜o de Lua; ca a ◮ Principal f´rum da linguagem; o ◮ Menos de 10% dos usu´rios s˜o do Brasil; a a ◮ Mais de 40000 mil mensagens. S´rgio Queiroz de Medeiros e Descobrindo Lua 47
    48. Linhas de C´digo com o Tempo o S´rgio Queiroz de Medeiros e Descobrindo Lua 48
    49. Evolu¸˜o ca ◮ ˆ Enfase nos requisitos originais: ◮ ”minimalismo pragm´tico” a ◮ mecanismos mais gerais ◮ ˆnfase em fun¸˜es e co S´rgio Queiroz de Medeiros e Descobrindo Lua 49
    50. Lua atualmente ◮ Site com 4.000 visitas por dia ◮ de mais de 100 pa´ ıses ◮ 14.000 downloads por mˆs e ◮ Lista com mais de 1.400 participantes ◮ Compromisso com estabilidade ◮ Lua 4.0 ficou mais de dois anos sem altera¸˜es co ◮ Lua 5.0 foi lan¸ada em mar¸o de 2003 c c S´rgio Queiroz de Medeiros e Descobrindo Lua 50
    51. Lua Atualmente ◮ Licen¸a atual: MIT c ◮ uso livre, n˜o ”viral” a ◮ Modelo de desenvolvimento centralizado ◮ Participa¸˜o da comunidade: ca ◮ lista ◮ patches para vers˜es alternativas o ◮ LuaForge S´rgio Queiroz de Medeiros e Descobrindo Lua 51
    52. Lua Atualmente ◮ LuaWorkshop: ◮ Encontro da comunidade Lua ◮ 2005: Estados Unidos; ◮ 2006: Holanda; ◮ 2008: Washinghton D.C., Estados Unidos. S´rgio Queiroz de Medeiros e Descobrindo Lua 52
    53. Lua Atualmente ◮ Fiel aos requisitos originais: ◮ Simplicidade; ◮ Portabilidade; ◮ Extensibilidade; ◮ Pequeno tamanho. ◮ Entre as 20 linguagens mais populares (segundo TIOBE). S´rgio Queiroz de Medeiros e Descobrindo Lua 53
    54. Popularidade S´rgio Queiroz de Medeiros e Descobrindo Lua 54
    55. Livros Programming in Lua, 2006 Lua 5.1 Reference Manual, 2006 S´rgio Queiroz de Medeiros e Descobrindo Lua 55
    56. Livros Beginning Programming, 2007 Game Development With Lua, 2005 S´rgio Queiroz de Medeiros e Descobrindo Lua 56
    57. Livros S´rgio Queiroz de Medeiros e Descobrindo Lua 57
    58. Descobrindo mais http://www.lua.org/ S´rgio Queiroz de Medeiros e Descobrindo Lua 58

    David RuizDavid Ruiz, 2 years ago

    custom

    901 views, 1 favs, 0 embeds more stats

    Palestra criada por Sérgio Queiroz para a Campus P more

    More Info

    © All Rights Reserved

    Go to text version
    • Total Views 901
      • 901 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as innappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel

    Categories