Cavallari, Filippo
(2021)
CubicWorld: Progettazione e realizzazione di un prototipo di videogioco sandbox-like in Kotlin ed OpenGL.
[Laurea], Università di Bologna, Corso di Studio in
Ingegneria e scienze informatiche [L-DM270] - Cesena, Documento full-text non disponibile
Il full-text non è disponibile per scelta dell'autore.
(
Contatta l'autore)
Abstract
L’obiettivo di questa tesi è la realizzazione di un propotipo di videogioco della tipologia sandbox ispirato a Minecraft, utilizzando come libreria grafica OpenGL e come linguaggio di programmazione Kotlin.
Una tipologia di giochi che sta avendo successo in questo ultimo periodo e diventando preponderante è la tipologia sandbox. Si tratta di giochi con un’impostazione aperta, slegata da trama e costrizioni, che non prospettano una o più strade tra cui scegliere, ma permettono al giocatore di creare integralmente il mondo di gioco.
Il progetto CubicWorld, sviluppato in questa tesi, fa parte di quest’ultima tipologia e lascia libero il giocatore di inventare e modificare il proprio mondo di gioco, piazzando e distruggendo blocchi con l’ausilio degli strumenti messi a disposizione del giocatore. Per l’implementazione del progetto, ancora in forma prototipale, è stato scelto di utilizzare Kotlin, un linguaggio di programmazione ad oggetti moderno sviluppato dalla Jetbrains e basato sulla Java Virtual Machine; la sua sintassi velocizza notevolmente la scrittura del codice, è null-safe, possiede delle notevoli librerie per il calcolo parallelo e, poiché è basato sulla JVM, è interoperabile con codice Java.
Per la gestione della pipeline del rendering si è utilizzata la libreria LWJGL, la quale fornisce i bindings di tutte le funzioni di OpenGL e di altre librerie grafico/matematiche scritte in C++; nello specifico sono stati usati i bindings di OpenGL (versione >= 2.0), GLFW e la libreria java JOML (molto simile alla libreria GLM per C++).
Abstract
L’obiettivo di questa tesi è la realizzazione di un propotipo di videogioco della tipologia sandbox ispirato a Minecraft, utilizzando come libreria grafica OpenGL e come linguaggio di programmazione Kotlin.
Una tipologia di giochi che sta avendo successo in questo ultimo periodo e diventando preponderante è la tipologia sandbox. Si tratta di giochi con un’impostazione aperta, slegata da trama e costrizioni, che non prospettano una o più strade tra cui scegliere, ma permettono al giocatore di creare integralmente il mondo di gioco.
Il progetto CubicWorld, sviluppato in questa tesi, fa parte di quest’ultima tipologia e lascia libero il giocatore di inventare e modificare il proprio mondo di gioco, piazzando e distruggendo blocchi con l’ausilio degli strumenti messi a disposizione del giocatore. Per l’implementazione del progetto, ancora in forma prototipale, è stato scelto di utilizzare Kotlin, un linguaggio di programmazione ad oggetti moderno sviluppato dalla Jetbrains e basato sulla Java Virtual Machine; la sua sintassi velocizza notevolmente la scrittura del codice, è null-safe, possiede delle notevoli librerie per il calcolo parallelo e, poiché è basato sulla JVM, è interoperabile con codice Java.
Per la gestione della pipeline del rendering si è utilizzata la libreria LWJGL, la quale fornisce i bindings di tutte le funzioni di OpenGL e di altre librerie grafico/matematiche scritte in C++; nello specifico sono stati usati i bindings di OpenGL (versione >= 2.0), GLFW e la libreria java JOML (molto simile alla libreria GLM per C++).
Tipologia del documento
Tesi di laurea
(Laurea)
Autore della tesi
Cavallari, Filippo
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
CubicWorl,kotlin,opengl,sandbox,lwjgl,computer graphics,videogioco
Data di discussione della Tesi
22 Luglio 2021
URI
Altri metadati
Tipologia del documento
Tesi di laurea
(NON SPECIFICATO)
Autore della tesi
Cavallari, Filippo
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
CubicWorl,kotlin,opengl,sandbox,lwjgl,computer graphics,videogioco
Data di discussione della Tesi
22 Luglio 2021
URI
Gestione del documento: