Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Trucchi per Inform da pubblicare

I piu' scafati possono mandare i trucchi a:
terr...@robertograssi.net
Rob
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Rob
Se non ho capito male č Giancarlo che si occupa della programmazione
in Inform, vero? Se sě, devo parlargli a proposito del mio modello
(molto semplice ma piuttosto efficace) di programmazione per gli NPC.
Appena ho un attimo di tempo (ora sono un po' incasinato per un esame
che ho lunedě) vedo anche di mettere a posto l'esercizio del
"montacarichi". :)
Ciao da
Vincenzo

A questo proposito vorrei dire che "l'idea" e' la seguente:
TRUCCHI PER INFORM
Esempio:
- Come gestire una conversazione a tre, il giocatore e 2 NPC.
[Codice], piu' breve possibile, giusto come esempio didattico.
[Output]
La cosa non dovrebbe essere piu' lunga di due A4 al massimo.


 Vincenzo
Volentieri: e capiti a fagiolo, perché è mia intenzione rifinire i
personaggi di WarMage. Anche se sono quasi tutti piuttosto "stupidi", un
paio di dialoghi più pesanti non mi dispiacerebbero.
Una cosa che ho fatto e che potrebbe interessare tutti (mi scrisse anche la
Short, mi ricordo, ma poi non se ne fece più nulla) è una routine che
consente di usare indifferentemente una parola o un oggetto (con vari gradi
di scoping) negli switch:
Object personaggio "un personaggio"...
...
life [;
        Tell: switch( TopicParse( SCOPE_DISTANCE ) ) {
                'ciao': "Ciao a te, come ti va?";
                'sandra': "Una simpatica ragazza";
                the_red_coat: "Ah, si, il mantello rosso";
                ...
La costante da mettere al posto di SCOPE_DISTANCE indica se gli oggetti
presi in considerazione sono tutti quelli visibili (al giocatore o al PNG)
oppure tutti quelli "esistenti", o ancora quelli "mossi" dal giocatore. 
In questo modo è possibile sfruttare le parole di "name", ma anche le regole
grammaticali estese (come parse_noun) per riferirsi ad oggetti già
esistenti; allo stesso tempo non è necessario scrivere un blocco diverso
per gestire topic che non si riferiscono a oggetti (ad es. 'ciao'), o
creare oggetti che hanno la sola funzione di diventare topic di
discussione.
A parte questa routine, le mie routine di gestione dei dialoghi degli NPC
sono piuttosto scarse; ma credo che unendo le forze potrebbe venire fuori
qualcosa di possente.
Gian.

 unendo le forze potrebbe venire fuori qualcosa di possente.
Io sono un sognatore ma a leggere le parola "unire le forze"
e "possente" gia' mi sto esaltando.
Collaboriamo e facciamo ritornare in alto la IF italiana.


 
ahyeah amigo.
prima di tutto, tanto per non duplicare il lavoro: chi vuole vedere le mie
librerie? Vincenzo le ha viste un po' di tempo fa. Ho un manuale parziale
(e leggermente superato) che ho scritto in inglese, ma dovrebbe essere
abbastanza per capire come funzionano.
Mi sono concentrato sugli incantesimi e sul combattimento, ma ho due mini
routine generiche che penso siano utili; una è quella del topic parse che
ho appena detto. L'altra è lo SKY; un sistema di gestione del tempo molto
sofisticato, che consente di integrare orologi precisi (tipo flamel) a
eventi ambientali, fasi del giorno (aurora, alba, sorgere del sole ecc.).
E' possibile inserire comandi come "aspetta fino al mattino" o "aspetta
fino al tramonto", molto importante per quelle avventure che dipendono dal
tempo (a volte farebbe comodo in Flamel). Si può anche dire "aspetta dieci
minuti" o "aspetta due ore e cinque minuti" o persino "aspetta fino alle
diciotto e trenta". L'aggiunta del parsing numerico di Vincenzo dovrebbe
essere davvero interessante. (Nota: è contemplata la possibilità di
interrompere l'attesa in caso di eventi importanti è di continuare a
calcolare lo scorrere dei timer. Ad esempio, se nella stanza c'e' una bomba
che scoppia in un ora e il giocatore aspetta due ore, il giocatore muore
allo scadere della prima ora. Il tempo è semplicemente "accellerato", non
"saltato". Ho dovuto smanettare sulle librerie del parser per ottenere
questo effetto).
Inifine,
Quando si parla di collaborazione nel mondo open source si parla di CVS,
ovvero Concurrent Versioning System. E' l'unico modo per lavorare in
cinquanta (non è un eufemismo) su un programma o su un sistema di librerie
senza incasinarsi; ma è così comodo che ad es. io lo uso per sincronizzare
i miei lavori (inclusi quelli in inform) fra i miei computer al lavoro a
casa ecc.
Se la cosa interessa qualcuno, facciamoci un fischio e cerchiamo di
organizzare un'archivio centrale (e dinamico) delle librerie italiane;
faremo dei rilasci quando penseremo che una libreria è pronta, e
permetteremo a chi lo vuole di collaborare alla creazione di sorgenti
migliori. 
Giancarlo.

 ahyeah amigo.
Eheheh ;)
Molto 'pomposo' eh?
Pero' e' davvero quello che sento.
Mi sono riavvicinato alle AT da poco.
Ci giocavo su C64 quasi 20 anni fa.
Ricorda di mandarmi i contributi su
alcune idee per Inform.


 
????
-- 
"La vita non č un film, č molto meglio"
_______________________
The Iron Pumpkin Studio
http://www.ironpumpkin.135.it
 (Aggiornato al 09.08.03)

 ????
mi associo allo stupore...

qualcosa di possente.
Beh, le mie lo sono ancor di più. :-)
In realtà volevo sentire un tuo parere che era questo: secondo te,
dalla mia semplice gestione di un NPC che ti ho fatto vedere (ricordo
che non sono un insieme di librerie, per chi non lo sapesse) si può
fare qualcosa di più complesso? Io, per esempio, non riesco a
implementare il comando Seguilo/la e loa realtà e che sono ancora un
po' troppo "giovane" con la programmazione Inform...
Ciao da
Vincenzo

abbastanza per capire come funzionano.
Diciamo che le ho viste un po' alla veloce, comunque sono molto
interessanti. Perché non ne approfitti per parlarne proprio su Terra
IF? Magari un paio di lezioni su come usarle...
Ciao da
Vincenzo

 Vincenzo
Beh sì: mi ricordo più o meno di cosa si trattava, ma repetita juvant.
Ora che mi ci fai pensare, la mia classe "follower" per gli NPC che devono
seguire altri NPC o il personaggio principale, è indipendente dal resto
(come SKY e  TopicParse), quindi è abbastanza facile scrivere tizio, segui
caio; poi caio, segui me, e la cosa funzionerà :-)
Giancarlo.