DimensioneX/underworld/it/extending

From DimensioneX
Jump to navigation Jump to search

Estendere Underworld

Underworld è un progetto Open Source e grazie al motore DimensioneX, è Multiarea.

Questo significa che se vuoi contribuire, puoi creare un pezzetto del campo di gioco e gestirlo in autonomia. I giocatori arriveranno sulle tue terre e lì potranno acquistare nuove armi create da te, affrontare nuovi nemici, intraprendere nuove avventure.

Questa guida spiega come fare.


1. Installa DimensioneX

Il primo passo è installare DimensioneX sul tuo PC. Vai quindi su http://www.dimensionex.net e scarica il KIT più le altre due componenti installandole in ordine secondo le istruzioni fornite. Nel pacchetto dimensionex c'è infatti un file PDF "Readme" che dà una istruzione sintetica, e in più c'è una guida dettagliatissima in inglese disponibile qui: Installation Manual

Una volta completato questo passo avrai sul tuo PC una specie di piccolo server con una copia di Underworld che puoi giocare direttamente sul tuo PC (alloggiata negli slot 5 e 6). Se ci riesci passa al punto successivo.

2. Prepara l'ambiente

La copia di Underworld che hai sul tuo PC è modificabile, ma per sviluppare in comodità ti serve altro.

2a. Innanzitutto verifica di avere un editor come si deve. Consiglio di usare Textpad. Si scarica direttamente dal sito dimensionex.net e ha i menu in italiano.

2b. Ti serve la grafica di Underworld. Questa non è inclusa nel kit dimensionex. La puoi scaricare dallo spazio "Area Iscritti/Members only" di dimensionex.net, cioè qui: http://www.dimensionex.net/en/members/download.asp

Per una serie di ragioni lo ZIP che trovi qui non è mai aggiornatissimo ma le immagini ci sono quasi tutte. Se hai bisogno dell'ultima versione scrivimi a cris (at) dimensionex.net e te lo mando senza problema alcuno.

Una volta avuto lo ZIP con la grafica, questo ZIP va spacchettato nella cartella "dimx" che hai nel tuo server tomcat sul tuo PC. Dovresti quindi ottenere una cartella chiamata "uwpics" con altra roba all'interno. Se è così tutto OK e procedi col punto seguente.

2c. Devi configurare il tuo server per lo sviluppo in locale, in modo che le immagini vengano cercate sul tuo PC invece che prese da Internet. Per fare questo vai nella cartella dimx/WEB-INF/system che trovi nell'albero di Tomcat sul tuo PC, apri il file dimensionex.properties e vai a modificare il seguente

serverType=public

in modo che sia invece:

serverType=local

Salva e riavvia il server Tomcat. Verifica che continui a poter usare la tua copia di Underworld e che le immagini si vedono.

2d. Siccome dovrai gestire delle immagini, procurati anche Paint Shop Pro 7 (scaricare da Dimensionex.net) o un equivalente, in più anche installati ACDSee 3.0 per tenere in ordine le tue collezioni di immagini.

Adesso hai veramente tutto quello che serve.

3. Fai il tutorial

Ci perdi un'oretta, ma alla fine avrai capito come funziona DimensioneX e come si modifica il sorgente di un gioco. Il tutorial è in inglese e lo puoi seguire online, a questo indirizzo:

http://www.dimensionex.net/en/docs/tutorial.htm


4. Concetti fondamentali

Tanto per cominciare un pò di concetti fondamentali.

  • Underworld è attualmente strutturato in 2 aree, overo due mondi connessi tra loro: Sottomondo e Sottomondo2. Il codice sorgente di questi due sta rispettivamente nei file it_underworld.dxw e it_underworld2.dxw che trovi nella cartella dimx/WEB-INF/system sul tuo PC.
  • Per sviluppare una tua area, tu dovrai modificare it_underworld2.dxw fino a che non otterrai qualcosa di completamente diverso dall'attuale e fino a che non sarai soddisfatto. Alla fine il tuo file lo chiameremo, per dire, it_underworld3.dxw, lo pubblicheremo on-line e lo allacceremo al gioco attuale. Questa tua area la gestirai in totale autonomia e potrai creare lì dentro quello che vuoi: nuove armi, nuovi nemici, nuove avventure.
  • Tutte le aree includono del codice comune che stabilisce le regole comuni. Questa parte comune è contenuta nei file it_****.DXL (it_commons.DXL, it_battlesystem.DXL, it_battlemagical.DXL) e questi file non vanno modificati. Man mano che usciranno nuove versioni di questi file tu li terrai aggiornati sul tuo PC in modo da essere certo che la tua area si mantenga compatibile, nel tempo, col resto del gioco.
  • Quando farai modifiche alla tua area, avrai la possibilità di pubblicare la nuova versione e di riavviare la tua area (solo la tua) in modo da non fare danni alle altre aree, mantenendo intanto la tua autonomia. Otterrai visibilità per il tuo lavoro, tutti sapranno che la tua area è opera tua, e questo andrà a arricchire il tuo curriculum come sviluppatore software.
  • Le impostazioni generali del gioco le trovi nel file commons.dxw e la Sub si chiama common_onStart. Puoi fare modifiche qui per fare le tue prove, ricorda però che le impostazioni della tua area devi farle nel tuo file, commons.dxw va considerato intoccabile.

5. Prime modifiche

Cerchiamo qui di capire che cosa puoi modificare nel file del tuo gico. Stiamo parlando del file it_underworld2.dxw.

Dopo ogni modifica ti consiglio di salvare e riavviare il gioco per vedere l'effetto delle tue modifiche.

Sezione WORLD

Per ora lascia inalterato NAME (poi lo cambierem, ma alla fine).

SITE
Se vuoi scrivi qui l'url del sito ufficiale della tua area
IMAGESFOLDER_LOCAL
La cartella sul tuo PC che contiene le immagini del gioco e della tua area. Lascia questo parametro inalterato, però nella cartella "tomcat/webapps/dimx/uwpics" devi ora creare una cartella "uw3". Qui dentro ci metterai tutte le immagini nuove specifiche per la tua area. La uwpics con dentro la uw3 e le tue immagini andrà uploadata su un tuo spazio web che gestirai in autonomia, così se devi modificare qualche immagine relativa alla tua area lo puoi fare da solo/a.
IMAGESFOLDER_PUBLIC
Qui l'url al quale sarà accessibile la cartella "uwpics" una volta che è stata uploadata sul tuo spazio web. Per ora lascia inalterato, se hai dubbi chiedi chiarimenti.

Sezione GUI

Purtroppo questa non la puoi modificare, ovvero ogni modifica va fatta in modo concordato con gli altri sviluppatori di Underworld.

Se vuoi puoi modificare però:

LOGOSRC
nome dell'immagine che forma il logo della tua area.

Sezioni PANEL

Queste stanno dentro la sezione GUI quindi va da sé che non le devi modificare.

In realtà lo puoi fare, ma tieni presente che cambiando area il giocatore potrà avere per questo dei problemi (il set di comandi/pannelli sono quelli dell'area in cui il giocatore si è collegato all'inizio). In altre parole perchè i tuoi pannelli aggiuntivi funzionino è necessario far rinfrescare al giocatore il browser dopo che è entrato nella tua area, cambiando al contempo l'URL (cosa che non è possibile fare oggi in automatico).

Se proprio hai bisogno di aggiungere nuovi pannelli e nuovi comandi dovrai prima o poi contattare gli altri autori di Underworld perchè i pannelli che usi tu nella tua area andranno aggiunti anche nelle loro sezioni GUI.

Sezione ROOMS

Qui puoi fare pulizia e eliminare tutte le ROOMS tranne:

  • entrance
  • outside
  • start

Attenzione a eliminare gli ID delle stanze cancellate dai SET definiti nella sezione SETS (vedi più sotto in questo documento)

Ti consiglio inoltre di iniziare a modificare la room start perchè è quella in cui l'utente finirà quando entra nella tua area.

Sezione LINKS

Qui puoi cancellare tranquillamente tutti i collegamenti ad eccezione di toA1 tra le stanze per poi ricrearli come vuoi. Lascia il link toA1 che serve per mandare l'utente novizio all'area 1 in cui sceglierà il ruolo.

Sezione CHARACTERS

Qui la ATTRLIST dovrebbe rimanere inalterata. Tutti i personaggi possono essere cancellati, poi crei quelli che vuoi.


Sezione ITEMS

Qui puoi cancellare tutti gli ITEMS e ricrearli come e quando vuoi tu.


Sezione SETS

Qui devi necessariamente definire i due set seguenti (modifica quindi quelli esistenti)

setAll
Insieme che contiene tutte le stanze (qui vengono materializzati i mostri)
setCovered: Insieme delle stanze buie (dove possono apparire i vampiri)

Notare che in questi set non si possono referenziare stanze inesistenti.


Sezione SCRIPTS

Qui puoi fare alcune modifiche prima di buttarti a capofitto nello sviluppo. Ci sono alcune subroutine e funzioni che puoi riempire e modificare per influenzare il comportamento standard senza dover riscrivere le parti comuni (uwcommons)

Include
Questi vanno lasciati. Se ti serve, includi pure altri file tuoi.
onStart
Alcune cose è bene lasciarle, il resto si può eliminare:
EVENT onStart
	Call common_onStart()
	Call config()
	Call LoadContext() ' Reads game saved status from disk
	'If debugmode Or mode=2
	'	passg = NewItem(start,"un passaggio","Una uscita all'esterno",NewImage("uw2_crack2.gif",46,64),"type=passg,pickable=0,showmode=1,showx=0,showy=150,hideable")
	'	AttachEvent passg,"onLook","transfer1"
	'End_If
END_EVENT

La parte commentata apre un passaggio verso l'area 1 in caso sia attiva la modalità di test. Se ti serve lasciala altrimenti toglila.

config()
Qui la configurazione della tua area
onNew_local()
Opzionale. Qui il codice da eseguire ogni volta che entra un giocatore
LoadContext_Local()
Opzionale. Qui il codice per caricare dati persistenti. Tipicamente qui ci vanno le getSetting che leggono dal file .sav
EVENT onExit
Lascia inalterato per consentire la redirezione dei novizi all'area 1
EVENT entrance.onReceive
Lascia inalterato per consentire il passaggio verso l'area 1
EVENT entrance.onReceiveItem
Lascia inalterato per ora, e modifica poi, per gestire l'arrivo di oggetti da altre aree (anche messaggi di comandi)
Function transfer1
Funzione per trasferire effettivamente le persone verso area 1. Non toccare
Sub checkBomb_local(cont)
Opzionale. Operazioni da eseguire quando nella tua area esplode una bomba.
Sub onKillRobot_local(loser,winner)
Opzionale. Operazioni da eseguire dopo che un mostro è stato ucciso, oltre alle operazioni standard.
Sub popMonster_Local(new)
Opzionale. Operazioni da eseguire quando un mostro appare nella tua area, oltre alle operazioni standard.


Underworld.jpg Torna al WIKI di Underworld Italia

Trucchi Utili

  • Per sviluppare più in fretta consiglio di impostare debugMode=1 nei file worldnav.properties relativo a tutte le aree. In questo modo la connessione al gioco avviene immediatamente con il nominativo "Cris".
  • In entrambe le aree sottomondo 1 e 2 è presente nella funzione config() la variabile globale debugmode. Questa viene controllata dal gioco e se impostata a un valore diverso da zero/null vengono aperti passaggi o creati oggetti utili a fare i collaudi. I valori che puoi assegnare a debugmode cambiano a seconda dell'area. Nel codice sorgente dentro config() c'è qualche commento.
  • Per dare al profilo del giocatore con cui si fa il collaudo particolari caratteristiche di forza/esperienza ecc. ho trovato utile editare il file sottomondo.sav con un text editor.

Documentazione Speciale

vanishing

Gli oggetti che devono dissolversi quando vengono lasciati hanno l'attributo vanishing. vanishing=1 indica che l'oggetto si dissolve se posato per terra (ma l'oggetto in cui cade deve trattarsi di una ROOM).

Gli oggetti con vanishing=2 svaniranno qualunque sia il contenitore in cui vengono messi.

LoadContext()

Per evitare malfunzionamenti, si presuppone che tutte le aree di Underworld abbiano nella loro onStart le chiamate alla funzione globale LoadContext().

La LoadContext, che è definita nella libreria commons.dxl, carica le informazioni di contesto come i nomi delle gilde, i capi gilda, eccetera. Se si omette di chiamare questa funzione si otterranno degli errori.

setCovered()

Per essere in grado di determinare quali stanze sono al riparo dalla luce del sole e quindi accessibili ai vampiri, per ogni area di underworld è necessario definire un set di stanze che si deve chiamare setCovered.

In questo set vanno inserite tutte le stanze al coperto. Se si omette di definire questo set si otterrà un errore.

Link Esterni

  • la pagina del [Progetto Underworld] su SourceForge.net - Sì questo è un progetto open source e puoi contribuire anche tu!