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.

Compartir:
  • Twitter
  • Facebook
  • MySpace
  • BarraPunto
  • del.icio.us

Pages: 1 2 3 4 5 6

Comments

  1. Novack
    December 1st, 2007 | 2:05

    Hehe, flor de articulo. Todavia no lo termine de leer, pero muy buen tema!

  2. Ni7ram
    December 1st, 2007 | 12:53

    Epa! Crei que tenias abandonada la pagina pero no, estabas haciendo un super articulo. Buenisimo!

  3. December 7th, 2007 | 22:24

    [...] Este artículo completa el que publiqué la semana pasada y que puede acceder haciendo click aquí. [...]