Introdurremo brevemente i moderni engine per lo sviluppo multimediale, con particolare riferimento ad Unity. Passeremo ad analizzare i passi principali per la realizzazione di un semplice clone di Break Out, evidenziando alcuni degli errori più comuni nell'approccio a questo tipo di sviluppo.
Presentazione a cura di Maurizio Tatafiore http://www.hypothermicgames.com
OrientDB - Perché le tue applicazioni meritano un DB Multi-ModelDevDay
Il NoSQL ormai e' una tecnologia consolidata, i nuovi modelli dati (document, graph, key/value) hanno mostrato tutti i loro vantaggi, ma anche le loro debolezze.
Ci hanno detto "usa il giusto data model per il tuo use case", peccato che il tuo use case quasi mai si può inquadrare in un singolo data model, relazionale, document o graph che sia.
In questo talk parleremo di come il NoSQL si stia evolvendo verso il Multi-Model e di come OrientDB sta guidando questa evoluzione, che ha al centro il graph database.
Vedremo insieme degli esempi pratici di applicazione del paradigma multi-model e di come questo può aiutarti a risolvere problemi reali di business.
Vuoi imparare a realizzare un chat bot che funziona sulle più note piattaforme come Facebook Messenger, Telegram, Slack, Kik e altre? Vuoi che sia context aware e capace di tradurre il linguaggio umano in azioni? Allora questo è il talk che fa per te!
Janus: an open source and general purpose WebRTC (gateway) serverDevDay
Janus è un server WebRTC open source e modulare, concepito per essere a tutti gli effetti uno strumento "general purpose" per la realizzazione di complessi scenari multimediali. In quanto tale, si presta a supportare applicazioni di vario tipo, a partire da scenari più tradizionali quali conferencing, e-learning e streaming multimediale, per arrivare ad applicazioni più innovative che coinvolgano dispositivi eterogenei. La presentazione partirà da una breve panoramica su WebRTC, per coprire poi l'architettura di Janus e le possibili topologie di utilizzo, fino a presentare alcuni esempi reali di utilizzo e casi d'uso di successo.
Lorenzo Miniero
Lorenzo Miniero è uno dei fondatori di Meetecho, azienda specializzata in applicazioni multimediali e comunicazioni in real-time. Lorenzo ha conseguito laurea e dottorato di ricerca presso l'Università di Napoli Federico II, università della quale la stessa Meetecho è spin-off accademico. È un attivo "contributor" alle attività di standardizzazione della Internet Engineering Task Force (IETF), ed è noto principalmente come l'autore del server WebRTC open source Janus.
Il talk si propone di fornire strumenti utili ai developer che vogliono offrire ai propri utenti autenticazione ed autorizzazione da differenti canali quali mobile e browser su differenti tipi di risorse come web-application e REST services. Saranno mostrati gli algoritmi di crittografia ed i protocolli più noti di autenticazione/autorizzazione, evitando noie matematiche e considerando solo le applicazioni pratiche.
Gli argomenti trattati saranno
Crittografia (25 minuti)
symmetric key, asymmetric key, key exchange, key derivation function, key management, hash function, MAC function
Autenticazione e Autorizzazione (50 minuti)
HTTPS, Password, autenticazione a 2 fattori, Cookie (stateful), Access Token (stateless), JWT,OAuth2 e OpenID Connect
Seminario per il Corso di Laurea in Informatica dell'Università di Salerno, Orientamento in Uscita, su come aumentare la propria presenza (e le proprie attività!) su LinkedIn e altri importanti strumenti (GitHub, StackOverflow, etc.)
Retroprogramming - Programmare oggi il C64, by Giovanni SimottiCodemotion
Come sviluppare oggi software per i vecchi computer e console a 8 bit. Panoramica del linguaggio assembler e del funzionamento della CPU. Differenze tra Z80 e 6502. L'importanza del timing video. Gli sprite. Dettaglio dell'hardware del C64 e tecniche di programmazione a esso relative.
OrientDB - Perché le tue applicazioni meritano un DB Multi-ModelDevDay
Il NoSQL ormai e' una tecnologia consolidata, i nuovi modelli dati (document, graph, key/value) hanno mostrato tutti i loro vantaggi, ma anche le loro debolezze.
Ci hanno detto "usa il giusto data model per il tuo use case", peccato che il tuo use case quasi mai si può inquadrare in un singolo data model, relazionale, document o graph che sia.
In questo talk parleremo di come il NoSQL si stia evolvendo verso il Multi-Model e di come OrientDB sta guidando questa evoluzione, che ha al centro il graph database.
Vedremo insieme degli esempi pratici di applicazione del paradigma multi-model e di come questo può aiutarti a risolvere problemi reali di business.
Vuoi imparare a realizzare un chat bot che funziona sulle più note piattaforme come Facebook Messenger, Telegram, Slack, Kik e altre? Vuoi che sia context aware e capace di tradurre il linguaggio umano in azioni? Allora questo è il talk che fa per te!
Janus: an open source and general purpose WebRTC (gateway) serverDevDay
Janus è un server WebRTC open source e modulare, concepito per essere a tutti gli effetti uno strumento "general purpose" per la realizzazione di complessi scenari multimediali. In quanto tale, si presta a supportare applicazioni di vario tipo, a partire da scenari più tradizionali quali conferencing, e-learning e streaming multimediale, per arrivare ad applicazioni più innovative che coinvolgano dispositivi eterogenei. La presentazione partirà da una breve panoramica su WebRTC, per coprire poi l'architettura di Janus e le possibili topologie di utilizzo, fino a presentare alcuni esempi reali di utilizzo e casi d'uso di successo.
Lorenzo Miniero
Lorenzo Miniero è uno dei fondatori di Meetecho, azienda specializzata in applicazioni multimediali e comunicazioni in real-time. Lorenzo ha conseguito laurea e dottorato di ricerca presso l'Università di Napoli Federico II, università della quale la stessa Meetecho è spin-off accademico. È un attivo "contributor" alle attività di standardizzazione della Internet Engineering Task Force (IETF), ed è noto principalmente come l'autore del server WebRTC open source Janus.
Il talk si propone di fornire strumenti utili ai developer che vogliono offrire ai propri utenti autenticazione ed autorizzazione da differenti canali quali mobile e browser su differenti tipi di risorse come web-application e REST services. Saranno mostrati gli algoritmi di crittografia ed i protocolli più noti di autenticazione/autorizzazione, evitando noie matematiche e considerando solo le applicazioni pratiche.
Gli argomenti trattati saranno
Crittografia (25 minuti)
symmetric key, asymmetric key, key exchange, key derivation function, key management, hash function, MAC function
Autenticazione e Autorizzazione (50 minuti)
HTTPS, Password, autenticazione a 2 fattori, Cookie (stateful), Access Token (stateless), JWT,OAuth2 e OpenID Connect
Seminario per il Corso di Laurea in Informatica dell'Università di Salerno, Orientamento in Uscita, su come aumentare la propria presenza (e le proprie attività!) su LinkedIn e altri importanti strumenti (GitHub, StackOverflow, etc.)
Retroprogramming - Programmare oggi il C64, by Giovanni SimottiCodemotion
Come sviluppare oggi software per i vecchi computer e console a 8 bit. Panoramica del linguaggio assembler e del funzionamento della CPU. Differenze tra Z80 e 6502. L'importanza del timing video. Gli sprite. Dettaglio dell'hardware del C64 e tecniche di programmazione a esso relative.
14 LUGLIO 2017
Titolo: Insert Coin: storie e aneddoti sui videogiochi
Relatore: Dr Pierpaolo Basile, Dr.ssa Lucia Siciliani
Descrizione: Talk sulla storia dei videogiochi da Spacewar ai primi anni 90.
A cura di Alumni Mathematica
A ride through the true history of the microprocessor, the heart of the digital revolution. Untold stories, Myths and Tales since its beginning, up to the stars.
Come si divide il mercato dei videogiochi. I ruoli all'interno di un team di sviluppo. Il documento di design come frame per la creazione di un nuovo progetto videoludico.
In vari momenti della storia dei videogiochi, un titolo è uscito non solo come semplicemente ben fatto e piacevole da giocare, ma come importante per tutto il mondo videoludico. Questi sono i giochi per PC e/o console che hanno aperto una nuova strada tecnologica, o avviato interi generi, o anche solo raggiunto un apice di popolarità tale da trasformare moltissime persone in videogiocatori.
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Daniele Ferla
L’obiettivo di questa tesi (a cura di Daniele Ferla) è la realizzazione di una componente ad alto livello in grado di gestire la visualizzazione a video di ambienti 3D esterni. Si è quindi dovuto ricorrere alla creazione di quello che in gergo viene definito “motore grafico” e cioè una serie di classi, funzioni e quant’altro possa essere utile ad un programmatore che voglia avvicinarsi allo sviluppo di un videogioco e di una applicazione grafica in generale, senza essere a conoscenza di tutte le regole e le formule che ne derivano. Il motore quindi si occupa di tutte le metodologie inerenti il rendering della scena e la sua gestione.
Il progetto del motore grafico denominato Desdinova Engine risale a qualche hanno fa, precisamente nel maggio del 2000 quando venne iniziato il suo sviluppo in Visual C++ tramite le librerie OpenGL, in quel periodo molto in auge e utilizzate da parecchi produttori di grafica 3D. Con il passare del tempo però queste librerie hanno perduto il loro “fascino” anche perché poco aggiornate e utilizzate solo in ambiti specifici (rimangono comunque le librerie cross-platform più usate) e quindi la realizzazione del motore grafico si è diretta verso l’utilizzo delle più performanti, documentate e semplici Microsoft DirectX nella versione attuale 9.0c
Seppur a livello molto alto, le librerie della multinazionale di Redmond, non offrono tutto il necessario per la realizzazione di un prodotto finito semplice ed intuitivo ma, anzi, risultano essere “aperte” a nuove ottimizzazioni e utilizzi. Per questo, dunque, in questa tesi è stata sviluppata una libreria ancora più ad alto livello, avente come base le DirectX, ma finalizzate all’utilizzo più intuitivo e semplice del programmatore quale utente finale.
La seguente tesi (in bozza) non è mai stata pubblicata e non è un documento valido a fini pubblici in quanto non è mai stata discussa e valutata dalla commissione accademica.
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...Danilo Riso
Into the game. Le basi concettuali. Cosa sono sprites e i tiles. In cosa consistono gli effetti di scrolling e di parallasse. Come si realizzano le animazioni dei fondali e degli sprites . Quali sono gli strumenti adatti per realizzare la grafica, gli effetti sonori? Usare Allegro Sprites Editor, Tiled Map Editor, GiMP, GrafX2. Quali tecnologie scegliere per scrivere un gioco? Panoramica fra gli engine 2D free ed a pagamento attualmente disponibili sul mercato. Introduzione ad uno di questi. AndEngine. Come rendere redditizio lo sviluppo di un gioco. Scelta del target, scelta delle logiche di distribuzione, sceglierlo come veicolo pubblicitario.Impostare e gestire la logica del gioco con AndEngine. Come creare il corretto loop per la gestione del flusso del gioco; Impostazione del GameLoop e corrispondenti azioni. Concetti di multithreading applicati al gamingGestire le animazioni con AndEngine. Come creare grafica ed animazioni e come integrarle ed utilizzarle. Gestire gli eventi e le collisioni sprite-sprite e sprite-background. Impariamo a gestire sprites e tiles. In cosa consistono gli effetti di scrolling, parallasse e come si ottengono. Come si realizzano le animazioni dei fondali e degli sprites.
14 LUGLIO 2017
Titolo: Insert Coin: storie e aneddoti sui videogiochi
Relatore: Dr Pierpaolo Basile, Dr.ssa Lucia Siciliani
Descrizione: Talk sulla storia dei videogiochi da Spacewar ai primi anni 90.
A cura di Alumni Mathematica
A ride through the true history of the microprocessor, the heart of the digital revolution. Untold stories, Myths and Tales since its beginning, up to the stars.
Come si divide il mercato dei videogiochi. I ruoli all'interno di un team di sviluppo. Il documento di design come frame per la creazione di un nuovo progetto videoludico.
In vari momenti della storia dei videogiochi, un titolo è uscito non solo come semplicemente ben fatto e piacevole da giocare, ma come importante per tutto il mondo videoludico. Questi sono i giochi per PC e/o console che hanno aperto una nuova strada tecnologica, o avviato interi generi, o anche solo raggiunto un apice di popolarità tale da trasformare moltissime persone in videogiocatori.
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Daniele Ferla
L’obiettivo di questa tesi (a cura di Daniele Ferla) è la realizzazione di una componente ad alto livello in grado di gestire la visualizzazione a video di ambienti 3D esterni. Si è quindi dovuto ricorrere alla creazione di quello che in gergo viene definito “motore grafico” e cioè una serie di classi, funzioni e quant’altro possa essere utile ad un programmatore che voglia avvicinarsi allo sviluppo di un videogioco e di una applicazione grafica in generale, senza essere a conoscenza di tutte le regole e le formule che ne derivano. Il motore quindi si occupa di tutte le metodologie inerenti il rendering della scena e la sua gestione.
Il progetto del motore grafico denominato Desdinova Engine risale a qualche hanno fa, precisamente nel maggio del 2000 quando venne iniziato il suo sviluppo in Visual C++ tramite le librerie OpenGL, in quel periodo molto in auge e utilizzate da parecchi produttori di grafica 3D. Con il passare del tempo però queste librerie hanno perduto il loro “fascino” anche perché poco aggiornate e utilizzate solo in ambiti specifici (rimangono comunque le librerie cross-platform più usate) e quindi la realizzazione del motore grafico si è diretta verso l’utilizzo delle più performanti, documentate e semplici Microsoft DirectX nella versione attuale 9.0c
Seppur a livello molto alto, le librerie della multinazionale di Redmond, non offrono tutto il necessario per la realizzazione di un prodotto finito semplice ed intuitivo ma, anzi, risultano essere “aperte” a nuove ottimizzazioni e utilizzi. Per questo, dunque, in questa tesi è stata sviluppata una libreria ancora più ad alto livello, avente come base le DirectX, ma finalizzate all’utilizzo più intuitivo e semplice del programmatore quale utente finale.
La seguente tesi (in bozza) non è mai stata pubblicata e non è un documento valido a fini pubblici in quanto non è mai stata discussa e valutata dalla commissione accademica.
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...Danilo Riso
Into the game. Le basi concettuali. Cosa sono sprites e i tiles. In cosa consistono gli effetti di scrolling e di parallasse. Come si realizzano le animazioni dei fondali e degli sprites . Quali sono gli strumenti adatti per realizzare la grafica, gli effetti sonori? Usare Allegro Sprites Editor, Tiled Map Editor, GiMP, GrafX2. Quali tecnologie scegliere per scrivere un gioco? Panoramica fra gli engine 2D free ed a pagamento attualmente disponibili sul mercato. Introduzione ad uno di questi. AndEngine. Come rendere redditizio lo sviluppo di un gioco. Scelta del target, scelta delle logiche di distribuzione, sceglierlo come veicolo pubblicitario.Impostare e gestire la logica del gioco con AndEngine. Come creare il corretto loop per la gestione del flusso del gioco; Impostazione del GameLoop e corrispondenti azioni. Concetti di multithreading applicati al gamingGestire le animazioni con AndEngine. Come creare grafica ed animazioni e come integrarle ed utilizzarle. Gestire gli eventi e le collisioni sprite-sprite e sprite-background. Impariamo a gestire sprites e tiles. In cosa consistono gli effetti di scrolling, parallasse e come si ottengono. Come si realizzano le animazioni dei fondali e degli sprites.
Unity: introduzione storica ed analisi di un microprogetto
1. Unity e sviluppo di
videogiochi
Introduzione storica ed analisi di un microprogetto
2. Mi presento
Maurizio Tatafiore: game programmer dal 2005 e game designer per passione.
Scarra: uno scarafaggio che vive in un videogioco e forse ne sa più di me
3. Il programma
Introduzione storica alla nascita dei moderni “game engine”
Come si colloca Unity
Passi principali nello sviluppo di un mini clone di Break Out
Focus su alcuni errori
Però ascoltate solo me
4. In principio (anni ‘80 e ‘90)
Partiamo dagli anni ‘80
CGA e memory mapping (1981)
Commodore 64 (1982)
Processore VIC-II
Memory mapping con blitting e sprites
Tutto scritto da zero appoggiandosi sull’hardware
Menomale che è partito dagli anni
‘80...
Memoria video
RAM
5. In principio (anni ‘80 e ‘90)
Commodore Amiga (1986/87)
Ancora più specializzazione dei chipset
Incremento di prestazioni
Maniac Mansion e lo SCUMM di LucasArts
Prime API grafiche
OpenGL (1991)
DirectX (1995)
Sì, è un fan di Commodore, abbiate
pazienza.
Hardware
API Grafica
Videogame software
6. I “construction kit”
Pinball Construction Set (1983)
Shoot-em-up Construction Kit (1987)
STOS (1988) e AMOS (1990)
Orientato al codice
Dialetto del basic
Eh, a quei tempi ci si divertiva con
poco!
7. La svolta: idSoftware e Doom (1993)
Data driven
Netta separazione tra renderer, level data e art assets
Famoso il formato .wad per le mappe
Inventa il termine “game engine”
Licenziabile
Di fatto crea un nuovo mercato
Il tizio che vi parla, quando ha giocato
a Doom per la prima volta, ha quasi
vomitato.
8. L’evoluzione: fine ‘90, primi 2000
id Software - Id tech (1993)
Epic - Unreal (1998)
GarageGames - Torque (2001)
Valve - Source Engine (2004)
CryTek - Cry Engine (2004)
Provate a fargli qualche domanda su
Torque, alla fine...
9. L’evoluzione: princìpi fondanti
IDE general purpose
Sottosistemi
grafica
sonoro
fisica
dati
gestione del multipiattaforma
separazione dei workflow
Gli scarafaggi sono molto più evoluti…
tzé!
10. Un mostro di nome Unity3D
Nasce nel 2005 solo per Mac
Oggi supporta 21 piattaforme
Consente lo sviluppo su OSX, Windows e Ubuntu (sperimentale)
4,5 milioni di sviluppatori registrati
Eppure:
Si produce moltissima “fuffa”
Ha molti difetti, alcuni gravi
Perché?
E mi sa che a ‘sto punto gli
ritirano l’account.
11. Unity: panoramica sull’architettura
Unity Editor
Embedded player
Game package
Embedded player
Game package
Embedded player
Game package
IDE
(MonoDevelop o Visual
Studio)
Asset Processor
3D Modeling 2D Painting Audio
12. Unity: panoramica sull’architettura
Struttura component based
Ogni istanza in una scena Unity è un GameObject
Non possiede proprietà se non quelle che consentono la gestione delle componenti
Di default possiede il componente Transform
All’ultima versione ci sono 129 componenti standard
Possibilità di scriptare custom components Perché non ero nella slide
precedente? eh? EH?
13. Unity: panoramica
sull’architettura
Custom components (Behaviours)
Scriptabile in C# o UnityScript (dialetto di
JS)
Sistema di callback nel ciclo di vita delle
entità di gioco
Ehi! Le mie radiografie! Chi
te le ha date?
14. Un esempio: Freak Out
Micro clone di Break Out
Rinominato con un piccolo gioco di parole sul titolo originale
Progetto 2D per semplicità di esposizione
Tempo di creazione originalmente previsto: 3 ore
Alla fine ne ho impiegate 5
Avevo sottovalutato la parte di documentazione
Sì, certo, come no. L’ha chiamato così
perché se la fa addosso quando deve
parlare in pubblico.
53. Pitfalls
Ho “volutamente” commesso vari errori
Uso diretto di “transform”
Input sparso
Spaghetti code (il sistema a componenti invita)
Uso di costanti literal e magic numbers
Scena data driven
Gestione della fisica ed altri sistemi complessi
Gestione della memoria (stringhe, in questo caso)
E se distruggo tutti i mattoncini? (logica di gioco dispersa/manca una gestione centralizzata)
Non avrete mica creduto
di esservi liberati di me?
54. Marketing e realtà
Chiunque può realizzare un videogioco!
E chi sarebbe? TU?
LOL!
Chiunque può realizzare un prototipo di videogioco!
Se vorrete realizzare qualcosa di stabile, duraturo e vendibile,
assicuratevi la collaborazione di un Vero Programmatore (™)
55. Cosa fanno i Veri Programmatori?
(insieme ai Veri Grafici)
Oh, e io?