Nanni, Alessandro
(2025)
Un framework per la Meta-programmazione di Minecraft.
[Laurea], Università di Bologna, Corso di Studio in
Informatica per il management [L-DM270], Documento ad accesso riservato.
Documenti full-text disponibili:
![[thumbnail of Thesis]](https://amslaurea.unibo.it/style/images/fileicons/application_pdf.png) |
Documento PDF (Thesis)
Full-text accessibile solo agli utenti istituzionali dell'Ateneo
Disponibile con Licenza: Salvo eventuali più ampie autorizzazioni dell'autore, la tesi può essere liberamente consultata e può essere effettuato il salvataggio e la stampa di una copia per fini strettamente personali di studio, di ricerca e di insegnamento, con espresso divieto di qualunque utilizzo direttamente o indirettamente commerciale. Ogni altro diritto sul materiale è riservato
Download (3MB)
| Contatta l'autore
|
Abstract
Il Domain Specific Language (DSL) di Minecraft, noto come mcfunction, consente lo sviluppo di pack: moduli di contenuti progettati per alterare o aggiungere meccaniche di gioco.
Nonostante il suo ampio utilizzo, questo linguaggio presenta notevoli limitazioni strutturali e sintattiche: ogni funzione deve essere definita in un file separato e non dispone di costrutti quali variabili, istruzioni condizionali e meccanismi di iterazione.
Questi vincoli producono codice prolisso e ripetitivo, compromettendo la leggibilità e la manutenibilità dei progetti di ampia scala.
Per superare tali problemi, questa tesi propone una libreria Java sviluppata durante il tirocinio accademico che, a partire da un'analisi approfondita delle limitazioni e difetti di mcfunction, giunge alla formulazione di un'astrazione che rappresenta la struttura di un pack come un albero di oggetti tipizzati. Sfruttando costrutti di Java e factory methods, la libreria consente la generazione programmatica dei pack, offrendo zucchero sintattico e metodi di utilità che semplificano l'accesso ai file di risorse principali. L'approccio proposto sfrutta la programmazione ad oggetti per fornire validazione statica, supporta la definizione di più risorse all'interno di un singolo file sorgente e automatizza la generazione di boilerplate, eliminando così la necessità di preprocessori o script esterni.
Un working example conferma l'approccio scelto: nel pack di esempio il codice scritto è ridotto del 40%, consolidando 31 file in 3 file sorgenti, con miglioramenti significativi in termini di densità del codice e manutenibilità del progetto.
Abstract
Il Domain Specific Language (DSL) di Minecraft, noto come mcfunction, consente lo sviluppo di pack: moduli di contenuti progettati per alterare o aggiungere meccaniche di gioco.
Nonostante il suo ampio utilizzo, questo linguaggio presenta notevoli limitazioni strutturali e sintattiche: ogni funzione deve essere definita in un file separato e non dispone di costrutti quali variabili, istruzioni condizionali e meccanismi di iterazione.
Questi vincoli producono codice prolisso e ripetitivo, compromettendo la leggibilità e la manutenibilità dei progetti di ampia scala.
Per superare tali problemi, questa tesi propone una libreria Java sviluppata durante il tirocinio accademico che, a partire da un'analisi approfondita delle limitazioni e difetti di mcfunction, giunge alla formulazione di un'astrazione che rappresenta la struttura di un pack come un albero di oggetti tipizzati. Sfruttando costrutti di Java e factory methods, la libreria consente la generazione programmatica dei pack, offrendo zucchero sintattico e metodi di utilità che semplificano l'accesso ai file di risorse principali. L'approccio proposto sfrutta la programmazione ad oggetti per fornire validazione statica, supporta la definizione di più risorse all'interno di un singolo file sorgente e automatizza la generazione di boilerplate, eliminando così la necessità di preprocessori o script esterni.
Un working example conferma l'approccio scelto: nel pack di esempio il codice scritto è ridotto del 40%, consolidando 31 file in 3 file sorgenti, con miglioramenti significativi in termini di densità del codice e manutenibilità del progetto.
Tipologia del documento
Tesi di laurea
(Laurea)
Autore della tesi
Nanni, Alessandro
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
minecraft,metaprogrammazione,libreria,java,ingengeria software
Data di discussione della Tesi
16 Dicembre 2025
URI
Altri metadati
Tipologia del documento
Tesi di laurea
(NON SPECIFICATO)
Autore della tesi
Nanni, Alessandro
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
minecraft,metaprogrammazione,libreria,java,ingengeria software
Data di discussione della Tesi
16 Dicembre 2025
URI
Statistica sui download
Gestione del documento: