videogame design - amazon s3 · per rendering grafico real-time. ... trasformazioni applicate ad un...

33
VIDEOGAME DESIGN VIDEOGAME DESIGN Alessandro Febretti Politecnico di Milano - Laboratorio HCI A.A. 06/07

Upload: others

Post on 15-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

VIDEOGAME DESIGNVIDEOGAME DESIGN

Alessandro FebrettiPolitecnico di Milano - Laboratorio HCI A.A. 06/07

Page 2: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

OutlineOutline

● Brainstorming● Gameplay Design● Tech Design● Tecniche & Tecnologie● Project management● Game evaluation● Discussione progetti

Page 3: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 302/05/07

Game Design Workflow, Again!Game Design Workflow, Again!

BRAINSTORMINGBRAINSTORMING

GAMEPLAY DESIGNGAMEPLAY DESIGN

TECH DESIGNTECH DESIGN

IMPLEMENTATIONIMPLEMENTATION

GAME TESTING & TWEAKINGGAME TESTING & TWEAKING

Design Document

Concept Document

Tech Document

Processo Iterativo• Creazione Prototipo evolutivo• Test Prototipo

Page 4: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 402/05/07

BrainstormingBrainstorming

● Idea base: storyboard.● Niente PC, carta e penna.● Let it flow! Non filtrare / giudicare.● Deve emergere FATTORE X del gioco

Page 5: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 502/05/07

Brainstorming ExamplesBrainstorming Examples

Page 6: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 602/05/07

Brainstorming Examples (cont.)Brainstorming Examples (cont.)

Page 7: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 702/05/07

Game Design DocumentGame Design Document

● Executive summary– Descrizione a grandi linee del gioco. FATTORE X

● Meccaniche di gioco● Game progression● Elementi del gioco

– Tipologie di nemici, items, entità, ...

● Storia (se c'è...)● Interface design

– Menu

– On-game UI

Page 8: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 802/05/07

Game design (cont.)Game design (cont.)

● Interaction design (controllers...)● AI

– Come reagisce il 'mondo' al player

– Senza troppi dettagli tecnici

● Storyboards, screens– Non usare direttamente materiale brainstorming

– Concepts o 'finti' screenshot

● Sound

Page 9: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 902/05/07

Descriptive screenDescriptive screen

Page 10: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1002/05/07

Screens + UI design.Screens + UI design.

Page 11: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1102/05/07

World descriptionWorld description

Page 12: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1202/05/07

StoryboardStoryboard

Page 13: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1302/05/07

Storyboard IIStoryboard II

Page 14: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1402/05/07

Tech DocumentTech Document

● Diagrammi– Class diagram UML– FSM diagrams

● Tecniche implementative– AI– Effetti grafici– Networking– ...

Page 15: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1502/05/07

Finite State MachinesFinite State Machines

● Ogni game entity è una FSM

Idle Chase Player

Escape Bullet

DeadHit

Fire Live Explode

Removed

BounceHit

Lifetime overLifetime over

Main Menu Options

Stats

Game

BULLET

ENEMY TANK

GAME

Page 16: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1602/05/07

Finite State Machines IIFinite State Machines II

● Design dell'interazione fra FSM

ENEMY TANKENEMY TANK

BULLETBULLET

PLAYER TANKPLAYER TANK

GAMEGAME

SENSE

SENSE, HITHIT

FIREFIRE

DIEDIE

Page 17: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1702/05/07

Tecniche & Tecnologie: Tecniche & Tecnologie:

● Tipo di gioco determina scelta tecnologie:– Low-level 3d libraries (OpenGL, DirectX, ...?)– Motori grafici (Ogre, Unreal Engine, ...?)– Flash, actionscript– Web-based (ASP, PHP, ...?)– Handheld API (NintendoDS, cellulari, ...)

● Scelte 'fine grained' dipendono da budget, esperienza, requisiti specifici.

Page 18: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1802/05/07

Tecniche & Tecnologie: Motori GraficiTecniche & Tecnologie: Motori Grafici

● Motori grafici offrono funzionalità di alto livello per rendering grafico real-time.– Scene Graph– Gestione risorse– Ottimizzazione (Octrees, occlusion culling, LOD, ...)– Effetti grafici (Particle systems, postprocessing, ...)

Page 19: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 1902/05/07

Scene GraphScene Graph

Root

Sun

Terrain

Fire

Tank

Turret

Camera

sun.mesh

Sun light

Fire sound

Fire psys

Tank.mesh

Turret.mesh

Camera

● Organizzazione logica della scena

● Nodo: spazio di trasformazione nella scena.

● Trasformazioni applicate ad un nodo influenzano sotto-nodi.

● Entità vengono agganciate ai nodi per diventare parte della scena

Page 20: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2002/05/07

Programmable Rendering PipelinesProgrammable Rendering Pipelines

● GPU Moderne possono essere completamente programmate dall'utente

● Parallelismo estremamente elevato

● Tempi di accesso alla memoria ristretti

● Modello di programmazione attuale:

– Logica di gioco + gestione 'high level' della scena: CPU (C++,...)

– Codice di rendering 'low level': GPU (ASM, HLSL, ...)

Page 21: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2102/05/07

Programmable pipeline modelProgrammable pipeline model

CPUCPU GPUGPU

RAMRAM VRAMVRAMDati genericiRisorse video non in uso

TexturesBuffers

Draw callsDati RAM > VRAM

Rendering output

PROGRAMMAPROGRAMMA

X86 machine code

GPU specific machine code

Page 22: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2202/05/07

AIAI

● Molte tecniche di AI e soft computing utilizzate con successo nei giochi.– Behavior: logica fuzzy

– Pathfinding: A*

– Non solo intelligenza per le entità, AI è anche nel motore (graph search)

● AI è spesso legata alla FSM di una entità– Stato FSM -> entity behavior.

● AI viene 'aiutata' durante design dei contenuti– Esempio: patrol paths

Page 23: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2302/05/07

Game LoopGame Loop

● Cuore del gioco: un loop infinito (più o meno...):– Processing network messages (opzionale)

– Gestione input utente

– Esecuzione FSM delle game entities● Update AI● Update Scene graph● Animazioni, ...

– Rendering di un singolo frame (controllo passa al motore grafico)● Preprocessing & issue delle primitive di rendering alla GPU● NON si aspetta completamento del rendering!!

– Ripetere tutto again & again...

● Può essere single o multi-threaded!

Page 24: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2402/05/07

Linguaggi e videogameLinguaggi e videogame

● Tanto (?) tempo fa: ASM + C.● (Tanto tempo fa) – 1 -> oggi:

– CPU: C, C++, script, VM-based (C#, java, lua, phyton, ...)

– GPU: ASM, HLSL, CS, GLSL, ...

● Oggi -> futuro:– Middleware (motori): C++

– Game logic: script & VM-based only.

● Codice scritto da programmatori & content creator!

Page 25: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2502/05/07

Project ManagementProject Management

● Sviluppo videogame: team di 10 -> 50 persone– Produttori esecutivi, programmatori, artisti, animatori, sound

designer, content creator, ...

● Project management DEVE consentire lavoro in parallelo.

● Produzione = insieme di task interdipendenti.● Dipendenze fra task + priorità -> work schedule.● Raggiungimento di determinati obiettivi = Milestone.● Deadline associata ad ogni milestone● Deadline regolari aiutano a scandire ritmo di lavoro.

Page 26: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2602/05/07

Game EvaluationGame Evaluation

● Cosa rende un gioco divertente?– Sid Meyer: “A great game is a series of interesting and

meaningful choices made by the player in pursuit of a clear and compelling goal.”

– Azioni devono essere interessanti● Perceived Freedom● Game balance

– Azioni devono avere conseguenze logiche– Risultato ottenuto deve SODDISFARE il giocatore.

Page 27: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2702/05/07

Perceived FreedomPerceived Freedom

● Idealmente: giocatore deve essere libero di fare quel che vuole.

● In pratica: un po' più complesso:Azioni disponibili

Percentualecompletamento gioco

100%

MAX

'Fine livello'

Apprendimento Fase centrale Conclusione

Page 28: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2802/05/07

Perceived FreedomPerceived Freedom

Disorienta il giocatore Annoia il giocatore

Azioni disponibili

Percentualecompletamento gioco

100%

MAX

Page 29: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 2902/05/07

Game balanceGame balance

Difficoltà

100%

Percentualecompletamento gioco

Troppo difficile:giocatore frustrato

Troppo facile:giocatore annoiato

Andamentodifficoltà

Page 30: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 3002/05/07

Game BalanceGame Balance

Difficoltà

100%

Percentualecompletamento gioco

Andamentodifficoltà

Apprendimento Fase centrale Conclusione

Page 31: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 3102/05/07

That's all, folks!That's all, folks!

DISCUSSIONE PROGETTI

Page 32: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 3202/05/07

Page 33: VIDEOGAME DESIGN - Amazon S3 · per rendering grafico real-time. ... Trasformazioni applicate ad un nodo influenzano sotto-nodi. Entità vengono agganciate ai nodi per diventare parte

Alessandro Febretti - Videogame design intro 3302/05/07

Billboards & Particle systemsBillboards & Particle systems

● Billboard: rappresentazione di un oggetto 3d tramite uno sprite 2d.

● Particle systems: gruppi di billboard dinamiche utilizzati per simulare fumo, esplosioni, ....