CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 09 Ago 2020 09:45

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 8 mensajes ] 
Autor Mensaje
NotaPublicado: 18 Abr 2011 18:35 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
Feliz Semana a Santa a tod@s! :)

A ver si este tema no se nos desvia en el debate de 'sistemas orientados a objetos' o ' sistemas basados en procedimientos' para programar aventuras :lol:
Es mas rollo pediros una opinion como programadores/autores de aventuras en cualquier sistema de autoria. Ahi va ;)


Imaginaos el ejemplo tan basico como "abrir un barril con una palanca" y "abrir armario con llavecita". Donde la palanca es un objeto llave del barril para el verbo "abrir".

1.-Podriamos definir este evento asignandolo en la definicion del objeto:

Código:
Objeto barril:
- verbo:abrir, objeto _llave:palanca, mensaje: haces fuerza y logras abrir el barril

Objeto armario:
- verbo:abrir, objeto_llave:llavecita, mensaje:introduces la llave y tras varias vueltas abres el armario



2.-O podriamos declarar los eventos aparte de los objetos

Código:
Objeto barril:
[.............]
Objeto armario:
[.............]


Eventos
- verbo:abrir, objeto:barril, llave:palanca, mensaje:haces fuerza y logras abrir el barril
- verbo:abrir, objeto:armario, llave:llavecita, mensaje:introduces la llave y tras varias vueltas abres el armario



No se si me estoy explicando bien, pero intento analizar que forma es mas comoda de definir este tipo de cosas cuando se programa un juego. (vale que habra diferencia de gustos, y lo de siempre de para gustos colores, pero lo pregunto por si hay una tendencia general)

Quizas si estoy muy influenciada por la orientacion a objetos, y esto quizas haciendolo como en Inform esta duda no exista, pero bueno, yo os pregunto ;)

Saludos vacacionales gente ;)!


Arriba
 Perfil  
 
NotaPublicado: 18 Abr 2011 19:04 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Yo creo que esto es lo que hemos discutido últimamente en algún flame :D

A mí me parece que en general es mejor asociar los comportamientos a los objetos cuando se pueda, para un más fácil mantenimiento y reutilización. Eso compartimentaliza y ordena los eventos, y además nos hace más fácil pasar objetos de una aventura a otra. La vieja regla de que encapsulamiento = bueno, y cosas globales = malo.

Ahora bien, también puede haber veces en las que realmente sea necesario que sean globales, por ejemplo cuando son demasiado generales para ponerlos en un objeto ("comportamiento que se ejecuta cuando un objeto lanzable se lanza sobre un objeto rompible", por ejemplo).

Por lo tanto creo que es bueno que un sistema soporte ambos modos de hacer las cosas.

_________________
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: 18 Abr 2011 20:33 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
La forma 1 es como lo hacen sistemas como, por ejemplo, AGE.

La forma 2 es como lo hacen sistemas como, por ejemplo, Inform 7.

Ambos cumplen con su cometido, así que supongo que será cosas de comodidad para el programador.

Si hablamos de tendencias... pues la tendencia está siendo Inform7. Aunque la tendencia previa era más parecida a la forma 1 (Inform6 y TADS y Hugo actuan de manera tal [o más o menos parecido, al menos]).

Saludo.

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
NotaPublicado: 18 Abr 2011 21:14 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
En realidad AGE soporta ambas maneras; aunque yo recomiende usar preferentemente la 1.

_________________
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: 18 Abr 2011 21:33 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
Al-Khwarizmi escribió:
Yo creo que esto es lo que hemos discutido últimamente en algún flame :D

uff, fijo! :lol: pero mi memoria no perdona esta temporada. leo demasiado y ya no se ni de que sabor era el yogurt que me acabo de comer :roll:

Al-Khwarizmi escribió:
Por lo tanto creo que es bueno que un sistema soporte ambos modos de hacer las cosas.


Eliuk Blau escribió:
Ambos cumplen con su cometido, así que supongo que será cosas de comodidad para el programador.


Es que recuerdo que en mis inicios (fue hace dos dias y me parece ya que fue hace dos años :? ) tenia como super claro que seria de la forma 1, pero ahora que estoy profundizando en el tema, me estaba dando cuenta que la forma 2 podria tambien ser muy util, y realmente ambas son validas y no habria nada malo ni escoger una ni otra.
Tener las dos? Nose, quizas es un poco "desorganizao" no?. Aunque le encuentro el sentido de comportamientos mas globales.

Como siempre que tengo una duda existencial durante horas, me decido a acudir a vosotros, para ver que opinais. Gracias again

Eliuk Blau escribió:
La forma 1 es como lo hacen sistemas como, por ejemplo, AGE.
La forma 2 es como lo hacen sistemas como, por ejemplo, Inform 7.


Buen resumen :P


PD: Ays! que amplio es este mundo de las aventuras conversacionales :| :P :wink: :|


Arriba
 Perfil  
 
NotaPublicado: 18 Abr 2011 22:43 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
No sé si he entendido bien la pregunta pero yo creo que en general un autor siempre hace uso de ambos métodos.
O sea, si es una acción que se puede aplicar a muchos objetos, se le da una respuesta genérica a todos ellos, desde el mundo.

Código:
>Quemar objeto X.
No eres un pirómano.


Pero si en la aventura hay algo que pueda o deba quemarse, se hace desde el propio objeto.
Código:

>Quemar dinero.
Echas el dinero al fuego y con ello te aseguras de que no caerá en malas manos.


Yo al menos lo hago siempre así.

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 18 Abr 2011 23:18 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 747
A mi no me importa demasiado programar un objeto de una forma:

Código:
Objeto barril:
- verbo:abrir, objeto _llave:palanca, mensaje: haces fuerza y logras abrir el barril

Objeto armario:
- verbo:abrir, objeto_llave:llavecita, mensaje:introduces la llave y tras varias vueltas abres el armario

U otra:
Código:
Objeto barril. [...............]
Eventos (excepciones) que tienen lugar sobre el objeto barril.

Objeto armario. [...............]
Eventos sobre el objeto armario.

Lo que rechazo de pleno es que se defina una acción dentro de un objeto y que esa acción solo se entienda cuando se realiza sobre el objeto y no en cualquier otro momento de la aventura. Pero bueno, este es otro tema y lo podemos discutir en otro hilo si queréis.


Arriba
 Perfil  
 
NotaPublicado: 18 Abr 2011 23:31 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 933
Me parecen fucionalmente equivalentes, no veo ventajas ni inconvenientes entre la una o la otra, más allá de lo que sea relacionado con el gusto personal del programador. Bueno, en la segunda opción puedes tener mayor capacidad de expresividad en las condiciones de disparo de los eventos si dispones de calificadores que no sean los mismos que la jerarquía de objetos (los 'adjetivos' de I7), pero no veo demasiada diferencia.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 8 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:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM