viernes, 24 de julio de 2009

Lua


Lua es luna en portuges y tambien es un lenguage de programación extensible diseñado para una programación procedimental general con utilidades para la descripción de datos. También ofrece un buen soporte para la programación orientada a objetos, programación funcional y programación orientada a datos. Se pretende que Lua sea usado como un lenguaje de script potente y ligero para cualquier programa que lo necesite. Lua está implementado como una biblioteca escrita en Climpio (esto es, en el subconjunto común de ANSI C y C++).

Siendo un lenguaje de extensión, Lua no tiene noción de programa principal (main): sólo funciona embebido en un cliente anfitrión, denominado programa contenedor o simplemente anfitrión (host). Éste puede invocar funciones para ejecutar un trozo de código Lua, puede escribir y leer variables de Lua y puede registrar funciones C para que sean llamadas por el código Lua. A través del uso de funciones C, Lua puede ser aumentado para abarcar un amplio rango de diferentes dominios, creando entonces lenguajes de programación personalizados que comparten el mismo marco sintáctico. La distribución de Lua incluye un programa anfitrión de muestra denominado lua, que usa la biblioteca de Lua para ofrecer un intérprete de Lua completo e independiente.


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 memoria al prescindir del compilador.


Debido a que Lua compilado es pequeño, veloz y tiene una licencia permisiva ha ganado seguidores entre los desarrolladores de videojuegos. Algunos usos de Lua:

World of Warcraft, donde el usuario tiene la posibilidad de personalizar casi completamente la interfaz creando añadidos que permiten informarle de cualquier cosa en su correspondiente carpeta Interface en la qué el WoW.exe tiene el intérprete de lua y ejecuta en su Interface el Addon creado en lua.

También en un mod 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 RTS a gran escala Supreme Commander, el cual es modificable por el usuario en casi todos sus aspectos.

El juego de RPG Tibia

Parte de S.T.A.L.K.E.R. - Shadow Of Chernobyl, permitiendo al jugador modificar armas, armaduras y aspectos varios del juego.

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 desafios.

Mediante un programa casero(o homebrew), el LuaPlayer, permite ejecutar archivos .lua en la conocida consola portatil de Sony.

Ragnarok Online usa LUA para programar la inteligencia artificial de los homunculos.

Regnum Online usa LUA para la mayoria de scripts del juego como interfaz, modo de juego, acciones, étc.

Lua es software libre, y se proporciona, como es usual, sin garantías, como se establece en su licencia. La implementación descrita en este manual está disponible en el sitio web oficial de Lua, www.lua.org.