Computer Game Developer Piano del corso

Transcript

Computer Game Developer Piano del corso
Computer Game
Developer
Piano del corso
in collaborazione con
Developer
Introduzione
Questo corso è progettato per gli studenti interessati ad entrare nel mondo dello sviluppo informatico.
DEV
Tuttavia, non è pensato solo per i grandi fanatici dei videogiochi. Oltre alla passione per i giochi, gli
studenti del nostro corso per Sviluppatore di videogiochi dovranno avere l’impegno e la determinazione
per andare oltre il solo giocare: avranno bisogno di essere motivati a lavorare sodo e creare i propri titoli,
e dovranno mostrare il forte desiderio di diventare parte di un settore emozionante e dinamico.
Durante il corso, agli studenti viene insegnato passo dopo passo tutto ciò comportano che le fasi di
programmazione di un videogioco, esattamente come accade nel mondo reale. Le lezioni sono preparate
e insegnate da professionisti del settore e programmatori che sfi dano costantemente i limiti del settore
nel mercato di oggi. Il tutto è presentato in un formato unico, molto influenzato dalla tecnologia ludica,
per aiutare a imparare, ricordare e, soprattutto, a divertirsi mentre si acquisiscono nuove competenze.
In aula vengono insegnate le basi della programmazione in C++, i principi alla base dei giochi in 2D e
infine in 3D, dal concetto iniziale ai processi e alle metodologie dietro tutti i videogame.
Il corso è impartito attraverso una serie di lezioni ed esempi, coadiuvati e sostenuti da un ampio numero di
esercizi pratici. L’obiettivo del corso è aiutarti a imparare e crescere nella programmazione di videogiochi.
Speriamo che ti piacerà studiare questo corso quanto piace a noi insegnarlo.
Comincia la tua nuova carriera da sviluppatore di videogiochi.
Il settore dei videogiochi non è solo un lavoro, ma una vita piena di sfi de, divertimento e grandi gratifi cazioni.
Struttura del corso
Tutti i nostri corsi hanno una struttura a
moduli, ulteriormente divisi in lezioni e
singoli argomenti, con esempi pratici che
costituiscono la lezione stessa. Uno dei
nostri tutor esperti del settore impartirà la lezione e
avrai l’opportunità di imparare con molti altri studenti in
uno spazio di lavoro collaborativo.
Durante il corso, ci saranno delle valutazioni
periodiche, per permettere a te e al tuo tutor di calibrare
i progressi e sfi dare i tuoi limiti in ciò che hai imparato.
Valuteremo i tuoi progressi con: compiti pratici che riuniscono
vari argomenti, test di comprensione, il tuo portafoglio di
progetti e l’esame finale!
2
Developer
Modulo P1: Creare prototipi con un Game Creation System
Preparazione
Design
DEV
Lezione 1 - Prima di iniziare
Lezione 2 – Uso di base di Game Creation System
Introduzione al software GCS
Esempio di gioco parziale semplice
Lezione 3 – Un esempio più avanzato
Un esempio avanzato
Pianificare l’idea di base, identificare e ottenere gli asset in rete
Implementare l’idea
Lezione 4 – Concetti avanzati
Un esempio complesso
Implementazioni su dispositivi mobili
Creare un’anteprima su Wi-Fi
www.dbgameacademy.it
3
Modulo P2: Principi generali di programmazione
Lezione 1 – La logica
DEV
Struttura logica
Pseudocodice
Lezione 2 – Variabili
Quando usare le variabili
Numeri e stringhe
Lezione 3 – Il processo decisionale
Conditional logic
Repeating logic
Lezione 4 – Diagrammi di flusso
Struttura del diagramma di flusso
UML
4
Developer
Modulo P3: Primi passi in C++
Breve analisi di altri linguaggi (per es. C#, Java)
Perché imparare C++ aiuta con gli altri linguaggi
Compilatore o interprete?
Codice o script?
Lezione 2 – Il compilatore
Impostare Visual C++
Il tuo primo programma
Lezione 3 – Le basi di C++
Sintassi
Tipi di variabili (ossia numeri, stringhe, ecc.)
Matrici
Lezione 4 – Funzioni
Parametri predefiniti
Regole di visibilità
Spazi dei nomi
Lezione 5 – Le tue tipologie
Strutture e unioni
Typedef ed enumerazione
Annotazioni e casting
Ciclo vitale e visibilità delle variabili
DEV
Lezione 1 – Perché C++?
www.dbgameacademy.it
5
Modulo P4: Principi di livello superiore in C++
Lezione 1 – Overloading
Overloading dell’operatore e della funzione
Funzioni ricorsive
Lezione 2 – Classi
Programmazione orientata agli oggetti
Spiegazioni sulle classi
Member functions e variabili
Friends
Lezione 3 – Elementi statici, costanti e template
Elementi statici e costanti
Static member functions, variabili statiche
Template e polimorfismo
Lezione 4 – Tutto ciò che devi sapere sui puntatori
Puntatori
Riferimenti
Allocazione di memoria: stack & heap
Lezione 5 – Liste, iteratori e altro
Liste semplicemente e doppiamente concatenate
Iterare attraverso oggetti
STL
Classificare gli algoritmi
Lezione 6 – Eseguire il debug
Spiegazione degli strumenti di base per il debug in Visual C++
Breakpoint e Watch window, breakpoint condizionali
Eccezioni
Migliorare la capacità di scovare i bug
Errori comuni
6
Developer
Modulo P5: Programmazione migliore, programmare in gruppi
Stile, notazione ungherese
Commenti
Direttive
DEV
Lezione 1 – Convenzioni
Lezione 2 – Oggetti e programmazione orientata agli oggetti (OOP)
Spiegazione degli oggetti
Orientamento agli oggetti
Scambio messaggi tra gli oggetti
Lezione 3 – Design pattern
Factories
Singleton
Manager
State machine
Lezione 4 – Controllo versione
Vari tipi di controllo versione
Branching, trunks
Unificare i cambiamenti
Lezione 5 – Gestione dei progetti
Waterfall, Agile, ecc.
Strumenti di gestione, Project, JIRA, ecc.
www.dbgameacademy.it
7
Modulo P6: Teoria di programmazione grafica
Lezione 1 – Tutto ciò che devi sapere su 2D e 3D
Spiegazioni e paragoni tra 2D e 3D
Concetti e termini fondamentali del 2D
Concetti e termini fondamentali del 3D
Lezione 2 – Spazi del progetto
Local space, global space
Funzioni trigonometriche
Proiezioni
Lezione 3 – Vettori e matrici
Trasformazioni e combinazioni
Prodotti scalari, prodotti vettoriali
Normali, ordine di avvolgimento
Lezione 4 – Modelli 3D
Rappresentazioni poligonali
Applicare texture
Coordinate UVW e mappatura
Lezione 5 – Telecamere e luci
Campo visuale (FOV), frustums
Eliminazione selettiva
Come calcolare la luce
Tipi di illuminazione
Lezione 6 – La pipeline grafica
Spiegazioni sulla pipeline grafica
Fissa o programmabile?
Breve spiegazione sugli shader
8
Developer
Modulo P7: Primi passi nella programmazione di giochi
Lezione 1 – Considerazioni
Programmazione di giochi
Orientamento agli oggetti o agli eventi?, loop principale
Delta time
Indipendenza della piattaforma
Lezione 2 – SDK, motori e altro
DirectX e OpenGL (in breve)
Motori grafici e sviluppatori
Unity, UDK (in breve)
Lezione 3 – Tipi più semplici di intelligenza artificiale
Soluzioni semplici di intelligenza artificiale
Patrolling e route-finding
Aggiungere nemici ad un progetto reale
Lezione 4 – Aggiungere il suono
Campionatura, forme d'onda
Buffer
Audio posizionale
Aggiungere effetti sonori e musica a un progetto reale
Lezione 5 – Generazione procedurale
Usare il programma per generare risorse
Frattali, rumori, ecc.
Tavole, dati, ecc.
Lezione 6 – Salvataggio e caricamento
Salvataggio e caricamento
Serializzazione
Considerazioni sulla struttura dati
www.dbgameacademy.it
9
Modulo P8: Programmazione Windows e DirectX
Lezione 1 – Programmazione Windows
DEV
Windows, messaggi
Integrare con DirectX
Superfici, chiusure, buffer doppio
Immagini sprite, trasparenza
Lezione 2 – Direct 3D
Qual è la relazione tra le varie tecnologie DirectX
Come ti può aiutare Direct3D
Impostare una scena in D3D, buffer di vertice
Modulo P9: Programmazione Windows e OpenGL
Lezione 1 – Programmazione Windows
Windows, messaggi
Integrare con OpenGL
Superfici, chiusure, buffer doppio
Un progetto semplice a schermo fisso
Lezione 2 – OpenGL
Come ti può aiutare OpenGL
Impostare una scena su OpenGL
10
Developer
Modulo P10: Utilizzare Unity
Funzionalità e potenzialità
UI
Scripting
DEV
Lezione 1 – Introduzione a Unity
Lezione 2 – Creare una scena/app semplice in 3D
Creare mondo, telecamera, luci
Aggiungere il movimento
Aggiungere collisioni e altri dettagli
Lezione 3 – Usare il 3D per creare una scena/app in 2D
Strategia in 2D
Oggetti planari, billboarding
www.dbgameacademy.it
11
Modulo P11: Animazione avanzata e visualizzazioni
Lezione 1 – Scheletri e animazioni
Perché usiamo gli scheletri
Skinning
Animazione
Importare un’animazione 3D
Lezione 2 – Stencil Buffer, ombreggiature
Stencil buffer
Varie tecniche di ombreggiatura
Lezione 3 – GPU e l’uso degli shader
HLSL, ecc.
Pix-> Debugger per Visual Studio Graphics
Mappatura normale e altri effetti visivi
Lezione 4 – Raccolta in 3D, collisioni
La tecnica di raycasting
Come agire con altri tipi di collisioni
Collisioni 3D in pratica
Lezione 5 – Gestione della scena
Rendering a istanze
Alberi BSP, grafico di scena
Algoritmi sweep and prune, strutture di dati
Lezione 6 – Particelle e shader avanzati
Sistemi particellari
Rendering della texture
Multi-texturing su terreni (splatting)
12
Developer
Modulo P12: Considerazioni sulla tecnologia mobile
Android, iOS, ecc.
Telefoni, tablet, gestire risoluzioni diverse, retina
DEV
Lezione 1 – Sviluppare per i dispositivi mobili
Ottimizzazioni specifiche per i dispositivi mobili (draw call)
Input aggiuntivi: tocco, inclinazione, GPS, telecamere, ecc.
Lezione 2 – Gli App Store
Apple, Google, Amazon
Analytics
Modulo P13: INTELLIGENZA ARTIFICIALE
Lezione 1 – Strategie di intelligenza artificiale
Tipi di intelligenza artificiale
Intelligenza artificiale più semplice, guida, pattugliamento, ecc.
Trovare le strade con A*
Lezione 2 – Intelligenza artificiale più complessa
Alberi decisionali
Algoritmi genetici
Intelligenza artificiale a turni
Lezione 3 - Apprendimento della macchina
Reti neurali
Percettroni
Scacchi con intelligenza artificiale, alberi minimax
www.dbgameacademy.it
13
Modulo P14: Gestire più giocatori
Lezione 1 – Considerazioni sul multiplayer
DEV
Approccio autoritario o non autoritario?
Sincronizzazione, latenza
Far fronte a disconnessione e migrazione del server
Previsione del cliente, interpolazione
Modulo P15: Quando c’è più di un core
Lezione 1 – Programmazione in multi-threading
Usare più nuclei
Sicurezza dei thread
Comunicazione tra processi
14
Developer
DEV
Note
www.dbgameacademy.it
15
Scopri di più su:
www.dbgameacademy.it
DIGITAL BROS GAME ACADEMY S.r.l.
via Labus 15/3 - 20147 Milano
Tel.: (+39) 02 41.30.31
E-mail: [email protected]
© Copyright Train2Game Sro