Implementazione

L’implementazione di Progress Quest è stata realizzata in Scala 3, utilizzando ScalaFX per la GUI e SBT come sistema di build. Il progetto è organizzato in cartelle dedicate a view, models, controllers e gestione degli eventi.

Le funzionalità principali sono state sviluppate seguendo un approccio incrementale:

  • Il game loop automatico è gestito tramite il controller GameLoopController, che simula i tick di gioco, la generazione di eventi e la progressione del personaggio.
  • La generazione del personaggio avviene tramite una schermata dedicata, con randomizzazione di razza, classe, comportamento e attributi.
  • Gli eventi (combattimenti, quest, eventi speciali) sono gestiti da controller specifici, che si occupano di applicare effetti e aggiornare lo stato del gioco.
  • L’interfaccia utente è suddivisa in pannelli modulari, ciascuno responsabile di una sezione del gioco (player, equipaggiamento, statistiche, inventario, mondo, skill, missione, diario, combat log).
  • Lo stato del gioco viene mantenuto e aggiornato tramite i modelli e i controller, garantendo coerenza tra logica e UI.

Il versionamento del codice è stato gestito tramite Git e GitHub, con branch tematici per le diverse funzionalità e una strategia di merge regolare per integrare le modifiche nel branch principale.