CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 25 Abr 2018 03:53

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
 Asunto: AGE sin JAVA
NotaPublicado: 23 Abr 2018 19:24 
Desconectado
Yiepp
Yiepp
Avatar de Usuario

Registrado: 27 Feb 2018 13:49
Mensajes: 55
AGE es un parser que como ya sabéis necesita JAVA.

Como seguro que ya sabéis también, JAVA ya no es la tecnología cool que se nos prometía que todos íbamos a tener instalada en nuestros frigoríficos en el futuro. Lo de los coches voladores también ha resultado ser un pronóstico ligeramente inexacto.

En la línea de las cosas que ya sabéis, la gente, yo especialmente, somos vagos por naturaleza y no nos apetece instalar cosas para probar una aventura. Como mucho, descargarla y jugarla (y si puede jugarse online para ahorrarme la descarga, mejor que mejor).

Ahondando aún más en ese acervo común de cosas que tanto yo como vosotros conocemos está el hecho de que una vez me instalaba JAVA, podía jugar aventuras hechas en AGE de dos maneras, descargándomela para jugarla en mi PC (windows, etc) o entrando en una página web en la que la aventura se cargaba mediante lo que los doctos sesudos llaman un applet de java, y que resumiendo era la aventura incrustada en el navegador para jugarla (siempre y cuando, repito, el visitante tuviera JAVA instalado).

Un ejemplo de aventura que puede jugarse de estas dos formas lo tenéis en Una de Dragones, versión AGE de nuestro bienamado Edlobez.

- Si no tenéis JAVA instalado en vuestro equipo y pulsáis la versión online, veréis un pantallazo blanco sin más :(
- Si no tenéis JAVA instalado en vuestro equipo y os descargáis la versión completa, no os funcionará, porque necesitáis tener JAVA instalado :(

Una lástima, especialmente siendo hoy mismo el día de San Jorge/Sant Jordi, que toda esa energía anti-dragoniana del día no pudiera ser redirigida a jugar una buena conversacional como esta por no tener JAVA instalado.

Así que buscando alternativas, he dado con una para el primer caso (el de descargarse la aventura y jugarla en el PC-windows). Existe un “apaño” de JAVA portable llamado jPortable, hecho de manera no-oficial cuya fiabilidad y nivel de virus insertado desconozco así que, úsese por su propia cuenta y riesgo. Yo le he pasado el antivirus y no me ha detectado nada raro, así que me he lanzado y he preparado un “pequeño” paquete descargable:

Una de Dragones V1.0 AGE - Autojugable sin instalar JAVA

Es un .rar (75Mb comprimido) con un directorio en su interior para descomprimir, dentro del cual tenemos lo siguiente:

Juego.bat (el archivo que ejecutará el juego)
/bin (la carpeta con todo el meollo)
/bin/jre (subcarpeta con el java portable, 162Mb)
/bin/age (subcarpeta con el motor de juego AGE que ejecuta la aventura, 2Mb)
/bin/game (directorio con la aventura en si, 22Mb, ya que esta trae gráficos y música. Podría ser un .agz o un world.xml, que son los archivos de juego de AGE)

La cosa como veis no tiene demasiada sustancia: Es un bat, que llama a la máquina de java en su subdirectorio, para que ejecute AGE con el juego en cuestión.
Son efectivamente 160Mb de más (aunque si tuviéramos que instalarnos JAVA igualmente sería necesario bajarlos). Puede ser discutible el beneficio de hacer todo esto, pero ahí queda, una versión de “Una de dragones” que no necesita bajar nada más para poder jugarse.

Para rizar el rizo, podría empaquetarse todo esto en un .exe en lugar de un .rar con alguna utilidad de las que hay por ahí, de manera que el usuario no necesitaría ni siquiera la acción de descomprimir, bastándole únicamente con descargarse el juego y hacer hacer doble click en el el archivo .exe.

Si todo esto no os ha parecido interesante, bajo ningún concepto miréis este enlace de la herramienta javapoly.js.

Seguiremos informando.


Arriba
 Perfil  
 
NotaPublicado: 23 Abr 2018 21:07 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5289
Ubicación: Coruña
¡Genial! Me parecen muy útiles estas aportaciones.

Efectivamente, la paulatina "caída en desgracia" de Java es un problema para AGE, y todo lo que facilite el acceso a las aventuras para la gente que por cualquier motivo no pueda, quiera o sepa instalar Java, es muy bienvenido.

Si un día tuvieses un rato, estaría bien que pusieras unas instrucciones sobre cómo crear un paquete ejecutable como el que has hecho en la wiki de documentación de AGE (http://www.caad.es/aetheria/doc/). Creo que el tema tiene el suficiente interés como para que esté disponible en la documentación que consulta la gente que quiere crear aventuras en AGE (este hilo a lo mejor no lo encuentran o saben que esté aquí, sobre todo cuando pase el tiempo).

Si te animas a hacerlo, te he creado ya la entrada en el índice (se titula "Distribución como fichero ejecutable (sin necesidad de Java)") para que la edites. (siento no mirármelo y hacerlo yo mismo, pero ahora mismo estoy en unos meses de muchísimo trabajo en la vida real... si dentro de unos meses aún no está hecho, tal vez me ponga a ello).

Otro paso interesante que se podría intentar sería automatizar el proceso de crear el paquete ejecutable, mediante una opción "Exportar" en PUCK (como la que ahora mismo existe para los applets). Esto lo podría crear yo cuando tenga tiempo, partiendo de la documentación. Aunque para ello habría que mirar si las licencias de JPortable lo permiten, para no hacer nada ilegal.

Una pena que no sea compatible (por lo que veo) con Linux y Mac, aunque por supuesto esos usuarios siempre pueden seguir jugando mediante su instalación de Java. Todo lo que sea añadir opciones sin quitar lo que ya hay, es bueno.

Lo de javapoly.js suena de lujo. Quien haga funcionar AGE en eso, será mi héroe.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 23 Abr 2018 23:51 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1646
Ubicación: Argentina
¡Gran hallazgo, As!

Lo acabo de probar en una máquina del trabajo sin Java y sí, ejecutar se ejecuta.
Ahora bien, con lectores de pantalla no es accesible, porque hay que habilitar JavaAccessBridge y esto, incluso con Java instalado, por defecto viene desactivado, pues implica una vía de comunicación (por mucho que su fin sea altruista) entre la máquina virtual y herramientas que en el sistema se ejecutan de forma nativa, lo que en teoría se podría aprovechar para lanzar algún ataque. En las carpetas que distribuiste encontré entre otras cosas la utilidad de línea de comandos para activar y desactivar JavaAccessBridge (jabswitch) pero, aunque dice haberlo activado al ejecutar jabswitch /enable desde la carpeta Bin, en realidad no parece activarse.

¿Saben tú o Al-K, desde un punto de vista de desarrolladores, dónde se asienta que está activado JavaAccessBridge y cómo se comunica este componente con los lectores de pantalla o la herramienta de accesibilidad que sea? De saberse algo de eso lo veo difícil con JAWS dado su carácter propietario, pero quizá se podría hacer algún invento con la librería para comunicación externa desde aplicaciones que tiene el lector de pantalla NVDA, este último sí de código abierto, licencia GPL y encima con capacidad para complementos que, en vez de en un lenguaje propio como en el caso de JAWS, se programan en Python.

Yo personalmente tengo Java instalado en mis máquinas y el JavaAccessBridge activado, pero no estaría mal que encontrárámos alguna manera para activar esto también en este tipo de portables.


Arriba
 Perfil  
 
NotaPublicado: 24 Abr 2018 11:46 
Desconectado
Yiepp
Yiepp
Avatar de Usuario

Registrado: 27 Feb 2018 13:49
Mensajes: 55
¡Gracias a vosotros por vuestro interés, Al-Khwarizmi y Fernando Gregoire!

En cuanto tenga un poco más de tiempo intentaré rellenar ese artículo de la Wiki que comentas, Al-Khwarizmi. Eso sí, me gustaría antes terminar de perfilar algunas cosas a ver si conseguimos dejarlo fino, como por ejemplo:

  • Echarle un ojo a esto que comenta Fernando Gregoire de la librería de accesibilidad (no sé si mi habilidad llegará a tanto, pero por intentarlo que no quede)
  • Hacer pruebas más exhaustivas con varios juegos AGE que utilicen alguna cosa que pueda resultar conflictiva.
  • Probar a embeber todo en un .EXE y ver si se pueden grabar partidas normalmente.
  • Indagar más sobre el tema de las licencias

Mientras tanto he seguido mirando un poco el tema de jPortable. Parece ser una copia con ligeras modificaciones (al parecer, prescindibles) del directorio del JRE privado que se instala en tu equipo al instalar JAVA.

Este directorio suele estar dentro de “Archivos de programa/jre”. Revisando la instalación en mi equipo en concreto, este directorio se llama:

C:\Program Files (x86)\Java\jre1.8.0_144

En mi equipo he hecho una prueba. Dentro de la distribución de Una de Dragones que proponía, he sustituido el directorio “jre” de jPortable por el directorio “jre1.8.0_144” de mi instalación de JAVA renombrándolo a “jre” (por comodidad).

Observo entre ojiplático y regocijado que todo parece funcionar también correctamente, por lo que os diría que se podría prescindir del paso de jPortable y poner ese directorio de la instalación de JAVA, que siempre parece algo más seguro y fácil que depender de un intermediario, y además abriría el camino a probar este mismo enfoque en Linux y Mac, que todo apunta a que también funcionaría.

Buscando información sobre todo esto he llegado a este enlace:

Enlace al JRE 8 Readme

Citar:
When redistributing the JRE on Microsoft Windows as a private application runtime (not accessible by other applications) with a custom launcher, the following files are also optional. These are libraries and executables that are used for Java support in Internet Explorer and Mozilla family browsers; these files are not needed in a private JRE redistribution. (…)


Lo que, a falta de confirmación concreta del archivo de licencia pendiente de leer y entender, parece indicar que se puede hacer una distribución de estos ficheros con un “custom launcher” que sería nuestro caso (si bien no permite hacerlo con las versiones beta o pre-release de este JRE, pero eso no es un problema, porque lo normal sería usar la última versión estable que haya publicada). Además de este link sacamos también que parece que existen algunos archivos que podrían eliminarse para aligerar aunque fuera un poco el tamaño de la distribución.

De la página de la propia ORACLE podéis descargar como archivos comprimidos:

JRE(SE) 10.0.1 para Windows x64

JRE(SE) 8u172 para Windows x32

Podéis descargar el JRE para Linux y Mac de la página de descargas de la versión 8 y de la versión 10.

Imagino que sería recomendable usar la distribución de 32 bits para que le funcione a todo el mundo, pero para la versión 10 no soy capaz de encontrarla (imagino que será que ya sólo hayan sacado la versión de x64).

Para ir acabando con este tocho de mensaje, estaría bien saber Fernando Gregoire qué versión de JAVA tienes instalada y funcionando con el JavaAccessBridge (si es sólo una versión JRE o todo el JDK, si es la versión SE de java o por ejemplo la EE, etc.). Todo lo que puedas aclarar sobre esto vendría bien, porque yo estoy un poco pez.


Arriba
 Perfil  
 
NotaPublicado: 24 Abr 2018 18:39 
Desconectado
Yiepp
Yiepp
Avatar de Usuario

Registrado: 27 Feb 2018 13:49
Mensajes: 55
Añado información: Respecto a la accesibilidad

He encontrado este enlace en inglés de Enabling and Testing Java Access Bridge.

En él se habla de que para activarlo bastaría con llamar por línea de comandos a:

    /jre/bin/jabswitch -enable

Al parecer también puede activarse desde el Panel de control de Windows, pero para nuestro caso sería por línea de comandos. Comentan ahí que para probarlo se puede hacer con alguna de los siguientes productos que soportan Java Access Bridge:

    • JAWS
    • NonVisual Desktop Access (NVDA)
    • SuperNova
    • Window-Eyes

Pudiera ser que en la distribución del directorio JRE que incluyo en el enlace del juego, que es la del jPortable, esto estuviera limitado de alguna manera. En todo caso, veo que al descargar el directorio JRE de la versión 10 directamente desde ORACLE (JRE(SE) 10.0.1 para Windows x64), se incluyen un par de archivos .exe más relacionados con la accesibilidad, que tienen la pinta de ser paneles de control para gestionar qué elementos de accesibilidad se activan y cuales no:

    jaccessinspector.exe
    jacceswalker.exe

He preparado para descargar este archivo JuegoAccesible.bat adicional (comprimido como JuegoAccesible.rar para poder descargarlo sin alertas de seguridad raras) para probar la llamada que habilita la accesibilidad con jabswitch, y sería un archivo que debería ir copiado en el raíz de la instalación, junto al Juego.bat que ya existe allí, de manera que el jugador decida qué versión arranca. Fernando Gregoire, si lo pruebas ya me dirás qué tal.

Cuando tenga un hueco probaré a instalarme yo alguna de esas herramientas de accesibilidad para probar por mí mismo, a ver si soy capaz de ponerlo a funcionar.

Por cierto, no sé si sabes que existe una opción en el menú desplegable de AGE que se llama “Modo accesible para lectores de pantalla”, por si el problema pudiera venir por ese lado.


Arriba
 Perfil  
 
NotaPublicado: 24 Abr 2018 23:54 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1646
Ubicación: Argentina
Hola, As.

En casa tengo instalada la última actualización de Java. Java AccessBridge ya viene incluido de serie (aunque desactivado por defecto) desde Java 7 Update 15.
Para versiones anteriores había en 32 bits un instalador muy cutre que agregaba este componente. En 64 bits, al no funcionar este instalador dada su antigüedad y que nunca llegó a actualizarse, había que hacer un arduo procedimiento manual de copiar archivos en distintas carpetas, tanto de Java como del sistema.
Cuando esté en casa probaré, aparte del comprimido nuevo que enlazas en un escenario sin Java instalado, veré a ver si en la página de Oracle sigue estando disponible ese instructivo tan extenso de antes que el AccessBridge se incluyera en la instalación principal de Java. Ahora que pienso en esto, dado que aparte de en la carpeta de Java había que copiar cosas en System32, lo veo difícil sin dejar rastros en el sistema, salvo que no impacte mucho en el uso de CPU agregar al .bat un comando wait para esperar a que finalice el proceso de Java a fin de lanzar comandos de eliminación de lo que se haya que agregar a System32. En cualquier caso, como estoy por irme del trabajo, veré todo esto en casa.

Respecto del modo lector de pantalla en AGE éste mejora la accesibilidad partiendo de la base de que el lector de pantalla pueda estarse comunicando con la MV de Java. Lo que hace es que el cursor no se mueva en el área de salida al pulsar ENTER después de cada comando, de modo que un ciego tras tabular a esta área no tenga que subir hasta la línea donde comienza el resultado del último comando para empezar a leerlo; la función es muy útil, teniendo en cuenta que al no ser AGE un programa nativo para Windows no se lo puede enganchar a una voz SAPI 5 o arquitecturas de GNU/Linux como SpeechDispatcher, infraestructuras ambas muy atadas a cada plataforma.

Por último, leí la licencia a que enlazas, de la que para lo que nos ocupa importan los términos suplementarios y, en ésts, las secciones C y H. Básicamente se puede redistribuir los binarios, pero completos y sin modificarlos más que para agregar funcionalidad, aparte de tener la obligación de agregar una notificación —que te dan exacta ellos— sobre que el uso de características comerciales o los binarios en entornos comerciales requieren una licencia distinta. Con esta notificación no habría problema, pues bastaría con poner en el .bat comandos echo que muestren ese texto y luego, para asegurarnos de que no pase rápido sin que el jugador lo haya visto aunque sea una vez, un comando pause de modo que antes de seguir procesando los demás comandos el sistema muestre Presione una tecla para continuar.

¡Un saludo y luego volveré con noticas de las pruebas!


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM