l'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAA

Post on 16-Apr-2017

404 views 1 download

Transcript of l'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAA

l'evoluzione dell'informatica nei videogiochi: da pong ai moderni AAA Pier Luca Lanzi

sto giocando a … alcuni giochi a cui ho giocato di recente …

http://www.facebook.com/polimigamecollectivehttps://twitter.com/@POLIMIGC

http://www.youtube.com/PierLucaLanzihttp://www.polimigamecollective.org

c’era una volta …C’era una volta …

CRC102A – Politecnico di Milano 1951

Tennis for Two (1958) - William Higinbotham - Brookhaven National Laboratory

Space Wars! (1961) - Steve Russell et al. - MIT

Space Wars! (1961) - Steve Russell et al. - MIT

Midway Sea Raider (1971)

Atari Pong 1972

Yars' Revenge (1982) – Howard Scott Warshaw – Atari 2600

https://www.youtube.com/watch?v=pvjajVf3BEc

Yars' Revenge (1982) – Howard Scott Warshaw – Atari 2600

Hardware Atari 2600 •  CPU: 1.19 MHz MOS 6507•  GPU: risoluzione di 160 x 192 pixel ma raggiungibile solo con

tecniche di programmazione speciali.•  128 colori su schermo ma al massimo 4 per linea•  2 canali di suono a 1-bit e controllo di volume a 4-bit•  128 Byte di RAM•  ROM (cartuccia): 4 KB di capacita massima che potevano

diventare 32 KB con il bank switching

Pac-Man (1980) – Toru Iwatani - Namco

Hardware Pac-Man •  CPU: Zilog Z80 @ 3.072 MHz•  GPU: risoluzione di 224×288 con un frame rate di 60.61fps•  16KB ROM e 4KB RAM con 2KB di video RAM•  256 colori con 8-bit di cui solo 16 colori su schermo•  8 sprite su schermo, 64 sprite in moemoria, di 16×16 pixels e un

massimo di 4 colori per sprite

GameplayIntelligenzaArtificiale

Interfaccia�Utente

Grafica(GPU)

Suono(codice)

Motore di Animazione

Motore�Fisico

GameLoop

0

10

20

30

40

50

60

70

ODYSSEY

ATARI/

INTELLI

VISION

NES/MAST

ER SY

STEM

SNES/

MEGADRIV

E

PLAYS

TATIO

N

PS2/XBO

X/GC

XBOX360

/WII/P

S3

Prince of Persia (1989) – Jordan Mechner

IntelligenzaArtificiale

Interfaccia�Utente

Suono(codice)

Supporto�Multigiocatore Rete

Rendering(GPU)

Motore di Animazione

Motore�Fisico

GameLoop

gameplayGame Engine

Quali sono state le conseguenze?

Downwell (2015) - Ojiro Fumoto

La tecnologia è cambiata …

L’approccio allo sviluppo è cambiato …

E i problemi?

Vincoli Temporali •  Tipicamente un videogioco deve garantire almeno 30 frame per

secondo (30 fps)•  Un ciclo della game engine deve quindi occupare meno di 1/30 di

secondo in totale•  Tutta l’elaborazione della logica di gioco e della fisica (movimenti,

collisioni, ecc.) devono essere eseguiti in meno di 1/30 di secondo

•  E’ quindi necessario ottimizzare il codice al massimo per evitare qualsiasi spreco

Quali Ottimizzazioni? •  Precalcolando tutto quello che è possibile

•  Utilizzando strutture dati per l’accesso allo�stato del gioco e a calcoli complessi (collisioni)

•  Non creando e non distruggendo nulla

•  Semplificando i calcoli matematici§ Precalcolando le funzioni trigonometriche§ Evitando funzioni costose come le radici quadrate§ …

38

http://www.facebook.com/polimigamecollectivehttps://twitter.com/@POLIMIGC

http://www.youtube.com/PierLucaLanzihttp://www.polimigamecollective.org