Una GUI (Graphical User Interface) è un'interfaccia utente che consente l'interazione con un sistema o un'applicazione attraverso elementi grafici come finestre, pulsanti, icone, menu e caselle di testo invece di utilizzare solo comandi testuali o codici.
Per quanto ci riguarda, la GUI del nostro gioco in Java è realizzata mediante un insieme di strumenti integrati, tra cui :
AWT (Abstract Window Toolkit): una libreria semplice e leggera, che ci permetterà di definire i vari ActionListener (parliamo meglio di Event-Driven programming nella sezione apposita);
Swing: una libreria avanzata e versatile, che permette la creazione di interfacce utente complete e indipendenti dal sistema operativo.
Giunti a questo punto, è superfluo menzionare ogni caso in cui utilizziamo elementi grafici nel nostro gioco, dal momento che l'esperienza utente e la parte grafica costituiscono per evidenti ragioni dei pilastri fondamentali del nostro prodotto.
La GUI del nostro gioco costituisce un ponte imprescindibile tra il codice di backend e l’utente finale, consentendo di visualizzare i personaggi, le mappe e i punteggi in modo chiaro e di interagire con il gioco tramite pulsanti, menu e finestre; mantenendo alto il coinvolgimento dell'utente nel gioco senza la necessità di conoscere gli algoritmi e le procedure che vi sono dietro.
La realizzazione di una GUI così articolata e colma di particolari, ci ha permesso di mettere ulteriormente in pratica i principi OOP come incapsulamento ed ereditarietà, collegando la teoria alla costruzione di componenti visivi concreti e interattivi.
L’uso delle GUI modulari, ad esempio, ci ha permesso di organizzare il gioco in pannelli e finestre separate, semplificando la manutenzione del codice e l’aggiunta di nuovi elementi grafici.
Le interfacce grafiche sono inconfutabilmente essenziali perché trasformano la comunicazione tra l’utente e il computer in qualcosa di facile, immediato e visivo, dove invece di scrivere comandi testuali, l’utente può interagire con finestre, pulsanti, menu e immagini, rendendo l’esperienza molto più naturale ed accessibile ad una più ampia gamma di persone anche non familiari con l'informatica.
Da un punto di vista didattico, le GUI possono aiutare a comprendere meglio i concetti, poiché visualizzare ciò che succede può facilitare di molto l’apprendimento. Per esempio, in un gioco o in un’applicazione, vedere i cambiamenti sullo schermo in risposta alle azioni rende più chiaro come funzioni il programma dietro le quinte.