Il catalogo degli oggetti

Se hai giocato a Sottomondo negli ultimi giorni avrai forse notato che il negozio è stato riordinato e che appare più razionale e meno confusionario. In realtà, grazie a una recente modifica è ora più facile aggiungere al gioco nuovi oggetti.

Il catalogo degli oggetti

Per rendere possibile la presenza di un negozio nel gioco in cui vendere e comprare oggetti è stato necessario creare un vero e proprio catalogo.

Nelle vecchie versioni, il catalogo veniva salvato assieme ai profili dei giocatori. Come conseguenza di questo, era molto difficile da ispezionare e manipolare, e a chi desiderava estendere il gioco appariva tutto molto oscuro.

Ultimamente ho pensato di trasformare questo catalogo in un file di testo molto semplice da capire e da estendere, eccolo qua: it_weapons.txt

Ad ogni avvio del gioco questo file viene letto e caricato in memoria. E’ anche possibile ricaricarlo in qualsiasi momento dal panello dell’Amministratore, il che rende possibile aggiungere nuovi oggetti al negozio senza nemmeno dover riavviare il gioco.

Ma vediamo come è composto. E’ fatto da una serie di linee di testo, una per ogni oggetto, i cui campi sono separati dal simbolo “|” (pipe). Se lo caricassimo in Excel, uscirebbe un file a 4 colonne:

  • Colonna 1: Codice univoco dell’oggetto. E’ un pò come il codice a barre dei prodotti al supermercato.
  • Colonna 2: Nome dell’oggetto. E’ quello che si vede quando lo si guarda o lo si compra
  • Colonna 3: Descrizione dell’oggetto. Descrizione estesa. Nota, per esprimere un a-capo uso la sequenza di caratteri “\n” (newline)
  • Colonna 4: Attributi. Sequenza di coppie chiave=valore che determinano tutte le caratteristiche dell’oggetto.

Il catalogo viene letto e copiato in memoria dalla funzione buildWCatalog(), che si trova nel file it_commons.DXL.

Va notato che non tutte le righe del file hanno 4 colonne. Le righe in fondo al file ne hanno solo 2, e rappresentano delle sostituzioni di oggetti: l’oggetto della prima colonna viene sostituito con l’oggetto il cui codice sta nella seconda colonna. Capiremo meglio questa cosa fra un attimo.

Codici degli oggetti

I codici degli oggetti sono molto importanti perché sono la chiave univoca che il motore del gioco usa per distinguerli. Usando codici simili rendo possibile al motore DimensioneX di farmi avere un oggetto identico o simile quando rientro nel gioco. Per esempio

weapon.01.sword
weapon.02.sword

Indicano due tipi diversi di spade, ma dalla loro similitudine il motore DimensioneX “capisce” che se quando rientro non è presente l’oggetto che avevo “weapon.01.sword”, ma è presente “weapon.02.sword”, beh mi può dare quello perché è simile. Contano in pratica la prima e l’ultima parola separata dai puntini, tralasciando la parte di mezzo che di solito ne identifica il livello, la potenza, eccetera.

La numerazione 01,02 ecc. mi permette inoltre di ordinare nel catalogo oggetti simili, rendendolo più facile da consultare perché ordinando per ID appariranno tutte le armi raggruppate insieme, tutti gli scudi insieme, tutti gli incantesimi insieme, eccetera.

Insomma, il codice degli oggetti non va scelto a caso e ho cercato di mantenere un pò di coerenza, questa è una abitudine che va mantenuta.

Gli oggetti obsoleti

Tempo fa avevamo un sacco di oggetti simili tra loro, per gestire le Affinità. L’Affinità era una caratteristica che venne introdotta durante una fase di grande popolarità di Sottomondo (parliamo di 2010-2011) nel tentativo di dare la possibilità ai giocatori di personalizzare meglio pg e oggetti e di creare le loro strategie. Col senno di poi, credo questa abbia rappresentato una inutile complicazione e abbia soltanto appesantito il gioco. Per questo motivo negli ultimi tempi questa caratteristica è stata tolta, il codice sorgente è stato semplifiicato, e il catalogo degli oggetti è ora stato ridotto di conseguenza.

Non volevo però che chi aveva comprato e equipaggiato oggetti con affinità li perdesse del tutto: ho impostato perciò in fondo al file una serie di sostituzioni (oggetto 1 sostituito da oggetto 2).

In questo modo, se entrate nel gioco e nel profilo avete degli oggetti obsoleti, la funzione FixArrays() nella libreria COMMONS del codice del gioco verrà richiamata ogni volta che un giocatore si collega e si incaricherà di sistemare le cose rimpiazzando gli oggetti obsoleti con quelli previsti tuttora in catalogo. Dovrete solo accedere al vostro profilo giocatore con il tasto [INFO], ri-selezionare armi e protezioni da usare per default, infine salvare. Tutto qui. Fatelo entro le prossime settimane, perché le linee relative alla sostituzione di oggetti obsoleti prima o poi verranno rimosse.

Attributi degli oggetti

Se volessimo aggiungere oggetti al gioco, basterebbe aggiungere una riga al file. Ma vediamo cosa determinano i vari attributi.

  • level = Livello richiesto per acquisire l’oggetto
  • value = Valore dell’oggetto (costo di acquisto)
  • power = Solo per le armi e incantesimi di attacco, potenza di offesa
  • protection = Solo per le protezioni, livello di protezione
  • icon = nome file dell’icona (si deve trovare nella cartella immagini del sito di Sottomondo)
  • imageurl,imagew,imageh = rispettivamente URL immagine, larghezza e altezza in pixel dell’immagine dell’oggetto (sempre relativa alla risoluzione base per il gioco che è di 800×600 pixel)
  • showmode = determina come appare l’oggetto sulla scena. 1: si usa l’immagine, 2: si usa l’icona
  • sound= file audio wav che rappresenta il suono emesso dall’arma o dall’oggetto. Si deve trovare nella cartella immagini del sito di Sottomondo

Conclusioni

Aggiungere un nuovo oggetto al gioco sarebbe oggi veramente molto facile. Riguardando il catalogo ho notato che forse i prezzi non sono esattamente coerenti con la potenza di armi e protezioni e forse andrebbero rivisti. Credete manchi qualcosa?

Occorre ricordare che anche la immagine e i vari file audio vanno messi nella cartella apposita sul sito di Sottomondo, quindi al momento attuale chi voglia proporre nuove armi o protezioni può farlo ma serve inserire la riga di testo che la definisce e alcuni files (grafica + audio eventuale), le si possono inviare al nostro contatto. A inserire la riga e copiare i file al posto giusto ci pensiamo noi. Un domani potrebbe esserci una interfaccia ancora più agevole.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *