Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Acabo de darme cuenta de que PUCK está disponible en github. 

Por otro lado, me interesa el uso de BeanShell.. .lo que pasa es que parece un poco antiguo. En ocasiones anteriores he considerado usar Rhino, un intérprete de JavaScript, pero también de Java, que desarrolló Mozilla. El problema que tuve fue desarrollar un sistema de eventos asíncronos que evaluaran las condiciones que el diseñador eligiera para el juego: como tenía que realizar las comprobaciones cada vez que se producía un cambio en el estado del juego, no parecía una solución demasiado eficiente. Pero no llegué a programarla completamente, estaba en proyecto...

 ¡Gracias de nuevo!

¿Juraría que Puck puede exportar a otros sistemas? Quizás ya usa Json, y en ese aspecto lo podrías reutilizar.

Los mundos de AGE son precisamente XML. Las características de los objetos están descritas de forma declarativa, salvo los comportamientos que hay que definir en código (BeanShell). Así que el material para generar descripciones está, la herramienta es adecuada para eso. Otra cosa es que generar bien descripciones podría ser casi una tesis doctoral...

Bueno, si te gusta AGE pero no te gusta BeanShell, siempre lo podrías cambiar por otro intérprete de otro lenguaje (mientras el intérprete esté escrito en Java). AGE está diseñado para pasar sus eventos, métodos invocables y demás "callbacks" a un intérprete. Ahora mismo el que hay es el de BeanShell, pero el acoplamiento es débil: fue diseñado desde el principio para que resultase sencillo añadir alguno adicional, y en el XML hay un campo para especificar en qué lenguaje está cada fragmento de código (que se puede usar para decidir qué intérprete llamar), de forma que es perfectamente posible añadir otro lenguaje y que las aventuras puedan funcionar indistintamente con BeanShell y con el nuevo. 

En realidad creo que tiene mejor pinta BeanShell, porque tiene una sintaxis menos estricta que el Java de Rhino. Simplemente lo decía para que no se quedara obsoleto en algún momento... No sería una prioridad para mí modificarlo. Pero es bueno saber que es fácil llevarlo a cabo :).

Sí que tengo que estudiar los documentos XML, para ver si podría faltarle algún atributo o etiqueta nueva que pudiera necesitar para los diálogos, por ejemplo.

 ¡Gracias de nuevo!