CAAD
http://foro.caad.es/

Logros y otro trackings
http://foro.caad.es/viewtopic.php?f=18&t=5853
Página 1 de 2

Autor:  Uto [ 03 Jul 2015 09:55 ]
Asunto:  Logros y otro trackings

Hola!

Logros

Aquellos que jugáis juegos de Steam y otras plataformas estaréis acostumbrados a los sistemas de logros. Para aquellos que no, se trata de objetivos secundarios en determinados juegos, o a veces incluso primarios, que llevan al jugador a conseguir tal o cual logro por puras razones lúdicas o por razones competitivas. Por ejemplo, hay juegos en los que matar a un determinado jefe de area no resulta en un logro, pero matarlo sin matar antes a sus guardaespaldas sí. También puede haber logros por exploracion (visitar x sitios), por misiones (completar x misiones), etc.

En general, desde el punto de vista del autor del juego, el sistema de logros crea (no para todos los jugadores pero sí para muchos), una necesidad de re-jugar un mismo juego, o jugarlo en profundidad.

Mientras definía ngPAWS vi que realizar un sistema de logros así sería relativamente fácil (a la hora de generar el logro en la propia aventura) pero sería complicado mantenerlo online como ocurre por ejemplo con los logros de Steam, los de Battlle.net , etc. Sería complicado porque para mantener algo así hace falta un servicio central que almacene los logros, y en el que deberíamos estar autenticados, porque el logro se graba con el nombre/nick del usuario, y así puedes ver quien fue el primero en tal o quien ha abierto tales logros.

Mi idea original fue plantear un servicio online para ngPAWS, pero antes de "montarmelo yo solo", me gustaría que otros autores de parsers me diérais vuestra opinión, o incluso saber si queréis participar en crear un servicio, colaborando en la definición de la parte servidor, y añadiendo el soporte a vuestros parsers. En concreto creo que es fácil de implementar para AGE y fi.js (de hecho este último y ngPAWS podrían usar la misma). Inform, es más complicado, pero se puede pensar como hacerlo para algún intérprete en concreto (Parchment o Quixe)

Los que no sois autores de parsers, también podríais colaborar al menos aportando ideas, y contestando a nuestras dudas sobre si deberíamos hacerlo así o asá.

Otros tracking

Por otro lado, como sabéis algunos en mis pruebas de betatesting de Colditz para ngPAWS (que saldrá pronto) añadí cierto nivel de tracking de respuestas sin contestación, con el objetivo de poder ver que cosas escriben los jugadores y quedan sin respuesta (es decir con la respuesta "no puedes hacer eso", "no te entiendo", etc.). Para ello utilicé una herramienta open source muy similar a Google Analytics llamada Piwik. Lamentablemente usé una solución muy provisional y me quedé sin los datos (instale el piwik en una raspberry pi en mi casa y la tarjeta SD en cuestión murió sin un triste backup).

Por eso me planteo la posibilidad de que de nuevo nos pongamos de acuerdo con un método de tratar esto entre los autores de parsers, en lugar de acabar con 3 soluciones, y planteemos el uso.

Trackear el CAAD

Por último pero no menos importante, hace tiempo se hablo de poner una herramienta open source en la web del CAAD para analítica web, que nos diga al menos de donde vienen las visitas, cuales son las páginas más visitadas, por donde entra la gente al CAAD, etc. Se que hay otras pero Piwik me ha parecido que no tiene nada que envidiar a Google Analytics, y solo requiere montar una BBDD mysql que ya tenemos, y marcar las páginas (añadiendo un pequeño código <script>). Todos los datos quedan en nuestro poder y no en poder de Google, y Piwik se puede configurar incluso para aplicar el requerimiento do-not-track que hacen algunos navegadores si el usuario así lo decide, por lo que no invadiríamos la privacidad de nadie que no lo quiera. ¿Nos animamos?

Autor:  tesheñes [ 03 Jul 2015 18:21 ]
Asunto:  Re: Logros y otro trackings

Pues no me doy idea de cómo implementarlo desde I7 o desde su capa intérprete, pero me parece una buena iniciativa.

(hay algo de interfaz I7-JS hecho con Vorple, tendria que mirarlo)

Autor:  Al-Khwarizmi [ 03 Jul 2015 18:44 ]
Asunto:  Re: Logros y otro trackings

Uto escribió:
Mi idea original fue plantear un servicio online para ngPAWS, pero antes de "montarmelo yo solo", me gustaría que otros autores de parsers me diérais vuestra opinión, o incluso saber si queréis participar en crear un servicio, colaborando en la definición de la parte servidor, y añadiendo el soporte a vuestros parsers. En concreto creo que es fácil de implementar para AGE y fi.js (de hecho este último y ngPAWS podrían usar la misma). Inform, es más complicado, pero se puede pensar como hacerlo para algún intérprete en concreto (Parchment o Quixe)

Me parece una idea genial, y estoy dispuesto a añadir el soporte en AGE y a colaborar en lo que pueda en el tema del servidor (al menos aportando ideas de diseño, porque me imagino que estarás pensando en usar un servidor web y LAMP y yo en todo lo que sea web estoy bastante pez).

Estos días la verdad es que estoy bastante liado, pero a partir de mediados de la semana que viene debería tener más tiempo.

Supongo que un buen equilibrio entre sencillez y generalidad sería que hubiese una web donde los autores de aventuras pudiesen dar de alta sus aventuras y crear, para cada una de ellas, los logros. Esa información se guardaría en el servidor en una base de datos, XML, o similar, y se cotejaría con las peticiones de "logro completado para el jugador X" que llegaran desde los clientes (aventuras).

Uto escribió:
Por otro lado, como sabéis algunos en mis pruebas de betatesting de Colditz para ngPAWS (que saldrá pronto) añadí cierto nivel de tracking de respuestas sin contestación, con el objetivo de poder ver que cosas escriben los jugadores y quedan sin respuesta (es decir con la respuesta "no puedes hacer eso", "no te entiendo", etc.). Para ello utilicé una herramienta open source muy similar a Google Analytics llamada Piwik. Lamentablemente usé una solución muy provisional y me quedé sin los datos (instale el piwik en una raspberry pi en mi casa y la tarjeta SD en cuestión murió sin un triste backup).

Por eso me planteo la posibilidad de que de nuevo nos pongamos de acuerdo con un método de tratar esto entre los autores de parsers, en lugar de acabar con 3 soluciones, y planteemos el uso.

También me parece muy interesante, pero aquí ya no sé si puede encajar AGE al no ser un sistema basado en web (la versión de navegador es un applet de Java). Imagino que Piwik será para web, ¿no?

Autor:  Uto [ 04 Jul 2015 09:39 ]
Asunto:  Re: Logros y otro trackings

Al-Khwarizmi escribió:
Uto escribió:
Mi idea original fue plantear un servicio online para ngPAWS, pero antes de "montarmelo yo solo", me gustaría que otros autores de parsers me diérais vuestra opinión, o incluso saber si queréis participar en crear un servicio, colaborando en la definición de la parte servidor, y añadiendo el soporte a vuestros parsers. En concreto creo que es fácil de implementar para AGE y fi.js (de hecho este último y ngPAWS podrían usar la misma). Inform, es más complicado, pero se puede pensar como hacerlo para algún intérprete en concreto (Parchment o Quixe)

Me parece una idea genial, y estoy dispuesto a añadir el soporte en AGE y a colaborar en lo que pueda en el tema del servidor (al menos aportando ideas de diseño, porque me imagino que estarás pensando en usar un servidor web y LAMP y yo en todo lo que sea web estoy bastante pez).

Estos días la verdad es que estoy bastante liado, pero a partir de mediados de la semana que viene debería tener más tiempo.

Supongo que un buen equilibrio entre sencillez y generalidad sería que hubiese una web donde los autores de aventuras pudiesen dar de alta sus aventuras y crear, para cada una de ellas, los logros. Esa información se guardaría en el servidor en una base de datos, XML, o similar, y se cotejaría con las peticiones de "logro completado para el jugador X" que llegaran desde los clientes (aventuras).



Sí, más o menos eso había pensado para el lado de servidor, aunque ha que añadir:

- Que el usuario debe poder registrarse y logarse en el momento del logro si es a primera vez, o declinar participar.
- Si declina participar en el sistema online los logros le saldrían en local pero no se enviarían. Ahora bien, como un logro solo puede salir una vez, sería necesario que en caso de que el usuario haya rechazado participar, el intérprete debe guardar la info en local.

Así la petición del programa de procesar un logro sería algo como esto:

1) Consultar si el jugador ya se ha logado alguna vez, y si es así detectar su id de usuario (en un navegador lo guardaríamos en una cookie después de que se logue la primera vez, en otros sistemas supongo que haría falta una especie de fichero global)

2) Si el usuario no estaba logado, lanzar una ventana de login/registr, que trabaja contra un API REST del servidor que permite ambas cosas. Aquí también se da la opción al usuario de no participar, en cuyo caso guardamos algo así como "id de usuario=0" que nos indique en el futuro que los logros van en local.

3) Si el login/registro acaba con un id de usuario válido, se lanza la petición al servidor de apuntar el logro tal, de la aventura tal, del usuario tal. El servidor responde un boolean indicando si lo ha grabado o si no (porque el usuario ya lo tenía). Si es que sí, el interprete debe mostrar el logro en pantalla.

4) Si el login registro acaba con un id =0, el proceso es el mismo pero contra el almacenamiento local.



Uto escribió:
Por otro lado, como sabéis algunos en mis pruebas de betatesting de Colditz para ngPAWS (que saldrá pronto) añadí cierto nivel de tracking de respuestas sin contestación, con el objetivo de poder ver que cosas escriben los jugadores y quedan sin respuesta (es decir con la respuesta "no puedes hacer eso", "no te entiendo", etc.). Para ello utilicé una herramienta open source muy similar a Google Analytics llamada Piwik. Lamentablemente usé una solución muy provisional y me quedé sin los datos (instale el piwik en una raspberry pi en mi casa y la tarjeta SD en cuestión murió sin un triste backup).

Por eso me planteo la posibilidad de que de nuevo nos pongamos de acuerdo con un método de tratar esto entre los autores de parsers, en lugar de acabar con 3 soluciones, y planteemos el uso.


También me parece muy interesante, pero aquí ya no sé si puede encajar AGE al no ser un sistema basado en web (la versión de navegador es un applet de Java). Imagino que Piwik será para web, ¿no?[/quote]

Piwik tiene varios interfaces, uno de ellos es un API REST a la que seguro que puedes llamar desde Java para marcar un evento.

Autor:  Uto [ 04 Jul 2015 09:48 ]
Asunto:  Re: Logros y otro trackings

tesheñes escribió:
Pues no me doy idea de cómo implementarlo desde I7 o desde su capa intérprete, pero me parece una buena iniciativa.

(hay algo de interfaz I7-JS hecho con Vorple, tendria que mirarlo)


En todo caso creo que tendría que ser a nivel intérprete, porque ni Glulx ni z-machine permiten la conexión a sitios web que yo sepa, y eso es lo que en definitiva haría falta. Es algo que se podría poner como addon de Quixe, pero habría que ver como enlazarlo desde el juego, porque es el juego el que lanza el marcado de un logro.. A priori solo se me ocurre una llamada a una función Glk que no exista que inicie el proceso, con una versión retocada de Glkote.min.js que le de soporte. No me gusta mucho porque no deja de ser un poco ñapa, quizá habría que hablarlo en los foros guiris también.

Autor:  Johan Paz [ 04 Jul 2015 10:53 ]
Asunto:  Re: Logros y otro trackings

tesheñes escribió:
Pues no me doy idea de cómo implementarlo desde I7 o desde su capa intérprete, pero me parece una buena iniciativa.

(hay algo de interfaz I7-JS hecho con Vorple, tendria que mirarlo)


Sólo con esto, ¿no?


http://inform7.com/learn/man/WI_23_15.html

Autor:  Uto [ 04 Jul 2015 15:37 ]
Asunto:  Re: Logros y otro trackings

Johan Paz escribió:
tesheñes escribió:
Pues no me doy idea de cómo implementarlo desde I7 o desde su capa intérprete, pero me parece una buena iniciativa.

(hay algo de interfaz I7-JS hecho con Vorple, tendria que mirarlo)


Sólo con esto, ¿no?


http://inform7.com/learn/man/WI_23_15.html


Sería una solución para Inform, aunque obligaría de alguna manera a que otro programa estuviera corriendo en paralelo ¿no?

En la práctica es lo que ocurre en Steam , Origin o Battle.net, pero veo más difícil que alguien que abre un juego de Inform abra un segundo programa. Quizá si fuera un programa tipo... ¿como se llamaba aquel que permitia bajarse juegos y te los instalaba... me falla la memoria.

Autor:  tesheñes [ 04 Jul 2015 19:42 ]
Asunto:  Re: Logros y otro trackings

aja, ¿cómo sería la petición para grabar un logro?

Creo que si lo implementas para javascript, podría lanzarse desde I7 usando las extensiones de Vorple.

Autor:  Fernando Gregoire [ 05 Jul 2015 04:27 ]
Asunto:  Re: Logros y otro trackings

Uto escribió:
Quizá si fuera un programa tipo... ¿como se llamaba aquel que permitia bajarse juegos y te los instalaba... me falla la memoria.


¿Puert Aventura?

Autor:  Uto [ 06 Jul 2015 07:54 ]
Asunto:  Re: Logros y otro trackings

tesheñes escribió:
aja, ¿cómo sería la petición para grabar un logro?

Creo que si lo implementas para javascript, podría lanzarse desde I7 usando las extensiones de Vorple.


En principio sería un API rest a la que le pasarías el id de usuario, el id de la aventura y el id del logro, y respondería con un true/false (si es true, el logro se ha producido, si es false, no). Quizá se puede añadir el timestamp o algo así para que el juego pueda mostrar exactamente la fecha/hora que quedo registrada). Desde ngPAWS se puede implementar con una llamada ajax, desde otros parsers hay que verlo.

Por ejemplo una respuesta de éxito podría ser:

Código:
{"success":"1", "timestamp":"2892378377"}


Y una de fallo:

Código:
{"success":"0","errorcode":"1"}


Donde habría una lista de errores y el 1 es "usuario desconocido", el 2 "id de aventura desconocido", el 3 "logro desconocido", el 4 "logro ya realizado", etc.

Dependiendo de lo que devuelva la llamada, el parser mostraría el logro o no, y como mostrarlo ya es una cuestión del intérprete/parser.

Autor:  baltasarq [ 07 Jul 2015 01:00 ]
Asunto:  Re: Logros y otro trackings

Hola,

A mi me parece muy bien la idea, y también la estructura del mensaje planteada. No tengo mucha idea de cómo podría hacerse en fi.js, pero desde luego, al ser JavaScript, debería ser sencillo. Contad conmigo, aunque ahora mismo no cuento con demasiado tiempo.

-- baltasar

Autor:  Uto [ 07 Jul 2015 10:12 ]
Asunto:  Re: Logros y otro trackings

baltasarq escribió:
Hola,

A mi me parece muy bien la idea, y también la estructura del mensaje planteada. No tengo mucha idea de cómo podría hacerse en fi.js, pero desde luego, al ser JavaScript, debería ser sencillo. Contad conmigo, aunque ahora mismo no cuento con demasiado tiempo.

-- baltasar



No te preocupes, intentaré plantearlo para ngPAWS de modo que sea una clase a la que el juego solo tenga que llamar con un método achievement(gameID, achievementID) y ya se encargue de pedir login si es necesario. Así creo que valdrá para ngPAWS y fi.js la misma librería. Solo estate atento al hilo por si decimos alguna tontería que se podría hacer mejor de otro modo :D

Autor:  Uto [ 08 Jul 2015 15:26 ]
Asunto:  Re: Logros y otro trackings

Acabo de abrir un hilo por lo de los logros en los foros ingleses, pro buscar más consenso y colaboración:

http://www.intfiction.org/forum/viewtop ... =6&t=18330

Autor:  tesheñes [ 10 Jul 2015 17:13 ]
Asunto:  Re: Logros y otro trackings

igual esto tal vez ya lo consensuaron por chat, pero mientras leia sobre el escenario server-side me vino a la mente Rebot y algunas de sus posibilidades (ej , multiplayer).

¿Tendrá cabida?

Autor:  Uto [ 11 Jul 2015 12:49 ]
Asunto:  Re: Logros y otro trackings

tesheñes escribió:
igual esto tal vez ya lo consensuaron por chat, pero mientras leia sobre el escenario server-side me vino a la mente Rebot y algunas de sus posibilidades (ej , multiplayer).

¿Tendrá cabida?


Es una cuestión del intérprete: si es capaz de diferenciar los jugadores y tener un id para cada uno puede grabar logros para cada uno. En definitiva el API de logros solo aceptará 4 parámetros:

userid, gameid, achievementid, stepid

El último es opcional y es para logros que requieran varios pasos que se pueden hacer en distintas partidas (por ejemplo: visitar los 5 contienentes).

Página 1 de 2 Todos los horarios son UTC + 1 hora
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/