EL LENGUAJE DE PROGRAMACIÓN LUA Lua es un lenguaje de

Download Report

Transcript EL LENGUAJE DE PROGRAMACIÓN LUA Lua es un lenguaje de

EL LENGUAJE DE
PROGRAMACIÓN LUA

Lua es un lenguaje de
programación que
aunque es bastante facil
de utilizar, es de los que
menos se utiliza. Se usa
principalmente para
crear extensiones en
juegos (MODS) o para
crear los propios juegos.
Ricardo Castilla Peña
4ºB
ÍNDICE

HISTORIA..........................................Pag 3

CARACTERÍSTICAS.........................Pag 4

FUNCIONAMIENTO INTERNO.........Pag 5

APLICACIONES.................................Pag 6-7

PORTABILIDAD.................................Pag 8

EN VIDEOJUEGOS...........................Pag 9-15
HISTORIA
Lua fue creado en 1993 por Roberto Ierusalimschy,
Luiz Henrique de Figueiredo y Waldemar Celes
basado en C y Perl con una estructura similar.
Miembros del Grupo de Tecnología en Computación
Gráfica (Tecgraf) en la Pontificia Universidad Católica
de Río de Janeiro. Las versiones de Lua anteriores a
la 5.0 fueron distribuidas bajo una licencia similar a la
BSD, de la versión 5.0 en adelante se utiliza la
licencia MIT, compatible con la GPL.
Lua ha sido usado en muchas aplicaciones
comerciales y no comerciales, cuyo número
incrementa cada año.
CARACTERÍSTICAS

Lua es un lenguaje de extensión, suficientemente
compacto para usarse en diferentes plataformas. En lua
las variables no tienen tipo, sólo los datos y pueden ser
lógicos, enteros, números de coma flotante o cadenas.
Estructuras de datos como vectores, conjuntos, tablas
hash, listas y registros pueden ser representadas
utilizando la única estructura de datos de Lua: la tabla.
La semántica de Lua puede ser extendida y modificada
redefiniendo funciones de las estructuras de datos
utilizando metatablas, casi como en Perl. Lua ofrece
soporte para funciones de orden superior, recolector de
basura. Combinando todo lo anterior, es posible utilizar
Lua en programación orientada a objetos.
FUNCIONAMIENTO INTERNO

Los programas en Lua no son interpretados
directamente, sino compilados a código bytecode, que
es ejecutado en la máquina virtual de Lua. El proceso
de compilación es normalmente transparente al
usuario y se realiza en tiempo de ejecución, pero
puede hacerse con anticipación para aumentar el
rendimiento y reducir el uso de la memoria al
prescindir del compilador.
También es posible la compilación en tiempo de
ejecución utilizando LuaJIT.
APLICACIONES

Lua ha sido usado para procesar datos de entrada a
sistemas complejos, configurar aplicaciones, controlar
hardware y muchos otras cosas.Lenguages como
ActionScript, Java, Lua y otros, son empleados en
distintos sistemas operativos, lo cual consigue un
ahorro de costes, al simplificar el trabajo de desarrollo
de un nuevo programa de software, al añadirlos como
partes "prefabricadas" que incluso al adaptar o portar
el programa a nuevos usos, por ejemplo de
plataformas de videoconsolas a sistemas operativos
como Android y otros, no necesitan ser modificados o
minimamente, convirtiéndolo en un programa de
software de calidad nuevo, a un coste de desarrollo
muy reducido.
APLICACIONES

También Lua es uno de los lenguajes de
programación más utilizados para homebrews de la
consola PSP de Sony debido a su sencillez. Van
desde aplicaciones para añadir complementos u otros
programas fácilmente a la consola a entornos de
ventanas excelentes y videojuegos muy completos.
Por otro lado es utilizado para los productos de la
compañía canadiense desarrolladora de software
Indigo Rose, en AutoPlay Media Studio; estos
programas no fueron desarrollados en Lua, sino que
utilizan Lua para generar y crear scripts, ya sea por un
asistente o por la pericia del programador.
PORTABILIDAD

Gracias a su sencillez, Lua pudo ser portado a
múltiples arquitecturas fácilmente. Lo más
sorprendente es que existen ports para PSP y Wii,
siendo por ahora el primer port el más antiguo y
exitoso, mientras que el de Wii deriva de éste.
EN VIDEOJUEGOS

Debido a que Lua compilado es pequeño (en la
mayoría de los casos), veloz y tiene una licencia
permisiva ha ganado seguidores entre los
desarrolladores de videojuegos. Empresas como
VALVe, EA Games y Bethesda decidieron trasladar
sus bases de C++ a LUA dado que este es mas
compatible gráficamente con kernel. Algunos usos de
Lua:
EN VIDEOJUEGOS




World of Warcraft, donde el usuario tiene la posibilidad
de personalizar casi completamente la interfaz gráfica.
También en un mod de tipo sandbox para Half-Life 2
llamado Garry's Mod, pudiendo modificarlo casi
completamente. Gran parte de Garry's Mod está
escrito en Lua.
También en un mod para Half-Life 2 llamado Fortress
Forever que permite configurar altamente los mapas.
El videojuego de estrategia en tiempo real a gran
escala Supreme Commander, el cual es modificable
por el usuario en casi todos sus aspectos.
EN VIDEOJUEGOS


El videojuego de rol Tibia, modificable casi totalmente
(poderes, mapas, etc) junto con XML.
Parte de S.T.A.L.K.E.R.: Shadow of Chernobyl,
permitiendo al jugador modificar armas, armaduras y
aspectos varios del juego
EN VIDEOJUEGOS




Grim Fandango y La Fuga de Monkey Island (cuarta
entrega de la saga Monkey Island) utilizan
internamente scripts en Lua para definir la historia y
los eventos que ocurren durante la partida.
Worms 4: Mayhem utiliza Lua y XML para definir las
misiones y desafíos.
Mediante un programa casero (o homebrew), el
LuaPlayer, permite ejecutar archivos .lua en la
conocida consola portátil de Sony.
Ragnarok Online usa Lua para programar la
inteligencia artificial de los homúnculos.
EN VIDEOJUEGOS




Regnum Online usa Lua para la mayoría de scripts del
juego como interfaz, modo de juego, acciones, étc.
TASpring un juego de estrategia en tiempo real, usa
Lua para la mayoría de scripts del juego como
interfaz, modo de juego, acciones, étc.
Multi Theft Auto: San Andreas usa Lua para diseñar
modos de juego, mapas y scripts. Este programa es
una modificación multijugador que permite al usuario
jugar Grand Theft Auto San Andreas en línea con otro
usuario de computador a computador.
"Blitzkrieg". Se usa el lenguaje Lua en los editores de
mapas e incluso los puede escribir uno mismo.
EN VIDEOJUEGOS




"Counter-Strike 2D". Permite utilizar scripts Lua
para crear, por ejemplo, modos de juego
completamente nuevos mediante una interfaz de
"hooks, tablas, variables y arrays"
"StepMania". Se usa el lenguaje Lua para
desarrollar la implementación de animaciones del
entorno gráfico, y asimismo la ejecución de comandos
internos relacionados con la jugabilidad.
"Wolfenstein: Enemy Territory": Algunos modos de
este juego vienen con el lenguaje Lua para correr
scripts como mini-modos, scripts de administración,
modificación de mapas, etc.
EN VIDEOJUEGOS



Hedgewars: Utiliza Lua en los scripts, misiones y
mapas.
Minecraft: Se utiliza en el MOD computerCraft
Minetest: Se utiliza en los MODS haciendo sencilla la
instalación de modificaciones
PÁGINAS CONSULTADAS

WIKIPEDIA