SlideShare a Scribd company logo
Unity e sviluppo di
videogiochi
Introduzione storica ed analisi di un microprogetto
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
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
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
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
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!
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.
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...
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é!
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.
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
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?
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?
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.
Area di lavoro e primo oggetto
Il primo sprite
Asset grafici
La gerarchia
Collisioni
Collisioni
Collisioni
La pallina
La pallina
La pallina (creazione di uno script)
La pallina (creazione di uno script)
La pallina (creazione di uno script)
La pallina (creazione di uno script)
La racchetta
La racchetta (input)
La racchetta (limiti del campo)
La racchetta (inspector e membri pubblici)
Un mattoncino
Un mattoncino (gestione delle collisioni)
Un mattoncino (colorare gli sprite)
Un mattoncino (due mattoncini)
Un mattoncino (tanti mattoncini)
La pallina (variazione)
La pallina (vita, morte e rinascita)
La GUI
La GUI (visualizzare le vite)
La GUI (visualizzare le vite)
La GUI (visualizzare le vite)
Il punteggio
Il punteggio (GUI)
Main screen
Main screen
Main screen
Main screen (lo script)
Main screen
(Ritorno al) Main screen
Mettere insieme le scene
Mettere insieme le scene
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?
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 (™)
Cosa fanno i Veri Programmatori?
(insieme ai Veri Grafici)
Oh, e io?
Link!
http://www.hypothermicgames.com/
m_tatafiore@yahoo.it
http://bit.ly/hypo_freakout_src (sorgenti utilizzati)
http://bit.ly/hypo_freakout (progetto compilato)
http://bit.ly/hypo_freakout_slides (queste slide in formato ppt)Adesso fategli un po’ di domande…
vediamo come se la cava.

More Related Content

Similar to Unity: introduzione storica ed analisi di un microprogetto

Peritore e Pennisi - Garage days - sviluppo Amiga negli anni 90
Peritore e Pennisi - Garage days - sviluppo Amiga negli anni 90Peritore e Pennisi - Garage days - sviluppo Amiga negli anni 90
Peritore e Pennisi - Garage days - sviluppo Amiga negli anni 90
Codemotion
 
Insert Coin: storie e aneddoti sui videogames
Insert Coin: storie e aneddoti sui videogamesInsert Coin: storie e aneddoti sui videogames
Insert Coin: storie e aneddoti sui videogames
Alumni Mathematica
 
l'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAA
l'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAAl'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAA
l'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAA
Pier Luca Lanzi
 
Breve storia del PC
Breve storia del PCBreve storia del PC
Breve storia del PC
Simone Zanella
 
Introduzione all’informatica 2011
Introduzione all’informatica 2011Introduzione all’informatica 2011
Introduzione all’informatica 2011
donmimi
 
Object printing for dummies [veneziacamp format]
Object printing for dummies [veneziacamp format]Object printing for dummies [veneziacamp format]
Object printing for dummies [veneziacamp format]
Leo Sorge
 
Game Engine
Game EngineGame Engine
Game Engine
Daniele Bellavista
 
Microprocessor - A true history
Microprocessor - A true historyMicroprocessor - A true history
Microprocessor - A true history
Leo Sorge
 
Il documento di design
Il documento di designIl documento di design
Il documento di design
Francesco Alinovi @ NABA (Milan)
 
I 13 videogiochi più importanti di sempre
I 13 videogiochi più importanti di sempreI 13 videogiochi più importanti di sempre
I 13 videogiochi più importanti di sempre
newsbuzz
 
(NOW 3.0) MMORPG Architecture for dummies
(NOW 3.0) MMORPG Architecture for dummies(NOW 3.0) MMORPG Architecture for dummies
(NOW 3.0) MMORPG Architecture for dummies
squid
 
The Dev Battle - Codemotion - Giugno 2021
The Dev Battle - Codemotion - Giugno 2021The Dev Battle - Codemotion - Giugno 2021
The Dev Battle - Codemotion - Giugno 2021
Mauro Bennici
 
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Daniele Ferla
 
Io, Android
Io, AndroidIo, Android
Io, Android
AntonioTringali
 
13 Il computer fatto in casa -- 1
13 Il computer fatto in casa -- 113 Il computer fatto in casa -- 1
13 Il computer fatto in casa -- 1
Federico Gobbo
 
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
Codemotion
 
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
Danilo Riso
 
Il Personal Computer
Il Personal ComputerIl Personal Computer
Il Personal Computerbity1988
 

Similar to Unity: introduzione storica ed analisi di un microprogetto (20)

Peritore e Pennisi - Garage days - sviluppo Amiga negli anni 90
Peritore e Pennisi - Garage days - sviluppo Amiga negli anni 90Peritore e Pennisi - Garage days - sviluppo Amiga negli anni 90
Peritore e Pennisi - Garage days - sviluppo Amiga negli anni 90
 
Insert Coin: storie e aneddoti sui videogames
Insert Coin: storie e aneddoti sui videogamesInsert Coin: storie e aneddoti sui videogames
Insert Coin: storie e aneddoti sui videogames
 
l'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAA
l'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAAl'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAA
l'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAA
 
Breve storia del PC
Breve storia del PCBreve storia del PC
Breve storia del PC
 
Introduzione all’informatica 2011
Introduzione all’informatica 2011Introduzione all’informatica 2011
Introduzione all’informatica 2011
 
Object printing for dummies [veneziacamp format]
Object printing for dummies [veneziacamp format]Object printing for dummies [veneziacamp format]
Object printing for dummies [veneziacamp format]
 
Game Engine
Game EngineGame Engine
Game Engine
 
Microprocessor - A true history
Microprocessor - A true historyMicroprocessor - A true history
Microprocessor - A true history
 
Il documento di design
Il documento di designIl documento di design
Il documento di design
 
I 13 videogiochi più importanti di sempre
I 13 videogiochi più importanti di sempreI 13 videogiochi più importanti di sempre
I 13 videogiochi più importanti di sempre
 
(NOW 3.0) MMORPG Architecture for dummies
(NOW 3.0) MMORPG Architecture for dummies(NOW 3.0) MMORPG Architecture for dummies
(NOW 3.0) MMORPG Architecture for dummies
 
The Dev Battle - Codemotion - Giugno 2021
The Dev Battle - Codemotion - Giugno 2021The Dev Battle - Codemotion - Giugno 2021
The Dev Battle - Codemotion - Giugno 2021
 
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
 
Scheda video word
Scheda video wordScheda video word
Scheda video word
 
Io, Android
Io, AndroidIo, Android
Io, Android
 
13 Il computer fatto in casa -- 1
13 Il computer fatto in casa -- 113 Il computer fatto in casa -- 1
13 Il computer fatto in casa -- 1
 
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
 
Teoria e analisi del cinema 5. Cinema e videogame
Teoria e analisi del cinema 5. Cinema e videogameTeoria e analisi del cinema 5. Cinema e videogame
Teoria e analisi del cinema 5. Cinema e videogame
 
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
 
Il Personal Computer
Il Personal ComputerIl Personal Computer
Il Personal Computer
 

Unity: introduzione storica ed analisi di un microprogetto