Yarp: Guida per l'utente

Ver 1.0 del 14 settembre 2004

Ottimizzato per la risoluzione 800x600.

Benvenuti nel mondo di YARP, una sigla che sta per Yet Another Rpg for Palm.
Il nome dovrebbe dire tutto sull'applicazione; infatti YARP è un ambiente per giochi di ruolo (Role Player Game) tipo Warcraft che può essere eseguito su dispositivi PalmOS con sistema operativo 5.0 o superiore (anche se è bene precisare che il dispositivo di riferimento utilizzato per lo sviluppo è il T3).

La prima domanda che viene è perché realizzare questo progetto?
Innanzitutto per imparare: ho così imparato a utilizzare efficacemente CVS, la programmazione a oggetti in HB++ con notevole attenzione al riutilizzo del codice all'interno delle diverse applicazioni, l'uso degli Stream binari, salvare Preferences complicate, organizzare in modo efficiente i dati nei PDB, ...
Ma soprattutto ero curioso di vedere come si poteva realizzare un programma di simulazione in cui ogni personaggio aveva una sua "vita".

YARP comunque ha almeno due caratteristiche che lo rendono unico rispetto a tutti gli altri giochi della stessa categoria disponibii per PalmOS:

  1. Oltre al gioco che permette di "far vivere" gli scenari, YARP dispone di un ambiente di editing completo su palmare che permette all'utente di creare i propri scenari; infatti il gioco per me è costituito anche dalla parte di creazione degli eventi. Se siete della mia idea sono sicuro che avete trovato il vostro passatempo ideale.
  2. L'applicazione è rilasciata con una licenza OpenSource, che, collegata al fatto che l'ambiente di sviluppo è disponibile anche in versione free, permette a chiunque conosca la programmazione di realizzare la SUA versione.

Ma avete mai visto un progetto del genere?

In realtà è bene sapere che YARP non dovrebbe essere visto come un gioco, ma come una "proof of concepts" che potrà essere migliorata nel tempo grazie alla collaboraizone di diversi sviluppatori e riutilizzata all'interno di altri giochi. Se riuscissi ad ottnere queste due evoluzioni potrei considerami pienamente soddisfatto.

Maggiori informazioni sono disponibili, assieme a alle mie applicazioni, sul mio sito (parola un po’ grossa) che potete raggiungere qui oppure potete scrivermi qui.

Questo documento vorrebbe essere un manuale utente; in realtà è una semplice guida pratica all’uso di YARP. Spero che sia sufficiente e che eventualmente in futuro, con una applicazione più completa, abbia il tempo per fare qualcosa di meglio.

 

Un po’ di storia

Il parto di un progetto del genere è stato relativamente breve.
Il primo passo è stato realizzare la classe Neko (il famoso gattino/tamagotchi), quindi utilizzare una sua versione evoluta per creare un gioco per bamibini tipo "l'impiccato" (Niko). A questo punto ho deciso di fare il salto direttamente verso YARP.
L’ispirazione sono stati due applicativi RPG maker (da cui ho recuperato la grafica per personaggi e scenari) e RPG toolkit (un progetto OpenSource per PC) anche se questi sono diversi per sofisticazione, funzioni e finalità.
Ispirazione per tutti noi Dungeons & Dragons.

La versione oggi disponibile può considerarsi completa e funzionante (anche se non completamente) ma ho già in mente diversi miglioramenti che spero che la comunità mi aiuti a inserire nelle versioni successive:

Chi ha visto le altre mie applicazione sa che io sviluppo applicazioni in Italiano.
Infatti ritengo che vi siano troppe poche applicazioni native in Italiano per PalmOS, quindi cerco nel mio piccolo di colmare il gap. Questo approccio è alla base anche della scelta dell’icona: un elmo romano.
Tuttavia è bene precisare che il sorgente è in inglese (variabili e commenti) in quanto nell’informatica l’inglese è universale; in questo modo è possibile allargare la base di coloro che possono fare evolvere l’applicazione.

 

Ringraziamenti

Questo progetto non sarebbe stato possibile senza il supporto di diverse persone:

YARP è dedicato a Dario e Lucrezia che, sebbene troppo piccoli per apprezzarlo, un giorno forse utilizzeranno i suoi discendenti per divertirsi in modo un po' intelligente.

 


Installazione

L’ambiente è composto da 3 applicazioni: 2 per l’editing (YARP -scenari e YARP -eventi) degli eventi e l’engine (YARP) per la loro esecuzione.

Le applicazioni si installano normalmente trasferendo i file PRC sul palmare.
Prestate attenzione al fatto che se non è presente nessun evento l’engine non parte; analogamente se non è presente nessuno scenario l’editor degli eventi non parte (in questo caso basta creare uno scenario con l’editor degli scenari).

Il file che contiene gli eventi (DXR3_BATTLE.PDB)è autoconsistente: quindi se uno prepara un insieme di eventi in un PDB può distribuire solo il PDB e l’engine per la loro esecuzione (cioè non è necessario distribuire anche DXR1_SCENARIO.PDB e i PRC degli editor a meno che non si voglia permettere cha altri utenti usino gli scenari da noi realizzati per i loro eventi)

 

Come si usa YARP

La logica secondo cui dovrebbe essere usato l’ambiente è la seguente:

  1. Usando l’editor degli scenari preparo il territorio dove verranno eseguiti gli eventi.
  2. Gli scenari così realizzati vengono utilizzati nell’editor degli eventi dove è possibile posizionare i personaggi e dare loro le condizioni iniziali (in particolare per il movimento).
  3. A questo punto usando l’engine posso vedere come si comportano i personaggi in base a quanto descritto negli editor.

Questa logica viene seguita anche nella descrizione delle singole applicazioni che potete trovare qui di seguito

Tutte le applicazioni sono basate su una videata principale, dove si eseguono gran parte delle attività, a partire dalla quale si aprono una serie di dialog: ho è cercato cioè di semplificare al massimo l’interazione dell’utente in modo che sia possibile concentrarsi sul gioco.
Nelle tre applicazioni la videata principale è basata sullo stesso layout:

Tutte le applicazioni sono dotate di funzioni attivabili da menu.

 

Editor degli scenari

Mediante questa applicazione viene realizzata l'ambientazione dove in seguito gli eventi prenderanno vista; in pratica si crea il contesto paesaggistico che lo scenario è costituito da una scacchiera su cui si possono disporre delle mattonelle (tile) la cui grafica viene presa da una tavolozza di riferimento (tileset).

La parte inferiore dell’area attività presenta la mattonella corrente e una cache delle ultime tre selezionate. Sopra queste mattonelle sono presenti gli strumenti di disegno (pennello, secchiello e pipetta). Sopra gli strumenti viene presentato il nome dello scenario che si sta realizzando.

La creazione di uno scenario è molto semplice: si seleziona la mattonella corrente per aprire la tavolozza, la cella che si vuole inserire, quindi si può usare lo strumento pennello sulla mappa dettagli per inserirla nello scenario (tap e/o move). Per semplificare le attività sono disponibili anche uno strumento per il riempimento di aree (secchiello) e uno per ripetere una cella già disegnata (pipetta); in entrambi i casi dopo il loro uso automaticamente si ripristina lo strumento pennello.

L’applicazione, all’uscita, memorizza lo scenario su cui si sta lavorando in modo che al rientro sia ripristinato nelle esatte condizioni in cui era al momento della chiusura dell’applicazione.

Da menu sono anche disponibili le funzioni per la creazione di uno scenario vuoto (“Nuovo”), per il salvataggio dello scenario corrente (“Salva”) e per il caricamento di uno scenario precedentemente salvato (“Carica”). All’interno delle stesse dialog è presente anche il bottone per eliminare uno scenario precedentemente salvato.

Relativamente ai dati salvati su file è importante ricordare che: tutti i dati sono salvati in un unico file PDB e non su file diversi; non è possibile avere due scenari con lo stesso nome.

La parte informativa degli scenari (accessibile mediante la voce di menu “Corrente” oppure selezionando l’icone in corrispondenza della lista degli scenari salvati su file) in questa versione è poco significativa in quanto è pensata in funzione di quelli che saranno i futuri sviluppi dell’applicazione.

Infine è bene tenere presente che alcune mattonelle rappresentano degli ostacoli che i personaggi devono aggirare (acqua, alberi, cespugli, sassi, …).

 

Editor degli eventi

Questa applicazione permette di posizionare su uno scenario precedentemente realizzato i personaggi e definire le loro caratteristiche iniziali.

Prima di vedere come utilizzare l’editor è necessario spendere due parole sui personaggi. I personaggi sono raccolti in due squadre (rossi e blu) e sono di 5 tipologie per ogni squadra; la tipologia indica anche il livello del personaggio. I personaggi hanno un livello di esperienza (Xpoints o Xp) e un livello di vita (H(it)points o Hp) che viene calcolato con funzioni casuali in funzione del livello del personaggio.

L’inserimento dei personaggi è piuttosto semplice: si seleziona lo scudo per evidenziare una squadra o un’altra; quindi di seleziona un personaggio e si indica sulla mappa dettagli la sua posizione. L’applicazione verifica se lo scenario presenta un ostacolo (dove non è possibile posizionare il personaggio) o se è già presente un personaggio nella posizione indicata.

Una volta posizionato il personaggio è possibile definire altre caratteristiche selezionando lo strumento selezione (“Manina”) e selezionando nuovamente il personaggio (o facendo tap per due volte su un altro personaggio). In questo modo si attiva un menu popup che presenta 3 scelte:

  • Informazioni permette di vedere e/o modificare la sua esperienza o i punti vita.
  • Destinazione permette di definire il movimento iniziale del personaggio (vd di seguito).
  • Elimina permette di eliminare il personaggio (in ogni caso, se si inserisce un personaggio in una cella già occupata l’applicazione chiede se si vuole eliminare il personaggio preesistente).

La mappa ridotta permette in ogni momento di vedere la posizione dei personaggi (caratterizzata dal colore della propria squadra) e del personaggio selezionato (in rosa).

Quando viene creato un personaggio, questo non ha un movimento iniziale (“In attesa.”), tuttavia è possibile definire una destinazione oppure un personaggio da seguire (anche questa è una innovazione rispetto a tutti gli altri giochi del genere!). Questo viene fatto selezionando la voce “Destinazione” nel menu popup che si attiva in corrispondenza del personaggio a cui corrisponde la comparsa di un simbolo vicino allo strumento “Manina”.
A questo punto è possibile spostarsi sulla mappa è indicare una destinazione ovunque nello scenario. Se invece si vuole che il personaggio segua un altro personaggio (che può essere un compagno o un avversario), allora il personaggio deve essere “in vista”, in caso contrario può comunque essere indicata la posizione.

L’applicazione, all’uscita, memorizza l'evento su cui si sta lavorando in modo che al rientro sia ripristinato nelle esatte condizioni in cui era al momento della chiusura dell’applicazione.

Da menu sono anche disponibili le funzioni per la creazione di uno nuovo evento (“Nuovo”), per il salvataggio dell’evento corrente (“Salva”) e per il caricamento di uno evento precedentemente salvato (“Carica”). All’interno delle stesse dialog è presente anche il bottone per eliminare uno scenario precedentemente salvato.
Nel caso di creazione di un nuovo evento è necessario indicare anche lo scenario di riferimento.

Accanto alle funzioni per la gestione dei file è opportuno descrivere anche le voci del menu “Scenario”:

La funzione “Corrente” del menu “Evento” permette di vedere le informazioni sulle due squadre e sui singoli personaggi.
Sopra e sotto le tabella che presenta i personaggi sono disponibili i due bottoni che permettono di visualizzare le informazioni di una squadra o di un'altra; i bottoni presentano anche le informazioni complessive della squadra: numero personaggi, totali Xp e Hp.

Per ogni personaggio sono invece presentati l'ID, Xp e Hp olte che la destinazione.

Infine selezionando un personaggio e il bottone "Mappa" è possibile selezionare lo stesso nelle mappe.

 

Engine

Questa applicazione permette di dare vita agli eventi che sono stati creati con gli editor;.in pratica è un gestore di macchine a stati finiti (i singoli personaggi) con alcune funzioni di controllo.

Prima di vedere come controllare l'engine, è necessario vedere l'iconografia collegata ai personaggi.
Ogni personaggio presenta a sinistra un quadratino che ne indica la squadra di appartenenza e a destra una barretta che indica lo stato di salute. Ulteriori informazioni sono presentate nella console (che compare nascondendo la DIA sul T3) una volta selezionato il personaggio con un tap: ID, Xpoints, Hpoints con ferite e raggio di vista.
Quando un personaggio sta combattendo compare una spada e quando il personaggio è morto compare un piccolo teschio.

Quando si carica un evento viene richiesto anche di scegliere quale squadra si vuole controllare. Nel caso di una precedente uscita dall’applicazione, viene riaperto automaticamente l’evento nello stato in cui era quando l’applicazione è stata chiusa.
La videata principale quindi presenta nell’ “area attività”:
lo stato delle due squadre in cui la propria è in grassetto: personaggi in vita, Hp complessivi rimanenti e Hp inferti che possono essere utilizzati nelle guarigioni.
Quindi il bottone per la guarigione del personaggio selezionato e per fargli seguire un altro personaggio
Il bottone per il controllo della simulazione (avvio/pausa) che deve essere utilizzato per far partire l’evento.

Il controllo dei personaggi permette anche la definizione di una nuova destinazione durante l’esecuzione dell’evento: in questo caso selezionare il personaggio per evidenziarlo, quindi selezionare con un tap lungo la destinazione; se si vuole che il personaggio segua un altro personaggio selezionare il bottone "omino" (quello accanto a quello della guarigione) e quindi il personaggio da seguire. La console fornirà tutte le informazioni sulla corretta esecuzione o menu dell'operazione.

Non è possibile indicare la destinazione o guarire personaggi che non sono della squadra che si controlla.

Per guarire un personaggio è necessario che questo sia "in pausa", operazione che può essere fatta selezionado due volte il personaggio. A questo punto punto è possibile selezionare (anche più volte) il bottone guarigione; la consolle fornirà informazioni sull'esito della guarigione.

E’ possibile ricominciare l'esecuzione dell’evento con la funzione “Riavvia” del menu.

Ricordatevi che il menu può essere attivato esclusivamente con l’evento in pausa

La funzione di menu "Corrente" è del tutto simile  a quella vista nell'editor degli eventi. Il layout dei dati è leggermente diverso in quando vengono presentati i dati effettivi.
Per la squadra selezionata sono presentati:

  • Numero di personaggi vivi sul totale;
  • Xpoints;
  • Hpoints: come ferite "disponibili" sul totale e indicazione sui punti guarigione disponibili.

Per ogni personaggio è presentate anche lo stato.

La differenza significativa comunque è che qui è possibile vedere i dati di dettaglio esclusivamente della squadra che si controlla. Tuttavia mediante il bottone "Cambia" è possibile prendere il controllo dell'altra squadra e quindi, riattivando la funzione, vedere i suo dati di dettaglio.
Il meccanismo è volutamente complicato perchè l'dea del gioco è quella di controllare una sola squadra e non di "tradire" in continuazione.

 

***** FINE *****