​Il presente elaborato descrive la progettazione e l'implementazione di "Shots Up!", un'applicazione web 3D orientata alla simulazione fisica del tiro a canestro. Lo scopo del progetto è la realizzazione di un'architettura full-stack modulare che integri un motore grafico WebGL all'interno di un framework front-end reattivo. Il sistema è sviluppato interamente in ecosistema JavaScript/TypeScript. Il livello di presentazione e il routing sono gestiti tramite Angular, mentre il rendering tridimensionale, la simulazione fisica e l'illuminazione sono demandati a Babylon.js. Una delle criticità architetturali affrontate e risolte riguarda l'ottimizzazione delle performance: il render loop del motore grafico è stato isolato dal sistema di Change Detection di Angular (Zone.js) per prevenire cali di frame rate e colli di bottiglia computazionali. La persistenza della telemetria di gioco è gestita da un back-end RESTful basato su Node.js ed Express, interfacciato con un database documentale MongoDB. I dati raccolti (coordinate spaziali ed esito dei tiri) vengono infine aggregati e processati nel front-end da un modulo di Data Visualization. Questo modulo normalizza le coordinate 3D su un piano 2D, restituendo una Heatmap interattiva che mappa le zone di maggiore concentrazione e la percentuale di successo dell'utente. Il risultato finale è un videogioco 3D fluido e funzionante, che dimostra all'atto pratico che le tecnologie web riescono a gestire, in un'unica applicazione, l'intero sviluppo di un gioco completo.

"Shots Up!": Sviluppo di un Videogioco Web 3D.

VISENTIN, GIOVANNI
2025/2026

Abstract

​Il presente elaborato descrive la progettazione e l'implementazione di "Shots Up!", un'applicazione web 3D orientata alla simulazione fisica del tiro a canestro. Lo scopo del progetto è la realizzazione di un'architettura full-stack modulare che integri un motore grafico WebGL all'interno di un framework front-end reattivo. Il sistema è sviluppato interamente in ecosistema JavaScript/TypeScript. Il livello di presentazione e il routing sono gestiti tramite Angular, mentre il rendering tridimensionale, la simulazione fisica e l'illuminazione sono demandati a Babylon.js. Una delle criticità architetturali affrontate e risolte riguarda l'ottimizzazione delle performance: il render loop del motore grafico è stato isolato dal sistema di Change Detection di Angular (Zone.js) per prevenire cali di frame rate e colli di bottiglia computazionali. La persistenza della telemetria di gioco è gestita da un back-end RESTful basato su Node.js ed Express, interfacciato con un database documentale MongoDB. I dati raccolti (coordinate spaziali ed esito dei tiri) vengono infine aggregati e processati nel front-end da un modulo di Data Visualization. Questo modulo normalizza le coordinate 3D su un piano 2D, restituendo una Heatmap interattiva che mappa le zone di maggiore concentrazione e la percentuale di successo dell'utente. Il risultato finale è un videogioco 3D fluido e funzionante, che dimostra all'atto pratico che le tecnologie web riescono a gestire, in un'unica applicazione, l'intero sviluppo di un gioco completo.
2025
"Shots Up!": Development of a 3D Web-Based Video Game.
Videogioco
Browser
Pallacanestro
Simulazione
Basket
File in questo prodotto:
File Dimensione Formato  
thesis.pdf

accesso aperto

Dimensione 5.94 MB
Formato Adobe PDF
5.94 MB Adobe PDF Visualizza/Apri

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/116533