DimensioneX/underworld/it/extending: Difference between revisions
(5 intermediate revisions by 2 users not shown) | |||
Line 10: | Line 10: | ||
=== 1. Installa DimensioneX === | === 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 | 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: [[DimensioneX/Installation_Manual|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. | 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. | ||
Line 56: | Line 56: | ||
* 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. | * 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. | * 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 == | == 5. Prime modifiche == | ||
Line 179: | Line 180: | ||
Gli oggetti con '''vanishing=2''' svaniranno qualunque sia il contenitore in cui vengono messi. | 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 = | = Link Esterni = | ||
* la pagina del [[http://sourceforge.net/projects/underworldgame/ Progetto Underworld]] su SourceForge.net - Sì questo è un '''progetto open source''' e puoi contribuire anche tu! | * la pagina del [[http://sourceforge.net/projects/underworldgame/ Progetto Underworld]] su SourceForge.net - Sì questo è un '''progetto open source''' e puoi contribuire anche tu! |
Latest revision as of 05:45, 2 June 2011
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.
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!