Che cos'è un videogioco?
Un videogioco è un tipo di software.
Come ogni software, nasce, cresce e muore durante il suo ciclo di vita.
Creare un videogioco richiede:
- Pianificazione: avere un'idea chiara.
- Competenze: saper programmare, progettare, ecc.
- Strumenti: usare software come Unity o Unreal.
- Collaborazione: saper lavorare bene in squadra.
- Impegno: rimanere costanti e dedicati al progetto.
Il ciclo di vita del software
Un progetto software attraversa diverse fasi:
- Studio di fattibilità: verificare se il progetto è realizzabile e se ne vale la pena.
- Analisi dei requisiti: definire cosa deve fare il software.
- Progettazione: pianificare la struttura e i componenti.
- Sviluppo: scrivere il codice e costruire il software.
- Test: trovare e correggere gli errori (bug).
- Rilascio: pubblicare il software.
- Manutenzione: aggiornare e correggere il software dopo il rilascio.
Se lo sviluppo è caotico, può causare:
- Scadenze mancate e costi più alti.
- Bassa qualità e molti bug.
- Codice difficile da mantenere e aggiornare.
Modelli e metodologie di sviluppo
Modello a cascata (Waterfall) - 1956
È un processo lineare in cui ogni fase deve essere completata prima di passare alla
successiva.
Fasi:
- Studio di fattibilità
- Analisi dei requisiti· Progettazione
- Sviluppo
- Test
- Rilascio
- Manutenzione
Problemi:
- Rigido: È difficile apportare modifiche dopo l'inizio.
- Feedback lento: I problemi vengono scoperti solo alla fine.
- Poco flessibile: Non si adatta bene se i requisiti cambiano.
Modello a spirale
È un processo ciclico con quattro fasi che si ripetono:
- Pianificazione: definire obiettivi e soluzioni.
- Analisi dei rischi: individuare i potenziali problemi.
- Sviluppo e test: costruire e verificare il prodotto.
- Pianificazione successiva: prepararsi al ciclo seguente.
Punti chiave:
- Focus su miglioramento continuo e feedback costante.
- Ideale per progetti grandi perché gestisce bene i rischi.
Metodologia Agile
Si basa su aggiornamenti frequenti e brevi chiamati iterazioni (di poche settimane).
Principi:
- Persone prima dei processi: la comunicazione conta più delle regole rigide.
- Collaborazione con il cliente: il feedback può arrivare in qualsiasi momento.
- Consegne frequenti: aggiornamenti regolari per mostrare i progressi.
- Flessibilità: facile da adattare ai cambiamenti.
Ideale per: progetti dove i requisiti cambiano spesso.
Extreme Programming (XP)
Un tipo di Agile che punta su codice di alta qualità e lavoro di squadra.
Tecniche:
- Programmazione in coppia: due sviluppatori lavorano insieme su un solo computer.· Sviluppo guidato dai test (TDD): si scrivono i test prima del codice.
- Integrazione continua: unire e testare il codice frequentemente.
- Design semplice: mantenere il progetto il più semplice possibile.
Scrum
Organizza il lavoro in cicli brevi chiamati Sprint (da 1 a 4 settimane).
Strumenti e ruoli:
- Pianificazione dello sprint: decidere cosa fare all'inizio dello sprint.
- Stand-up giornalieri: brevi riunioni per verificare i progressi.
- Revisione dello sprint: mostrare il lavoro finito.
- Retrospettiva: riflettere su cosa migliorare.
Ideale per: team che vogliono struttura ma anche flessibilità.
DevOps
Unisce sviluppo e operazioni IT per aumentare velocità ed efficienza.
Pratiche principali:
- Integrazione e distribuzione continua: test e rilascio automatici del codice.
- Automazione: automatizzare attività ripetitive come i test e le build.
- Collaborazione: sviluppatori e tecnici IT lavorano a stretto contatto.
Le 5 W di ogni progetto
Per iniziare qualsiasi progetto, che sia software o altro, è importante definire:
- Perché sarà realizzato? (Scopo)
- Chi lo realizzerà? (Team/Persone coinvolte)
- Come sarà realizzato? (Processi e strumenti)
- Quando sarà realizzato? (Tempistiche/Pianificazione)
- Dove sarà realizzato? (Luogo o piattaforma)
Queste sono chiamate le 5 W: Why, Who, Which, When, Where.
Ciclo di vita del software (ripasso)
Un videogioco è un software e, come un essere vivente, nasce, cresce e muore.
Fasi:· Nascita: Il software viene sviluppato e lanciato.
· Crescita: Si fanno aggiornamenti, miglioramenti ed espansioni.
· Morte: Il software non viene più supportato o aggiornato (End of Life).
Termini importanti:
· GA (General Availability): Quando il prodotto è disponibile al pubblico.
· EOL (End of Life): Quando il prodotto non è più supportato.
Perché strutturare lo sviluppo software?
Senza una struttura chiara, lo sviluppo può diventare caotico, causando:
- Problemi di tempo e costi: si superano le scadenze e i budget.
- Bassa qualità: il prodotto è pieno di bug e difficile da mantenere.
- "Codice spaghetti": codice disordinato e confuso, difficile da correggere.
Riepilogo dei modelli di sviluppo
Modello a cascata
- Modello lineare: ogni fase va completata prima di passare alla successiva.
Problemi:
- Rigido, difficile da adattare ai cambiamenti.
. Il feedback arriva troppo tardi.
Modello a spirale
- Basato su cicli di sviluppo con analisi dei rischi e feedback continuo.
- Più flessibile del modello a cascata. Ideale per progetti grandi.
Metodologia Agile
- Divide lo sviluppo in piccole iterazioni (sprint) con feedback frequente.
Principi:
- Centralità delle persone e delle interazioni.
- Aggiornamenti regolari e coinvolgimento del cliente.
- Design semplice e adattabile.
Extreme Programming (XP)
- Variante Agile con focus su lavoro di squadra, qualità del codice e feedback continuo.Pratiche chiave:
- Programmazione in coppia
- Test prima del codice (TDD)
- Design semplice
Scrum
- Organizza il lavoro in sprint con obiettivi chiari e revisioni regolari.
Componenti principali:
- Pianificazione sprint
- Stand-up giornalieri
- Revisione dello sprint
- Retrospettiva
DevOps
- Unisce sviluppo e operazioni IT per consegne più rapide ed efficienti.
Focus su:
- Integrazione, test e distribuzione continua.
Kanban
- Strumento visivo per gestire le attività tramite una bacheca.
Principi:
- Visualizzare il lavoro
- Limitare i compiti in corso
- Puntare alla consegna continua
Opzioni di finanziamento per lo sviluppo di videogiochi
Autofinanziamento
Usare i propri soldi per sviluppare il gioco.
Piattaforme di Crowdfunding
- Kickstarter: i fondi vengono ricevuti solo se si raggiunge l'obiettivo. Commissioni: 5%
+ 3% di transazione.
- IndieGogo: due opzioni:
○
Finanziamento flessibile: puoi tenere i soldi anche se non raggiungi l'obiettivo.○
Finanziamento fisso: ottieni i fondi solo se raggiungi l'obiettivo.
- Patreon: supporto tramite abbonamenti mensili. Commissioni tra il 5% e il 12% + costi
di transazione.
- Gamefound: simile a Kickstarter, ma con un extra del 10% se vuoi supporto
marketing.
Publisher (Editori)
Possono finanziare lo sviluppo del gioco, ma prendono tra il 20% e il 40% dei profitti.
Cosa fa bene un publisher?
- Gestione del progetto: pianifica e supervisiona l'intero processo.
- Marketing e comunicazione: crea il brand del gioco, racconta la sua storia e gestisce i
rapporti con i media.
- Conoscenza del settore: conosce le tendenze e le piattaforme del mercato
videoludico.
- Competenze legali: gestisce copyright, licenze e contratti.
- Gestione del budget: controlla grandi somme di denaro per rispettare i costi previsti.
Cosa può fare male un publisher?
- Feedback lento: può impiegare settimane o mesi per rispondere.
- Perdita di controllo creativo: può modificare parti del gioco per adattarle al proprio
pubblico o brand.
- Marketing debole: dopo la promozione iniziale, alcuni publisher smettono di
promuovere, lasciando il compito agli sviluppatori.
Cosa serve presentare a un publisher?
- Business Plan: stima dei costi e dei profitti previsti.
- Vision Statement: 1-2 frasi per spiegare cosa rende unico il tuo gioco.
- Pilastri del gioco e USP (Unique Selling Points): cosa lo differenzia dagli altri.
- Analisi SWOT: Punti di forza, Debolezze, Opportunità, Minacce.
- Ricerca sui concorrenti: chi sono i tuoi rivali e dove fanno marketing (YouTube, blog,
social, ecc.).
Team di sviluppo indie
Cos'è un team indie?
Piccoli gruppi (anche sviluppatori solitari) che lavorano in modo indipendente senza grandi
publisher.
Esempio: Minecraft è nato come progetto indie.Esempi famosi di giochi indie sviluppati da team piccoli o singoli sviluppatori:
Stardew Valley, Undertale, Braid, Fez, To the Moon, Axiom Verge, Cave Story.
Ruoli nello sviluppo di un videogioco
- Developer: scrive il codice del gioco.
- Grafico/Modeler 2D/3D: crea le immagini, i modelli e le animazioni.
- Sound Designer/Compositore: crea musica ed effetti sonori.
- Technical Artist: collega programmatori e artisti, ottimizza risorse.
- Level Designer: progetta il mondo e i livelli del gioco.
- Copywriter: scrive testi e dialoghi in-game.
- Project Manager: organizza il progetto e gestisce le scadenze.
- Beta Tester: prova il gioco per trovare bug.
- Marketing/PR: promuove il gioco su vari canali.
Spazi colore e monitor nello sviluppo di videogiochi
Cos'è un gamut di colori?
Il gamut è la gamma di colori che un dispositivo (come un monitor o una stampante) può
visualizzare o stampare.
Ogni monitor, stampante e persino la carta ha il proprio gamut, che rappresenta solo una
parte dell'intera gamma di colori visibile all'occhio umano.
Modelli di colore più comuni:
- SRGB: standard per la maggior parte degli schermi e del web (creato da HP e Microsoft
nel 1996).
- Adobe RGB: gamma più ampia, usato in fotografia professionale.
- DCI-P3: usato nel cinema digitale e su alcuni dispositivi Apple.
- CMYK: usato nella stampa (ciano, magenta, giallo, nero).
- NTSC: vecchio standard TV per i colori.
Perché è importante?
Se visualizzi la stessa immagine su dispositivi diversi, i colori possono apparire diversi perché
ogni dispositivo ha il proprio gamut.
Per chi sviluppa videogiochi non è fondamentale come per i fotografi o grafici, ma è
comunque utile conoscerlo.
Come vengono rappresentati i colori nel game design
Sistemi di rappresentazione del colore:· RGB (Rosso, Verde, Blu): il più usato sugli schermi. I colori si ottengono mescolando
questi tre.
○
Valori: da 0 a 255 (es: Rosso è 255,0,0) o da 0 a 1 (es: 1,0,0)
· HSV/HSL/HSB (Tonalità, Saturazione, Valore/Luminosità): utile per creare transizioni
morbide tra i colori.
○
Hue (tonalità): da 0 a 359
· Esadecimale: colori rappresentati da codici tipo #FF0000 per il rosso.
○
Saturazione e Valore: da 0 a 100
Colori Additivi vs Sottrattivi:
- Additivi (digitale): più colori = più luce = colori più chiari. Tutti i colori insieme =
bianco.
- Sottrattivi (stampa): più colori = meno luce riflessa = colori più scuri. Tutti i colori
insieme = nero.
Dispositivi VR nello sviluppo di videogiochi
Tipi di dispositivi VR:
- VR Standalone: non ha bisogno del PC. Esempio: Oculus Quest
- VR cablata (Wired): si collega al PC per prestazioni migliori. Esempio: Oculus Rift
- VR ibrida (Hybrid): funziona sia con che senza PC. Esempio: Oculus Quest 2
Gradi di libertà (DoF - Degrees of Freedom):
- 3 DoF: traccia solo la rotazione della testa (su/giù, destra/sinistra)
- 6 DoF: traccia rotazione e movimento nello spazio (avanti/indietro, lateralmente)
Visori VR più noti e prezzi indicativi:
- Oculus Quest 2: ~ 349€ (standalone, può collegarsi anche al PC)
- HTC Vive Pro: ~ 1099€ (richiede PC e sensori esterni)
- Valve Index: ~ 1600€ (top di gamma, solo cablato)
- PlayStation VR: richiede console PlayStation
Panoramica dei motori di gioco
Cos'è un motore di gioco?
Un game engine è un software che aiuta a costruire videogiochi, offrendo strumenti per:
- Grafica: visualizzazione 2D/3D
- Fisica: movimento, collisioni, gravità
- Suono: musica ed effetti