Skip to main content

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

¡Hola, Al-Khwarizmi!

 ¡Gracias por contestar con tanto detalle! Y gracias a Ruber por invocarte :D.

 Creo que hace algunas Jams le eché un vistazo a AGE, pero no me atreví a aprender a usarlo... Y como llevaba lustros con ganas de hacer uno propio, no continué investigádolo. Veo que tengo que darle otra vuelta, pues parece muy sólido, ¡y con muchísimas características!

 Para empezar, querría echarle un vistazo a PUCK, pero no lo encuentro... La verdad es que soy muy perezoso :_)

 Depende de cómo esté diseñado, quizás no sea difícil convertirlo a javascript con Google WebToolkit, que puede compilar Java a programas en Javascript... Eso sí, la comunicación clientes-servidor habría que modificarla. Pero se podría comenzar con las versiones de un solo jugador.

 También podría intentar crear lo de las descripciones automatizadas: imagina que, para crear una habitación, describes en algún formato (JSon, XML, ...), qué objetos hay en el escenario, dónde están, sus propiedades... Y una entidad "narradora" genera la descripción con distintos estilos. Creo que hay investigaciones sobre la generación inteligente de descripciones, pero no me dedico a ese tema...

 En resumen, que tengo que estudiar AGE, por si puedo extenderlo, o usarlo directamente. 

 ¡Gracias!

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!