25.03.2002 ISTRUZIONI: // riassunto - dunque, si tratta di un sistemino (in costruzione) per scrivere e giocare "avventure testuali punta-e-clicca" (ATPEC) col browser.sì, è un'idea malsana. ho cominciato ad abbozzarla l'anno scorso, scrivendone su questo ng. - comincio da oggi a rilasciare un po' ddi codice: giusto "due stanze e tre oggetti", come mi aveva chiesto Pierluigi Zezza. abbiate pietà di me e portate pazienza. - versione alfa. instabile. praticamentee pezzi di codice bruciacchiati, senza revisione. caos completo. manca tutto: il sistema, allo stato attuale, è rozzo e disordinato. - ho una lunga lista di migliorie da appportare nel tempo ke verrà. :] // scarica e gioca - ATTENZIONE. per giocare, procuratevi lle seguenti cose: a) un computer ben ventilato. se mentre giocate state masterizzando un CD, programmando la vostra funcard e, in finestra, tenete una sessione aperta di Medal of Honor, beh, l'interprete JavaScript di IE comincerà a soffrire di scoliosi. abbiate pazienza, tenete a mente che gli script vengono interpretati e non compilati. b) per il momento, *dovete* avere il browser Internet Explorer della Microsoft, versione 5.5 (cinque-punto-cinque) o superiore -- per chi lo ignora, IE si trova pre-installato in Windows, dalla versione '98 (IE 4) a ME (IE 5) ed XP (IE 6). c) questo gioco *NON* funziona con IE 3 e 4, *NON* funziona con Netscape, *NON* funziona con Opera (e scommetto -- tiro ad indovinare -- dà problemi sotto IE/Mac). insomma, vvi serve Windows e/o un Explorer aggiornato. non ho badato alla compatibilità tra i browser: con tutto quel che c'è da fare, per il momento è l'ultimo dei pensieri che ho. d) vi occorre , infine, un mouse dotato di 3 pulsanti (!) -- in alternativa, potrete impostare alcuni comandi da tastiera. // come giocare - il funzionamento di base è quello di uuna AT. di contro, i comandi non vanno impartiti tramite tastiera, ma si clicca qua e là con il mouse sulle "parti sensibili" del testo (evidenziate al passaggio del puntatore). 1) tasto sinistro: apre un "menu" a comparsa, accanto alla parola/frase selezionata. indica ciò che potete fare. 2) tasto destro: riporta l'inventario del giocatore (gli oggetti in suo possesso, con i quali potete interagire). 3) tasto centrale: vi ripete la descrizione testuale del luogo dove vi trovate. - oggetti ed elementi dello scenario posssono essere "combinati" con altri oggetti ed altrettanti elementi dello scenario (modello AG). (esempio. possedete una pistola. fate click con il tasto sinistro del mouse sulla parola "pistola" e vi comparirà un menu, del tipo: "esamino", "lascio", "sparo...", ecc. per sparare a qualcuno, fate click su "sparo...": il verbo "Sparo" comparirà a fianco del puntatore del mouse. ora potete richiedere la descrizione del luogo, riottenere l'inventario ecc., ma quando farete click con il tasto sinistro su un'altra "parola sensibile" -- per esempio "il ladro" -- otterrete di impostare il comando "sparo [il] ladro [con la] pistola". è più facile da fare ke da spiegare) - in alternativa, potete provare alcuni tasti: "i", per inventario; "l" e "g" per riavere la descrizione del luogo; "esc" per uscire; "s" per salvare la posizione; "c" ed "r" per caricare la posizione salvata; e qualcun altro (ah: "m" per le "mosse"). - ATTENZIONE ai salvataggi: non cambiatee il nome al file, né la directory di salvataggio (fatelo, e il sistema -- per il momento -- non troverà la posizione salvata). tempo fa, per salvare impiegavo i cookies, con evidenti limitazioni alla quantità di dati salvabili; adesso, salvo grazie a un trucco: sistema sporco e non compatibile, ma posso salvare quante variabili voglio -- benedetti cavilli di sicurezza dei browser! (in futuro, per i salvataggi con browser IE penso di fare qualcosa tipo: controllo active-x pilotato da VBScript). // AT, AG, ATPEC, IDRA - una "ATPEC" ricorda un po' un'Avventurra Testuale tradizionale (dove ci si muove in un universo puramente testuale), un po' un'Avventura Grafica (dove si interagisce con un'ambiente grafico "punta-e-clicca") e un po' IDRA di Enrico Colombini (prendete i "libri-gioco", dove si compiono scelte guidate). - trattandosi di un ibrido fra generi, hho pensato di parlare di "ATPEC" e non di "AT". la distinzione mi è utile x sottolineare due concetti fondamentali (IMPORTANTI): a) se possiedi un computer, ti piace leggere romanzi, immaginare una storia, immergerti in un mondo parallelo,e credi nel potere delle parole, puoi cominciare a divertirti: giocare è -- prima ancora che apprendimento, esplorazione, introspezione e quant'altro -- semplicemente *divertirsi*. giocare = divertirsi. b) una buona AT con parser testuale sarà *sempre* superiore alla migliore delle "ATPEC" concepibili (opinione personale; e tanti, in proposito, hanno fatto mesi addietro ottime osservazioni sul ng): il sistema AT "punta-e-clicca", anche nella più perfetta delle implementazioni, resterà sempre *alquanto* limitato, rispetto alla libertà di azione che caratterizza una Avventura Testuale tradizionale. // motivazioni, crediti, copyright - non so se sia divertente giocare a unaa "ATPEC": lo saprò se mai qualcuno, in futuro, utilizzerà questo approccio per creare un gioco. io so solo che voglio programmare qualcosa del genere. - al momento questa cosa non ha nome. deeve molto ad IDRA di Enrico Colombini, che ringrazio: le idee chiave, discusse in passato proprio su questo ng, si trovano in IDRA. posso dire che IDRA è il padre spirituale di quanto state leggendo: difficilmente l'avrei fatto, se non avessi visto IDRA. - naturalmente ispirato dal mondo GNU / GPL, non posso non sancire quanto segue (nel caso fantascientifico in cui davvero occorra dirlo, trattandosi di una piccola cosa destinata ad una comunità amatoriale): a) potete copiare / distribuire / MODIFICARE ecc. TUTTO il codice da me scritto, SENZA LIMITAZIONI di sorta. tuttavia, se farete delle modifiche al Sistema di gioco, queste modifiche dovranno, necessariamente, essere sottoposte allo stesso tipo di "licenza"; ovvero distribuite liberamente alla comunità e passibili di ulteriori modifiche da parte di terzi, senza limitazioni; inoltre, dovrete riprodurre l'elenco dei "crediti" (la lista di quanti hanno contribuito alla stesura del Sistema di base, che eventualmente state impiegando x la vostra avventura). b) fin qui, ho parlato del Sistema, non dei giochi (ovvero di quanto è contenuto nella directory /avventura). i diritti per la copia/distribuzione/modifica spettano in via ESCLUSIVA agli autori (né al sottoscritto, né alla comunità): se, per ipotesi da ricovero ospedaliero, riuscite a vendere a un alieno una copia di una "ATPEC" che vi è costata tre anni di lavoro, il matrimonio e gli amici, io ne sarò contento, e spero lo saranno tutti. c) per quanto mi riguarda, incoraggio la diffusione di avventure gratuite in ambito amatoriale, frutto dell'apporto corale di più autori/programmatori, che si divertono nel condividere una passione. - ATTENZIONE: se cominciate a pasticciarre con il codice, tenete a mente ke per il momento è privo di DEBUGGER (diciamo di "salvavita"): dimenticatevi una parentesi graffa da qualche parte, e il Sistema cercherà di bloccare l'interprete JavaScript, che a sua volta cercherà di imputtanare il browser, che a sua volta si rifarà su Windows (il quale, 99 volte su 100, si blocca miseramente, XP compreso). per uscire: CTRL + ALT+ DEL e killate il processo assassino. // un po' di tecnica - non ho tempo, non ho tempo, non ho temmpo. programmo quando capita. chiedo scusa in ginocchio per il codice sporco e ridondante: mi ci vorranno ancora dei mesi di ritagli di tempo per conseguire qualcosa di valido. - tecnicamente, è un "sito Internet". sii gioca con il browser, in locale o in rete (tuttavia il sistema di pre-loading è ancora incompleto). mi sono limitato ad impiegare la più diffusa risorsa di programmazione per il Web: DHTML (HTML + JavaScript), e ho usato un po' di CSS. si tratta di tecnologie limitate, ma funzionali allo scopo, e dalle strane potenzialità. - ho fatto questa scelta per motivi prattici: in breve tempo, ho qualcosa che "funziona", che posso sperimentare e mettere alla prova, migliorabile con l'apporto di altre tecnologie (Java, plug-in, controlli active-x, Flash ecc.) ed eventualmente esportabile su altre piattaforme di programmazione. - ad ogni modo, c'è ancora tanto da faree con quel "poco" che offrono i "dialetti" e i linguaggi di scripting pensati per il Web (senz'altro meno ostici per l'autore medio di "avventure", rispetto a C, Visual Basic e compagnia bella). - il sistema è strutturato in modo "aperrto": sto cercando di isolare gli elementi fondanti, separando l'avventura in sé (il gioco) da "blocchi di codice" a sé stanti come il "pannello grafico" (sostituibile senza compromettere il resto) e i file strettamente "di sistema". - il fine ultimo è di consentire agli innteressati di sviluppare in tutta tranquillità aspetti marginali del Sistema per poi rilasciare codice indipendente, utilizzabile ("montabile") in più avventure distinte, senza compromettere il gioco in sé. soprattutto, sto cercando di facilitare all'osso la programmazione dell'avventura in sé. - se volete dare un'occhiata a come ho ccostruito la piccola avventura di esempio, curiosate all'interno della directory /avventura: sta tutto là dentro (in /intermezzi, a proposito, ci trovate un caos di codice HTML esterno all'avventura, che crea "presentazioni" richiamabili in ogni momento tramite la Funzione "Intermezzo()"). per il resto: /pannello, contiene il "pannello di gioco" (intercambiable); /sistema, i file "sistema.js" (cuore pulsante di tutto) e "parser.js" (un "parser" -- io lo chiamo così -- di esempio, sostituibile); /avvio, altri file di sistema (il "boot" del Sistema); mentre /salvataggio è la directory in cui va salvata la posizione di gioco. // collaborazione e aiuto - accetto (quasi sempre senza arrabbiarmmi) suggerimenti, critiche ed idee -- di qualunque sorta, anche marginalissime -- segnalazioni, pezzi di codice e quant'altro. mi servirebbe qualcuno a cui piaccia testare questa roba su differenti versioni di IE 5, mentre io sono occupato con la sopravvivenza. chi aiuta verrà ricordato nei crediti del Sistema. - se qualcuno preferisce collaborare conn me alla stesura del codice di base piuttosto che fare da solo (rischiando di allungare i tempi per il rilascio della versione 1.0 del Sistema), si senta libero di propormi la riscrittura di parti del codice, inviarmi codice alternativo (anche per delle minuzie) ecc. ecc. no problem (mi arrabbio raramente). - insomma, se qualcuno scrive del codicee per fare delle cose particolari, può inviarmelo: vedrò se includerlo o meno nella distribuzione "Lord 2023" del Sistema :) - il mio indirizzo e-mail per la cosa è:: lord2023@libTOGLIero.it (cioè, sarà... me lo sto facendo in multitasking). - ogni tanto trovate aggiornamenti su: hhttp://geocities.com/lord_2023/ perdono x il messaggione. grazie a tutti! Lord 2023 PS: - quiz: da qualche parte, nel /pannello,, dalle parti di testo.js, c'è una riga di codice che abilita la visualizzazione di un "cursore lampeggiante" stile AT -- provate ad attivarla :) - una coso curiosa da fare: lanciare il peluche sugli alberi. eheh.