Archive for November, 2007

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)

Android y los juegos

Android es una plataforma de comunicaci贸n mobile open source basada en Linux y desarrollada por un conjunto de empresas (Open Handset Alliance) entre las cuales se encuentra Google, HTC, Motorola, Qualcomm, T-Mobile y NVidia. Durante un tiempo se lo denomin贸 GPhone por haberse hecho p煤blico el deseo de Google por crear un tel茅fono celular que integrase el conjunto de servicios que la empresa ofrece; una jugada que muchos anticiparon tras la adquisici贸n de Android Inc. por parte de Google en Junio de 2005.

La realidad es que hoy este emprendimiento ha tomado una forma muy interesante para todos los desarrolladores, dado que Google ha decidido crear una suerte de competencia de desarrolladores que est茅n interesados en crear aplicaciones de distinto tipo y que proveer谩 U$S 10 M en premios.

Android Logo

Ya es posible descargar desde el sitio oficial el SDK para comenzar a desarrollar sobre esta plataforma (el SDK ocupa 60 Mb e incluye un emulador, una librer铆a de clases y documentaci贸n).

Lo interesante es que la plataforma ofrece la posibilidad de utilizar OpenGL | ES para el desarrollo de aplicaciones 3D. Adem谩s entre los ejemplos que incluye el SDK se puede encontrar un Luna Lander que nos permite estudiar un poco el modo en que se programan los juegos para Android.

En principio las aplicaciones deben estar desarrolladas en lenguaje Java haciendo uso de un conjunto de clases que la plataforma ofrece para tal fin.

Hagan click aqu铆 para acceder al sitio oficial de desarrolladores de Android.