Requisiti
Funzionali
-
Avanzamento automatico del personaggio
Il sistema gestisce la progressione del player senza intervento diretto, attraverso eventi casuali. - Generazione casuale di eventi
Gli eventi vengono generati in modo pseudo-casuale e possono includere:- Combattimenti
- Eventi speciali
- Allenamento
- Riposo
- Quest
-
Combattimento automatizzato e comportamenti dinamici
Il combattimento avviene in modo automatico.
Player e mostri possono avere behavior specifici che alterano il flusso del combattimento. -
Sistema di quest
Le quest sono composte da sequenze di azioni automatiche.
Offrono ricompense come gold, esperienza (EXP) e equipment. -
Inventario e risorse
Il player raccoglie materiali che possono essere venduti per ottenere gold, usato per migliorare le statistiche. -
Gestione dell’equipaggiamento
Gli oggetti equipaggiati influenzano direttamente le statistiche del personaggio e vengono ottenuti tramite eventi o quest. -
Skill e vulnerabilità
Il player dispone di skill fisiche e magiche.
I mostri possono essere vulnerabili o resistenti a uno dei due tipi. - Interazione opzionale
Durante eventi speciali, il giocatore può compiere scelte cruciali (opzionali) con esiti casuali.
Esempio: “È comparso Red Goblin: fight or not?”- Esito positivo: +5 livelli
- Esito negativo: morte del personaggio
- Gameplay infinito Il gioco è strutturato come endless, ovvero senza una fine prestabilita. La partita termina esclusivamente in caso di morte del personaggio, condizione che può verificarsi durante eventi casuali o combattimenti particolarmente critici.
Requisiti Non Funzionali
-
Facilità d’uso
Il sistema deve essere semplice da avviare, senza richiedere configurazioni complesse o input continui. -
Esperienza bilanciata e coinvolgente
Il gioco deve offrire una progressione chiara, gratificante e ben bilanciata tra automatismo, casualità e ricompense. -
Interfaccia utente comprensibile
L’interfaccia grafica deve mostrare chiaramente lo stato del personaggio, gli eventi in corso e i risultati, senza ambiguità.
Implementazione
- Linguaggio: Scala (versione 3.x)
- IDE: IntelliJ IDEA
- Sistema di build: sbt
- Testing: ScalaTest
Controllo versione
- Utilizzo di Git con repository su GitHub
- Branch principali:
main
: versione stabilereport
: aggiornamento docsmodels
: modelli del giocoview
: interfaccia del giococontroller
: gestione ambiente di gioco
Documentazione
- Pubblicazione della documentazione tramite GitHub Pages
- Utilizzo di Jekyll per la generazione della documentazione e dello stile.