25/09/2015
1
General info
� Marco Tarini
� Google for “marco tarini” � 1st hit
� Follow “teaching” (bottom)
� Follow “Computer Game Dev 2015/2016”è la pagina del corso: materiale, lucidi, links.
� Follow “contact” (bottom)
� Mail, tel, etc…
Università degli Studi dell’Insubria
Game Development
Marco Tarini
25/09/2015
2
Video Game Development
� Sviluppo software di un Video Game
� Perchè un corso specializzato su questa
categoria di sviluppo sw?
Video Games: fun facts
� Industria enorme
� Video games = killer app
� Propulsori di tecnologia (HW e SW)
� Performance and complexity
� Stato attuale: consolidato set di soluzioni specifiche
25/09/2015
3
Video Games: fun facts
� Sono, più spesso di qualunque altra categoria di sw:� le app più demanding sul tuo computer
� e alcuni dei software più complessi
� propuslori di progresso tecnologico HW / SW� CPU speed, bus, mass storage, sound cards, video cards,
input devices, ...
� on consoles, PCs, mobile devices...
� “killer apps”
� Video game industry: muove somme enormi� Molto > che, per es, movie industry
Conferenze e congressisu Video Game Dev
� SIGGRAPH
� ACM Special Interest Group
� i3D
� Interactive 3D
� GDC
� Game Developers Conference
� E3
� Electronic Entertainment Expo
� PAX
� Penny Arcade Expo
25/09/2015
4
Cosa impareremoin questo corso
Cosa NON impareremo
in questo corso
� Game Design� es. design del gameplay
� Artistic asset creation � gli skill propri
dell’artista digitale
� Game studies (o ludology)
� Aspetti culturali / storico /sociali / filosofici…
� videogame history� videogames come media
(o IL next media)� …e le molte controversie� videogame Scene
� Game Theory � alla Nash� neanche: Combinatorial GT
� Serious gaming� (≠ entertainment)� e.g. “Gamification”� e.g. “Edutainment”
� (on line) marketing� o funding Schemas, schemi
di distribuzione…
� Aspetti generali di� Programmazione� Computer Graphics� Artificial intelligence� Networking / ambienti
distribuiti� Software engineer
(vedi playtesting)� …
25/09/2015
5
Cosa impareremoin questo corso
� Nozioni sulle tecnologie più utilizzate daimoderni Computer Games
� Algoritmi + Strutture Dati
� Ambiti:
� Rendering, Modellazione, AI, Physical simulation…
� Struttura di:� un video game
� un game engine
� video game tools
� video game dev-teams
Skills e conoscenzeche verranno affinate
� Matematica
� Geometria, 3D
� Programmazione
� Imperativa ad oggetti, come C++, C#
� Event based programming
� Computer Graphics
� Rendering real time
� Tecniche di animazione
� Artificial intelligence
� Alcuni specifici algoritmi, molto rudimentale
25/09/2015
6
Possibili libri di testo (1/2)
Game Engine ArchitectureJason Gregory
Abb. completo (con cenni di: software tools, software eng., AI prog, CG prog, math, game design...)
Mathematics for 3D Game Progr. and C.G.
(3za ed)
Eric Lengyel
Copre bene il lato + tecnico: 3D math, CG pipeline, geometry + transforms, raytracing, visibility, physic sims, semplicegeom processing…
Possibili libri di testo (2/2)
Game Coding Complete (4ta ed)
Mike McShaffry,David Graham
Visione pratica (attenzione a osolescenza)Accento su coding, software eng (es memory managment).
Introduction to
3D Game Programmingwith DirectX 11
Frank LunaRendering / GPU (in pratica, copre il corso di CG)
25/09/2015
7
Video Games(Interactive Electronic Entratainment)
“The Last of Us” (Naughty Dog, 2013)
“Space Invaders”(Taito, 1978)
~35 anni
Categorie: per gameplay
� Puzzle game� Color matching� Hidden object � Trivia game …
� Action game� Beat’em up / hack’n’slash� Fighting� Pinball� Platform� Maze� Shooter
� FPS� MMO FPS� LightGun� Shoot’em up (shumps)� Rail shooter� 3rd person
� Action-Adventure� Stealth� Survival horror� Exploration� PoP / Tombrider
� Adventures� IF - Interactive Fiction� Real time 3D adv� Point and click
� Board game� Card game …
� Strategy� 4X� RTS� Strategy MOBA / MMOG� Action-RTS� Tower defences
� Vehicle simulation� Driving simulator� Flight simulator
� Amateur� Combat� Space ...
� Racing game� Vehicular combat
� Role-playing games� RPG (occidentali, orientali)� Sandbox RPG� MMOPRG� Roguelikes� Action RPG
� Sport games� Soccer / Football / …
� Simulation / management
25/09/2015
8
Categorie: per fasce utenti
casual games VS hard core games
Categorie: per piattaforma
� Arcade� PC stand-alones
� Aka “desktop app” � (“computer game” propriamente detto)
� Win, Mac, Linux…
� Console� Wii, PS, XBox …
� Browser� html5, webGL, unity, flash…
� Mobile devices� Android, iDevices, PSP …
25/09/2015
9
Categorie: per sviluppatore
Independent games
� No/tiny publisher:
Mainstream games
� Big publisher
cosa fa un video-game publisher?
� Tasks:
� finanzia lo sviluppo
� compreso licenze
� distribuzione
� marketing
� pubblicità, lancio, ricerche di mercato...
� packaging, manuali
� localization
� Alto rischio
25/09/2015
10
Categorie: per sviluppatore
Independent games
� No/small publisher
� Low starting $
� Team piccoli
� + libertà +innovazione
� (spesso)
� Strade alternative per:
� Fundingper es: Crowd funding
� come indiegogo.com, kickstarters.com, …
� Distributing
� es: steam, popcap, apple store…
Mainstream games
� Big publisher
� Big $ per project
� (spesso, mega-$’s)
� High quality: imperativa
� Dev-teams grandi
Categorie: per tecnologie video usate
2D games
� Sprites + Tilemap
3D games
� Modelli + Scene 3D
TileSet TileMap Sprites
25/09/2015
11
Categorie: per tecnologie video usate
2D games
� Sprites + Tilemap
3D games
� Modelli + Scene 3D
3D rendering techniques3D animation techniques
Categorie: per tecnologie video usate
2D games
� Sprites + Tilemap
� Tecnologie:
� Blitting
� Tilemaps
� e 2D scrolling
� Funzionalità sprite
� sprite collision detection
� 2D transform
� (2D physical engines)(raramente)
3D games
� Modelli + Scene 3D
� Tecnologie:
� 3D Modelling
� Scenegraph, models
� 3D Real time rendering
� trasformazione 3D
� Illuminazione,
� 3D animations
� Cinematica, motion capture, model animations...
� 3D phyisical simulations
� (3D sound localization)
25/09/2015
12
Categorie: per tecnologie video usate
2D games
� Sprites + Tilemap
� Tecnologie:
3D games
� Modelli + Scene 3D
� Tecnologie:
......
blender game engine
(NB: parliamo di enginenon di gameplay)
2D engine 3D engine
2D
ga
me
pla
y3
D g
am
ep
lay
25/09/2015
13
Game Dev: introduzione
� Sviluppo sw molto particolare
� complesso
� a cavallo fra arte e tecnologia e scienza
� “Efficiency is KING”
Sviluppo Video Game: alcuni ingredienti
� Programmazione Avanzata
� Strutture dati, multithreading, programmazione ad eventi, networking
� Deployment
� Cross platforms, mobile platfororms, browsers
� Gameplay design
� Artificial Intelligence
� Computer Graphics (3D)
� Software Engineering
� Ad-hoc input and output devices
� Digital Art
� (una marea)
25/09/2015
14
Game Dev
� Task comuni affrontati� Rendering
� Real time transofrm + lighting
� Phyisics� Newtonian physical simulations� Collision detection + response
� Networking� Sound rendering � Input managing� Struttura del programma
� Loop di gestione degli eventi
� Memory management� Artificial intelligence
� Sotto task comuni: � Struttura generale
riuso!
� +Animationsscripted or computed
Quanto riuso nel game dev
x1 solo gioco
xqualunque
gioco
Zero riuso
Riuso totale
x gioco
o varianti
x molti
generi
x un
genere
x giochisimili
http://www.wolfire.com/overgrowth
Per es: Modding
25/09/2015
15
Game Dev-Teams
� Tecnici
� Artisti
Game Dev-Teams
� Tecnici
� Artisti
25/09/2015
16
Game assets!(aka game contents)
� 3D data
� models
� textures
� materials
� shaders
� animations
� collision objects
� scenes
� etc
� audio
� music
� sound fxs
� ambient sounds
� voice overs
� etc
� video
� cut-scenes, intros, etc
� 2D art
� screen splashes
� backgrounds
� GUI / HUD elements
� [ sprites & tile-sets ? ]
� fonts
� etc
� text
� dialogues trees
� messages
� translations
� etc
� etc:
� scripts
� stats
� levels
� etc
Game Dev-Teams
� Tecnici
� Artistigame engine
game tools
sviluppano customizzano
integrano
25/09/2015
17
Game Engine
GRAPHICS
PHYSICS
NETWORKING
ARTIFICIAL INTELLIGENCE
GUI + INTERFACES
. . .
SCRIPTING
ASSET MANAGEMENT
SOUND
Game Engine
� Parte del game che si occupa di alcuni dei task “comuni”� Scena / livello� Renderer
� Real time transofrm + lighting� Models, materials …
� Physics engine� (soft real-time) newtonian physical simulations� Collision detection + response
� Networking � (LAN – es tramite UTP)
� Sound mixer e “sound-renderer”� Gestore unificato HCI devices� Main event loop, timers, windows manager…� Memory management� Artificial intelligence module
� Soluz dei sotto task comuni AI
� Supporto alla localizzazione� Scripting� GUI (HUD)
Animationsscripted or computed
25/09/2015
18
game assets
Assets inGame Development
game
game engine
game tools
digital artists
game assets
MOD assets
digression:
Game [MOD] Development
game
game engine
(public)game tools
game fans!
MODassets