CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 21 Ago 2017 18:49

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: 06 Ago 2017 12:49 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 680
Hola.

Estoy aprovechando las vacaciones para trabajar un poco en obras que tenía empezadas. En todas suelo incluir una rutina LanguageLM personalizada que permite modificar el tiempo verbal y la persona de los mensajes en tiempo de ejecución, y que modifica algunos de los mensajes de INFSP por otros que considero más adecuados para cada obra ---variaciones de algunos pocos mensajes como por ejemplo: No <es/era/será> necesario emprenderla a golpes con <el objeto>." en lugar del original: "La violencia no es la solución."; y diferenciación clara de los mensajes que podrían considerarse del narrador de la obra, como el anterior, de aquellos que son notificaciones de la aplicación, por ejemplo: "[No se pudo determinar a qué objetos te has referido]." en lugar del original: "¡No sé a qué objetos te refieres!"---.

Estos últimos días he intentado generalizar esa rutina LanguageLM y crear una única extensión que pueda compartir entre diferentes obras (luego siempre se puede utilizar el objeto LibraryMessages para incluir aquellos mensajes por defecto personalizados para cada obra en sí).

Esta extensión define una nueva rutina SetGrammaticalInflection(), que acepta un código numérico especificando el tiempo verbal y la persona que se desean utilizar para los mensajes de la librería. He definido además 9 constantes con los 9 posibles códigos:

  • FIRST_PERSON_PRESENT = 1
  • SECOND_PERSON_PRESENT = 2
  • THIRD_PERSON_PRESENT = 3
  • FIRST_PERSON_PAST = 4
  • SECOND_PERSON_PAST = 5
  • THIRD_PERSON_PAST = 6
  • FIRST_PERSON_FUTURE = 7
  • SECOND_PERSON_FUTURE = 8
  • THIRD_PERSON_FUTURE = 9

De forma que para cambiar la flexión gramatical de los mensajes de la librería (originalmente en segunda persona presente) a la tercera persona en pasado, por ejemplo, basta con invocar a esta función en cualquier punto de la obra:

Código:
SetGrammaticalInflection(THIRD_PERSON_PAST);

Y, por supuesto, se puede volver de nuevo a la segunda persona presente con: SetGrammaticalInflection(SECOND_PERSON_PRESENT);.

Estoy terminando de modificar la extensión para que además se utilice la definición del objeto player (para comprobar si está definido como masculino/femenino o singular/plural) para imprimir los mensajes ---"No <lo> <tengo/tenemos/tienes/tenéis/.../tendrán/tendrá> <conmigo/con nosotras/con nosotros/contigo/.../con ella/con él>"---. Y aunque estoy tratando de ser lo más metódico posible, seguramente existan errores que se me hayan escapado.

Si alguien pudiese estar interesado en la extensión, está disponible en mi repositorio de extensiones en GitHub: https://github.com/jomali/I6-Extensiones/blob/master/SpanishLM.h


Arriba
 Perfil  
 
NotaPublicado: 07 Ago 2017 00:58 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1587
Ubicación: Argentina
Interesante trabajo.
Pregunto, desde mi ignorancia, qué tan factible y conveniente sería portar a I6 el código que hay al respecto en I7, ya oficializado y que, hasta donde sé, en el pasado diferencia los pretéritos posibles.


Arriba
 Perfil  
 
NotaPublicado: 07 Ago 2017 07:00 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 27 Ene 2010 20:38
Mensajes: 1265
Eso ya lo trae TADS de serie.

Aprovecho este inciso que no ayuda a nada para congratularme con la idea de verte por aquí de nuevo y en activo, Makinaimo :lol:


Arriba
 Perfil  
 
NotaPublicado: 07 Ago 2017 12:25 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 680
No se me ha ocurrido mirar TADS. Le echaré un ojo a ver si puedo aprovechar alguna idea de cómo hace eso. ¡Gracias Comely! (por señalarlo, y también por el inciso :) . A ver si soy capaz de finalizar y compartir con vosotros en el medio plazo algo de lo que tengo más avanzado).

Para hacer la extensión sólo he intentado generalizar y ampliar una rutina que he ido modificando y reutilizando desde hace años. No he estudiado mucho otras extensiones o sistemas, así que lo mismo he creado algo que ya estaba hecho mejor. Y más probado.

Pero sí que he consultado un poco una versión de la librería INFSP6 parcheada por Ricardo Pérez que ya tenía implementado algo parecido ---inflexiones que contemplan diferente persona, género y número---. Y otra de la librería Inform 6, en inglés, de David Griffith ---mensajes que contemplan diferente persona, género, número y tiempos verbales presente y pasado---.


Arriba
 Perfil  
 
NotaPublicado: 07 Ago 2017 12:32 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 27 Ene 2010 20:38
Mensajes: 1265
Nada, nada. Si ya has encontrado eso en Inform no te metas en TADS o acabas en el psiquiátrico :D

Lo dicho, encantado de verte y con ganas de probar lo que tengas entre manos.


Arriba
 Perfil  
 
NotaPublicado: 07 Ago 2017 14:32 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 680
Quizá se trata de algo tangencial al tema del hilo, pero ojeando un poco acerca de alternativas a los mensajes por defecto de la librería Inform me he encontrado con esta extensión de Aaron A. Reed para Inform 7: Neutral Library Messages. No estoy puesto al día en lo relativo a Inform7 (ni al 6 ahora mismo, la verdad), así que puede que el enfoque de Aaron haya quedado desfasado por alguna otra extensión más nueva. En cualquier caso, presenta un puñado de ideas interesantes sobre posibles pegas de los mensajes por defecto de la librería Inform original (sé que hay algún hilo del foro en el que se ha discutido al respecto también).

Citar:
The main complaints levied against the standard library messages are:

They sometimes imply a certain tone of wry amusement which descends from the Infocom/text adventure era, and which is not always appropriate to modern works of IF.

There is not a clear distinction between messages narrating story world events and those giving parser refusals, leading to a muddying of the difference between the author's voice and the default system messages.

Error messages often do not contain information instructing players how to better restate their command.

They can sometimes contradict the story world, as in the assumption "That's plainly inedible," or mislead the player about a course of action, as in "This dangerous act would achieve little."

Inconsistencies in style, such as whether command examples are given in CAPS or 'quotes', or which messages are wrapped in square brackets and what that signifies.

En mi extensión 'SpanishLM.h', además del tema de las inflexiones, intento atacar al menos esas dos primeras pegas.


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 1 invitado


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:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM