Archive for the 'Scripting' Category

Librer铆as de ayuda a la generaci贸n del glue code

Este art铆culo completa el que publiqu茅 la semana pasada y que puede acceder haciendo click aqu铆.

Librer铆as de ayuda a la generaci贸n del glue code

Por lo general lo m谩s dificultoso, en la integraci贸n de un motor de scripts a un motor de juegos, pasa por la exportaci贸n del modelo de objetos para que el mismo sea visible desde el script. Este c贸digo, denominado “glue code”, generalmente est谩 relacionado a la exportaci贸n de funciones y mapeo de tipos de datos.

De esta manera, si poseo un personaje y quiero que el mismo se traslade de un posici贸n A a una posici贸n B deber茅 poder dar estas instrucciones desde Python (o el lenguaje de script que corresponda) para que esto suceda, adem谩s desde el script deber茅 poder consultar o recibir informaci贸n acerca de la interacci贸n de un determinado objeto o personaje con el mundo (ej: colisiones).

Existen diversas soluciones para generar este c贸digo de manera “autom谩tica” o, mejor dicho, de una manera menos manual. Veamos algunas de ellas:

(Read the article)

Introducci贸n a la integraci贸n de scripts en un motor de juegos

Un lenguaje de “script”, es un lenguaje de programaci贸n interpretado por la computadora, es decir, que no requiere compilaci贸n.

Actualmente, incluir alg煤n lenguaje de este tipo, en juegos, es muy com煤n por la motivaci贸n de otorgar a dise帽adores de niveles la posibilidad de agregar comportamientos a objetos o personajes sin necesidad de pasar por un proceso de “compilaci贸n” y sin afectar la estabilidad del juego. Adem谩s, los lenguajes de scripts suelen ser lenguajes de muy alto nivel, muy productivos en cuanto a generaci贸n de c贸digo se refiere y con estructuras de datos muy flexibles y f谩ciles de utilizar.

Por supuesto que realizar una tarea X utilizando un script tomar谩 m谩s tiempo que si hubiese sido codificada en lenguaje C, adem谩s es posible que los autores de dichos scripts – no siendo programadores expertos – tampoco realicen las tareas del modo mas eficiente posible.Sin embargo, los scripts suelen ejecutarse en threads de baja prioridad separados del bucle principal, por lo tanto un mal desempe帽o de los mismos no deber铆a afectar de manera notoria la performance del juego todo. Adem谩s, tampoco realizaremos con scripts tareas propias del motor (o al menos no cr铆ticas).

Este tutorial expone las caracter铆sticas fundamentales de tres exponentes de los lenguajes de scripts utilizados en juegos: Python, Lua y AngelScript. De cada uno de estos lenguajes se detalla como embeberlo en una librer铆a C++ y como realizar la intercomunicaci贸n b谩sica con el lenguaje.

(Read the article)