Introducción a la integración de scripts en un motor de juegos
Python
Python es un lenguaje de script multipropósito, orientado a objetos, muy popular. Posee módulos, clases, manejo de excepciones y tipos de datos de alto nivel. Es fácil de extender mediante librerÃas creadas en lenguaje C/C++. Además Python es fácil de embeber en otros sistemas mediante su librerÃa Python/C API que está relativamente bien documentada.
Es portable, existe un intérprete Python en una gran variedad de plataformas y debido a que se encuentra creado en lenguaje ANSI C es posible recompilarlo en prácticamente cualquier plataforma.
Python puede ser utilizado libremente y distribuido, incluso para fines comerciales.
Lua
Lua es un lenguaje de scripting diseñado para ser embebido en otro sistema. Lua puede ser utilizado libremente y distribuido, incluso para fines comerciales.
Es interpretado a partir de bytecodes y posee gestión automática de memoria. Se encuentra implementado a partir de una pequeña librerÃa escrita en lenguaje C y compila sin modificaciones en cualquier plataforma conocida.
Lua fue diseñado inicialmente para ser integrado mediante el lenguaje de programación C. No posee una gran cantidad de librerÃas, no intenta realizar lo que ya es posible realizar mediante el lenguaje C, aquà la idea es complementar y no reemplazar. Lua se maneja dentro de un entorno seguro, con manejo automático de memoria, con gran flexibilidad para el manejo de strings y estructuras dinámicas de memoria.
Ha sido utilizado en juegos como Battle Mages, Vendetta, FarCry, Homeworld2 y PainKiller.
Las caracterÃsticas principales de este lenguaje de script son:
Extensibilidad: Lua fue concebido para ser extendido. El núcleo (core) de Lua es realmente muy pequeño y crear librerÃas para él es muy sencillo.
Simplicidad: Lua es simple y pequeño. El hecho que sea simple hace que sea fácil aprender a utilizarlo. La librerÃa de enlace dinámico de Lua 5 ocupa aproximadamente 50K (contra los 800K de Python).
Eficiencia: El motor del lenguaje Lua es realmente muy eficiente. Benchmarks realizados contra otros lenguajes lo colocan entre los más rápidos.
Portabilidad: Debido a que Lua se encuentra creado en lenguaje ANSI C, es posible recompilarlo en prácticamente cualquier plataforma.
AngelScript
AngelScript es un lenguaje de script similar al C, fue diseñado con el fin de ser fácil de utilizar e integrar. Objetivos del diseño también son intentar evitar las funciones proxy (funciones que son llamadas para luego llamar a la función correspondiente). Sus caracterÃsticas principales son:
Multiplataforma: Puede ser compilada en plataformas Win32, Linux y XBOX (desgraciadamente como utiliza código ASM x86 no posible realizar compilaciones en plataformas del tipo no PC sin modificaciones).
Uso libre: La librerÃa puede ser utilizada de forma libre, incluso para fines comerciales.
Sintaxis tipo C: El hecho de utilizar una sintaxis similar al C (palabras claves, tipos de datos) implica no tener que aprender un lenguaje totalmente nuevo.
Acceso directo: No requiere la creación de funciones tipo proxy.
Compilación dinámica: El script a ejecutar es compilado antes de ser ejecutado y llevado a bytecodes para luego ser interpretado por una máquina virtual.
Cargado y grabado de bytecodes: El script compilado puede ser grabado como tal.
Ejecución paso a paso: Los scripts pueden ser ejecutados paso a paso con fines de depuración.





Comentarios (3)



Hehe, flor de articulo. Todavia no lo termine de leer, pero muy buen tema!
Epa! Crei que tenias abandonada la pagina pero no, estabas haciendo un super articulo. Buenisimo!
[...] Este artÃculo completa el que publiqué la semana pasada y que puede acceder haciendo click aquÃ. [...]