Ciao a tutto il team di GDRCD 5.6 e grazie per averci concesso questa intervista per raccontarci la nuova release, presentare il vostro progetto ed il team!
Ciao a Te, Gianluca, e a tutta l’utenza di GdR-Online.com!
Grazie a Voi, piuttosto, per averci dato la possibilità di presentare in modo più dettaglio l’iniziativa che stiamo portando avanti da qualche mese a questa parte e che ci ha permesso di toccare con mano non solo la realtà che vi è dietro a GDRCD, ma anche il grande supporto offerto dalla community di GdR-Online. In merito all’ultimo aspetto, questa intervista è una opportunità davvero preziosa per noi e speriamo, di rimando, di essere quanto più esaustivi possibile.
Per iniziare andiamo subito al dunque. Cosa ha di nuovo GDRCD 5.6 e cosa avete corretto?
Partiamo con il parlare di uno dei principali motivi che ci ha spinto alla realizzazione di questa nuova versione: gli errori. Nonostante il lavoro di breaker con GDRCD 5.5.1, il software era ancora ricco di tantissime criticità e refusi irrisolti, molti dei quali presenti da diverse versioni a questa parte. Abbiamo raccolto quante più segnalazioni possibili da ogni dove, sia provenienti dal Forum di GdR-Online.com che tramandate di gestore in gestore, e abbiamo provveduto a risolverli uno ad uno, nei limiti delle nostre possibilità. Viene da sé, che la lista delle correzioni apportate è veramente lunga ed è difficile riassumere in poche righe il lavoro fatto, tuttavia possiamo riportare qualche esempio lampante, come il primo login del personaggio nella parte interna del software, il quale una volta effettuato l’accesso non viene aggiunto alla lista dei presenti per una serie di date non valorizzate correttamente, oppure il mancato controllo sull’esistenza della chat a cui si sta per accedere, per non scordare il recupero della password del proprio account che non funziona per personaggi associati ad email non criptate. Siamo anche consapevoli che probabilmente non siamo stati in grado di correggerli tutti e che qualcosa ci sarà sfuggito, ma ci impegneremo a continuare nella nostra missione di pulizia, anche dopo questo rilascio.
Per quanto riguarda le aggiunte, abbiamo inserito come “default” alcuni dei pacchetti presenti su GdR-Online.com, che ci vengono richiesti dai giocatori spesso e volentieri, come per esempio un log chat più ordinato, le fasi lunari, il diario del personaggio, una gestione migliorata dei messaggi, una homepage più funzionale e personalizzabile, sia livello di temi che di contenuti, ed altre piccole implementazioni provenienti dalla community.
D’altro canto, c’è stato anche il tempo di realizzare nuove funzionalità, basate sulle idee dei nostri tester, programmatori e grafici del progetto, come per esempio la registrazione delle giocate con conseguente segnalazione ai master per migliorare il controllo vidime, sessioni di gioco legate a quest e via dicendo.
Ovviamente, tutte queste sono solo una parte delle modifiche fatte ed invitiamo chiunque fosse interessato nell’apprendere la totalità dei cambiamenti ad approfondire leggendo i changelog presenti nell’apposito thread dedicato al progetto presente qui, nel portale di GdR-Online.com.
Parlateci del vostro progetto di rilancio del GDRCD. Quali sono i vostri obiettivi? Come lavorate?
Come abbiamo spiegato anche nel thread di presentazione del progetto, l’obiettivo che sta alla base dell’iniziativa racchiude l’aggiornamento e il mantenimento a lungo termine di GDRCD, attraversando dapprima lo svecchiamento dei suoi metodi, ormai decisamente obsoleti, e la correzione delle molteplici logiche non più funzionali ed anomalie, per quindi sbrogliare la matassa della sua intricata struttura e favorire una maggiore scalabilità delle sue componenti. Dopotutto, uno strumento in grado di potersi evolvere in base alle esigenze del suo utilizzatore permetterebbe, pur usando lo stesso engine alla base, di poter differenziare i progetti ed avere maggiore respiro nella personalizzazione e nella scelta delle proprie funzionalità. Poter garantire questo, cosa che attualmente è ben lontana dall’essere fattibile, comporterebbe una notevole semplificazione nello sviluppo del proprio sito e un abbattimento dei costi, sia a livello di tempistiche ( per chi vuole destreggiarsi o possiede un poco di competenze) che a livello di investimento economico (che chi vuole assumere un programmatore). Avere ben chiaro questo obiettivo ci permette di fare le scelte più consone a livello di risorse, difficoltà del codice e inserimento di nuove feature destinate a molte persone.
Il metodo di lavoro, senza scendere troppo nel dettaglio tecnico, si basa principalmente su pochi, ma fondamentali principi:
- Condividere apertamente le proprie idee ed intenzioni, in modo che chiunque possa dire essere partecipe nelle scelte di direzione
- Restare sempre aperti al dialogo ed all’ascolto degli altri membri del gruppo, dato che tutti possono sempre aggiungere il proprio “valore aggiunto” ad un’idea
- Ricordarsi che non si è nemici, ma collaboratori, cosa che ci aiuta a ricordare che non serve scavallare gli altri o vederli come rivali, ma che si lavora in un ambiente che ha come ideale quello di aiutare tutti e non di mettersi in competizione
Il team del progetto è formato da più membri. Ce li volete presentare?
Quasi la totalità dei membri del Team provengono da GdR-Online.com, pertanto utilizzeremo i nickname del portale per presentarci.
Per la parte di amministrazione e sviluppo del progetto, abbiamo:
- Kasa
- Gianni10049
- LeoBlackSoul
- Dyrr
Per la parte di sviluppo codice e tecnico:
- Lilihel
- Anneth
Per la parte grafica:
- Evolve
- anonimo2000
- Nyx (non possiede un account su GdR-Online.com, quindi useremo il suo nick di Discord)
Oltre tutte queste persone, c’è poi tutta l’utenza che ci ha seguito, alcuni fin dalle prime battute del progetto, e la schiera dei tester, che hanno collaborato con noi e che ringraziamo infinitamente per tutto il lavoro che fanno.
Anche se non li elenchiamo tutti, sono stati la parte fondamentale nella realizzazione di molte migliorie e nella cruciale scoperta di bug, sia prima che dopo la fase di sviluppo.
Quali esperienze pregresse hanno i membri del team?
Il Team di GDRCD può vantare membri dalle più variegate esperienze pregresse, in quanto si possono trovare sia esperti del mondo della programmazione (Kasa, Gianni10049, LeoBlackSoul e Dyrr) o della grafica (Evolve, Nyx), che operano nel settore anche al di fuori del mondo dei Giochi di Ruolo a livello professionale, sia membri che lo fanno per hobby o per esperienza protratta nel tempo da autoditatti di GDRCD, sia dal punto di vista tecnico (Lilihel e Anneth) che prettamente grafico (anonimo2000). Oltre questo gruppo di persone, che lavora direttamente sopra GDRCD, sono presenti anche collaboratori che mettono a disposizione le loro competenze in aspetti meno “tecnici”, quali la legalità e il GDPR (musicamusa) che al giorno d’oggi è fondamentale per qualsiasi portale telematico. Come si può notare, ognuno può contribuire a modo suo al progetto, portando la propria esperienza pregressa e mettendo a disposizione qualsiasi risorsa ritenga utile per l’evoluzione del software.
In ogni caso, tutte queste persone e le risorse accumulate vengono successivamente gestite dai membri del team “amministrativo”, il cui scopo è quello di stabilire gli obiettivi, orchestrare il lavoro e raggiungere nel minor tempo possibile gli obiettivi predisposti, forti delle proprie conoscenze nel mondo dello sviluppo di software e webapp e nel project management.
Come si può contribuire al progetto?
I metodi principali per contribuire al progetto sono due:
- Utilizzare la repository GitHub di GDRCD, famosa piattaforma per lo sviluppo corale di software, in cui è possibile aprire “issues”, ovvero segnalazioni di errori, per informare il Team di eventuali bug o altre problematiche, nonché per la proposta di nuove feature desiderate;
- Utilizzare il server Discord pubblico del progetto, dove è possibile interagire in prima persona e con più dinamicità con il gruppo di sviluppo o con altri utenti che potrebbero aiutarvi ad identificare o replicare il vostro problema.
All’interno del server Discord è possibile anche richiedere di entrare nel team di sviluppo non solo come utenti, ma anche come programmatori, grafici o tester, così da contribuire pienamente al progetto. Per i tester non sono richieste particolari abilità o conoscenze specifiche, se non una buona volontà ad eseguire, per l’appunto, i test della piattaforma. Discorso chiaramente differente per grafici e programmatori, dove NON si richiede un’avanzata conoscenza dell’argomento ma almeno un’infarinatura base di quello che riguarda questi due campi.
Ricordiamo che per chi ha conoscenze anche minime di programmazione e grafica, non ci rifiutiamo mai di aiutare o istruire, nel limite delle nostre capacità temporali, chi vuole partecipare al progetto, a patto che abbia realmente voglia di imparare e di migliorarsi, anche se solo per hobby!
Come detto in precedenza, il progetto è stato realizzato dalla comunità per la comunità e ogni aiuto è ben accetto, anche se non strettamente collegato all’ambito tecnico dello sviluppo.
Avete già in mente il prossimo passo? State pensando ad un GDRCD 5.7 per continuare il lavoro di fixing o siete già proiettati ad un GDRCD 6?
Forti di una buona organizzazione ed esperienza abbiamo già in mente quali saranno i prossimi passi verso cui proiettarci.
Per ora la versione 5.6 (e tutte le sue sottoversioni: 5.6.1, 5.6.2 etc.) sarà considerata come la major release finale per la retro-compatibilità quasi totale di tutte le funzioni e i fix che implementeremo nel tempo e che concluderanno il lavoro iniziato con la versione 5.5. Si tratta, appunto, di una versione “transitoria”, verso quello che sarà il vero e proprio “lavoro” del Team di GDRCD.
Ci siamo resi conto, col tempo, che molte sezioni e molte logiche sono ormai “vetuste” rispetto a quello che oggigiorno è lo standard minimo per la programmazione di un pacchetto, il quale che deve sopperire ad una richiesta così grande di modifica e customizzazione per l’utente finale, quindi abbiamo deciso di mettere un punto fermo (la 5.6) a tutto ciò che è il “vecchio” GDRCD gdrcd ed iniziare quindi a riscrivere tutte le parti fondamentali del codice in una versione completamente rimodernata del pacchetto.
Di fatto, escludendo fix e varie, il progetto è fortemente proiettato verso una futura major release che includerà una completa riscrittura di molte delle parti fondamentali di GDRCD, compresa la parte più “core” del pacchetto.
Questo non significa che dalla versione 5.6 alle future major release verrà completamente scartato tutto ciò che è stato fatto nel tempo, ma che nell’arco delle prossime release, sia major che minor, molti pezzi che scriveremo, riscriveremo o modificheremo, smetteranno probabilmente di essere retrocompatibili con le vecchie versioni di GDRCD, senza modifiche per l’utente finale.
Sottolineiamo con fervore, perché per noi fondamentale, che molte delle future modifiche NON sono completamente incompatibili con le vecchie versioni, ma per funzionare potrebbero aver bisogno di un lavoro di programmazione ed adattamento (per le land già all’attivo) che potrebbe richiedere l’intervento di un esperto in materia di programmazione.
Cosa avete in mente di implementare? Qualche spoiler per i lettori di gdr-online.com? :)
Qualche spoiler sicuramente possiamo farlo e lo facciamo volentieri.
Abbiamo già qualche sezione interamente riscritta e pronta per essere pubblicata, non aspetta altro che qualche ritocco per adattarsi alle nuove funzionalità previste per il nuovo “core” di GDRCD, così come qualche interessante aggiunta che potrebbe ampliare la gestione del gioco. Ma si tratterebbero di spoiler “minori”, rispetto a ciò che di più succoso stiamo facendo bollire in pentola per gli utenti a cui la parte più profonda del funzionamento tecnico non interessa.
Le cose principali che possiamo “assicurare” per le prossime versioni, major o minor, sono:
- Una riscrittura totale della Chat, che avrà le stesse funzionalità di quella attuale (e non solo), ma con un motore tutto nuovo al di sotto del cofano (con conseguente demolizione di quel ref_header.inc.php, che nel tempo è diventato il nemico pubblico numero 1 di qualsiasi sventurato sviluppatore!!);
- Una riscrittura totale dei Forum, con l’aggiunta di qualche funzione molto carina come il recupero dei messaggi eliminati, lo storico delle modifiche e la possibilità di assegnare le bacheche in più vari e specifici modi. (anche perchè i forum, dopo il ref_header.inc.php, è il secondo mostro sacro di GDRCD, parliamone....);
- Una riscrittura totale del sistema di abilità, che avrà non solo un nuovo motore maggiormente organizzato e più funzionale allo scopo, ma l’aggiunta di qualche chicca ed implementazione che ci siamo già predisposti, come la possibilità di utilizzare un numero illimitato di statistiche e/o abilità come requisito per le abilità;
- Una grossa modifica del sistema di messaggistica, per permettere di utilizzare varie modalità di interfaccia messaggi, come quello in stile WhatsApp o quello a singolo messaggio attualmente disponibile, oltre qualche funzionalità in più che non vi spoileriamo!;
- Un massiccio utilizzo della logica a classi di PHP all’interno di tutti i moduli di GDRCD, in modo da poter finalmente iniziare il passaggio verso quelle che saranno le tecnologie peculiari di PHP 7 e una rivoluzione strutturale delle librerie del software. Lavoro fondamentale che porterà ad una maggiore scalabilità del progetto.
- Una completa ristrutturazione della logica di gestione dei dati, per permettere al gestore di avere molte più opzioni di gestione all’interno della land senza dover mettere mano al codice;
Direi che come spoiler può bastare! Altrimenti che gusto c’è nel farvi aspettare le prossime release? :D
I base alla vostra esperienza, GDRCD 5.6 sarà più facile da gestire per futuri novelli gestori di play by chat rispetto alle versioni precedenti?
Come premesso, questa nuova release non serve a riscrivere o rimodernare il codice per permettere una maggior facilità di gestione da parte dell’utente finale, ma per lo più a riparare tutte quelle falle lasciate nel tempo ed aggiungere qualche nuova funzionalità tra quelle più richieste. Lungi, però, dall’aver stravolto, per il momento, la struttura complessa del software e la dinamica delle pagine.
E’ verosimile che molti aspetti di GDRCD, soprattutto quelli appena aggiunti, siano più facilmente gestibili per il novello gestore, in quanto queste possono essere attivate, disattivate o aggiornate in modo molto più semplice con la semplice modifica di un valore (attraverso il file includes/constant_values.php), così come è stato reso un poco meno articolata la configurazione della homepage, sia a livello di tema che di pagine,
Oltre questo, abbiamo iniziato ad implementare, come standard del progetto, dei piccoli incipit nelle pagine di gestione (per ora solo in quelle nuove, successivamente per tutte le altre) che possano aiutare i gestori a capire come utilizzare, in modo più intuitivo, tutta la parte gestionale del sito.
L’obiettivo resta comunque quello di semplificare, nel tempo, le operazioni di configurazione per il fruitore, per quanto possibile.
E se qualcuno volesse aggiornare da GDRCD 5.x a GDRCD 5.6 pensate sia fattibile senza distruggere tutto il gioco? :)
La risposta più sintetica che ci viene in mente è: Dipende.
Con un po' di abilità tecnica e altrettanta pazienza, è tutto sommato facile aggiornare dalla 5.5 alla 5.6, dato che molte sezioni nuove sono stand-alone e il resto si tratta di correzioni a problemi noti, propri della precedente versione.
E’ sicuramente più complesso adattare versioni più vecchie della 5.5 con la 5.6, dato che alcune strutture non sono esistenti e non tutte le funzioni sono complete. In questo caso, occorrerebbe scegliere una di queste due strade: prendere in mano tutte le versioni successive alla propria ed aggiungere le varie modifiche descritte nei changelog fino ad arrivare alla 5.6 oppure armarsi di un fegato di ferro ed iniziare a studiarsi pagina per pagina quali sono le differenze rispetto alla 5.6 ed andare a prelevare solo quello di cui si necessita, facendo attenzione alle modifiche che si apportano.
Ovviamente questo lavoro va a complicarsi enormemente se sul codice 5.x sono state fatte molte modifiche specifiche per la propria land che hanno stravolto il codice “originale” su cui si basano le nuove release. Perchè si, le nuove release vengono sempre sviluppate sulla base del codice “vergine” della versione PRECEDENTE e non su TUTTE le versioni precedenti o le loro millemila possibili modifiche!
Questo sempre per ricordare che consigliamo caldamente questo genere di operazioni a chi ha capacità tecniche adatte o a chi vuole avvalersi di un professionista che lo fa al suo posto.
Purtroppo, per quanto anche noi del Team stiamo cercando di sostenere la retrocompatibilità, purtroppo non sempre è fattibile quando si parla di software dove non esistono parti “interne”, solitamente toccate solo dagli sviluppatori originali, e parti “custom”, a disposizione di tutti. Senza contare che avendo l’output HTML costantemente mischiato con le logiche PHP, è un azzardo ogni modifica che viene fatta.
Stiamo ragionando anche su questi aspetti per le prossime versioni, seguendo un approccio un poco più canonico sullo sviluppo di software CMS. E confidiamo davvero di rendere GDRCD un motore degno del termine CMS!
Grazie mille per il tempo che ci avete dedicato e ora tutti a scaricare GDRCD 5.6!
Grazie mille a Te per il tempo che ci hai dedicato, sia con l’intervista che al di fuori di essa, e grazie a tutti coloro che scaricheranno e proveranno GDRCD 5.6! Questo è solo l’inizio!