• Non ci sono risultati.

Una carriera nei videogiochi. Alessandro Monopoli, Lead Engine Programmer Console Team

N/A
N/A
Protected

Academic year: 2022

Condividi "Una carriera nei videogiochi. Alessandro Monopoli, Lead Engine Programmer Console Team"

Copied!
33
0
0

Testo completo

(1)

Una carriera nei videogiochi

Alessandro Monopoli, Lead Engine Programmer –

Console Team

(2)

Giochi a cui ho lavorato

Milestone - Milano

Codemasters – Southam, UK

Supermassive Games – Guildford, UK

(3)
(4)

Hardware usato nei videogiochi

Atari 2600 - 1977 CPU: 1.19Mhz RAM: 128 bytes

Sega Master System - 1985 CPU: 4 Mhz (Z80)

RAM: 8KB + 16Kb VRAM

Sega Mega Drive – 1988,1990 CPU: 7.6Mhz (68000)

RAM: 64KB + 64Kb VRAM Sega Saturn – 1994, 1995 CPU: 2x28.6Mhz GPU: 2 chip RAM: 2MB + 1.5MB VRAM Sega Dreamcast – 1998, 1999 CPU: 200Mhz GPU: 100Mhz RAM: 16MB + 8MB VRAM

Playstation 3 – 2006

CPU: 3.2Ghz GPU: 500Mhz RAM: 256MB + 256MBVRAM Xbox One – 2013

CPU: 1.75Ghz x 8 GPU: 853Mhz RAM: 8GB

(5)

Hardware corrente

In media

CPU: 3.8Ghz x 8 GPU: 1.825Ghz RAM: 16GB

SSD: circa 40x piu’ veloce rispetto al passato

(6)

Curiosita’

Questa immagine e’ grande 726Kb La cartuccia di Sonic e’ da 512Kb

(7)

Lavorare nei videogiochi

(8)

Lavorare nei videogiochi e’ diverso

Cultura basata intorno alla creativita’

Conta molto il risultato rispetto all’aspetto

Atmosfera accogliente e genericamente leggera - Codice di abbigliamento molto libero

- Giocare durante la pausa pranzo e’ normale

- Togliersi le scarpe e mettersi le ciabatte e’ normale

- Appendere poster e avere action figure sul tavolo e’ normale - Uffici quasi sempre open space, non cubicoli

(9)

Lavorare nei videogiochi e’ ordinario

Stipendio ogni mese

Vacanze (25 giorni l’anno feste secluse) Pensione privata

Vari benefit (dentista, medico private, etc…) Feste annuali (pandemia permettendo)

Flexi-time (7.5 ore al giorno, con inizio e fine a tua discrezione in un range) Bonus annuale

Revisione stipendio annuale

Benefit simili o migliori rispetto ad altri lavori

Metodologia di lavoro simile

Strumenti ben noti (Jira, Hansoft, SCRUM) Linguaggi ben noti (C++, C#, etc)

Ruoli chiari (Lead, producer, director, expert)

Stima dei tempi e aspettative come in tutti i lavori

(10)

Lavorare nei videogiochi e’ conveniente

Aziende sempre alla ricerca

Normale dover scegliere tra due o piu’ aziende che ti contendono Continuamente contattati da recruiter

Se la vostra azienda e’ in difficolta’ e licenzia, non farete fatica a trovare un altro lavoro

Settore molto vivace

Mio Linkedin,

Sono tutti recruiter con offerte varie

(11)

L’elefante nella stanza

(12)

Crunch time

Da noi e’ il “lavoro straordinario”

In fase di colloquio, chiedere come viene gestito il crunch time Il crunch time prolungato porta a questi problemi

- Fatica generale

- Difficolta’ nel dormire - Difficolta’ con la famiglia - Irritabilita’

- Nei casi puoi estremi, stress post traumatico (Ne ho visto uno, ha richiesto uno psicologo per mesi)

Niente di tutto questo vale un

pagamento in qualsiasi forma

(13)

Crunch time

Ci sono storie famose a riguardo Io in passato ne ho fatto un bel po’

Negli ultimi 6-7 anni la situazione e’

nettamente migliorata

Sono passato dal fare 8-10 mesi di straordinario per progetto a 1 settimana

(14)

Requisiti

(15)

Requisiti

Negli anni, le richieste sono cambiate moltissimo - ‘80 – ’90 : Assembly e C

- ‘00 – ‘10 : C++, C#, HLSL per GPU

- ‘20 in poi : C++14/17/20, Linguaggi visuali (Blueprint), HLSL, C#

Altri linguaggi:

- Javacript, C#, Python, etc..

(16)

Cosa e’ cambiato

- Con l’aumento della potenza delle machine, I giochi sono cresciuti - Questo ha rischiesto la crescita dei team

- Moltissimi ruoli con specifiche specializzazioni - Programmatore Engine

- Programmatore Gameplay - Programmatore AI

- Programmatore Tools - Programmatore Audio - Programmatore Network

(17)

Cosa e’ cambiato

- Non si fanno quasi piu’ engine specifici per il gioco

- Si preferisce modificare engine di terze parti (Unity, Unreal, Cryengine)

- Alcune aziende preferiscono comunque usare un engine proprietario (CA usa il proprio engine per Total War)

(18)

Cosa bisogna sapere

- C++/C#

- Classi, polimorfismo - Template

- Libreria standard

- Smart pointer di vario tipo - Programmazione generica

- Design patterns - Interfacce

- Multithreading

- Entity Component System - Basso livello

- Come funziona la cache della CPU

- Programmazione con I registri vettoriali - Lavorare con un engine

- Unreal e/o Unity

(19)

Specializzazioni

Rendering

- Teorie sulla luce, materiali, colore e cosi’ via - Funzionamento GPU

- HLSL

- API tipo Vulkan, DX12, DX11, OpenGL Tools

- Database SQL o NoSQL (MongoDB, Elastic search) - C#, Python, Javascript, AngularJS o altri framework - Batch file

- Linux (server), AWS management Gameplay/AI

- Deep learning

- Macchina a stati, Behaviour tree

(20)

Ottimizzazione

Non importa quanto il vostro sistema sia potente

Le richieste di un gioco moderno spingono quasi sempre l’hardware 30 FPS -> 33ms per frame

60 FPS -> 16ms per frame Anche peggio in VR:

60FPS minimo con doppio rendering Algoritmi in continua revisione

Spostamento task su GPU (se ha senso)

Anche le cose piu’ semplici contano: esempio float var = 3.0;

3.0 e’ un valore “double”, quindi qui stiamo forzando una conversione.

float var = 3.0f;

(21)

Matematica

Ma serve?

(22)

Matematica

Esempio:

Voglio che la mia astronave punti verso un punto. Come costruisco la sua trasformazione?

P

A Dir = A-P

DirNorm = Dir / |Dir|

Right = DirNorm X GenericUP(0,0,1) Up = DirNorm X Right

Matrix= DirNorm.x, DirNorm.y, DirNorm.z Right.x , Right.y, Right.z

Up.x , Up.y, Up.z

(23)

Matematica

Esempio: Sono nel cono visivo di un nemico?

PDir = P-C;

PDirNorm = PDir / |PDir|

CosAlpha = Cdir . PDirNorm Angle = ArcCos(CosAlpha)

Cone C

P CDir

(24)

Come imparare

La scuola e’ la principale fonte di queste conoscenze.

Potete imparare tutto autonomamente, ma non e’ altrettanto efficiente.

- Universita’

- Matematica, Informatica, Fisica - Corsi specifici aggiuntivi

- Scuole private

- Verificate insegnati e quanti studenti sono stati assunti nel campo e dove - Internet

- Trovate quasi tutto gratis, ma spesso confuso - Corsi online (Udemy, ecc…) verificate la fonte - Reddit: non solo politica, gatti e porno!

(25)

E poi ho finito?

(26)
(27)
(28)

Come cercare lavoro

(29)

Il vostro CV

Ecco alcune domande che mi sono state fatte a riguardo, con risposta:

SU DI VOI

• Devo mettere la mia foto? No, e’ a tua preferenza

• Devo mettere se conto di avere figli? No

• Devo mettere il mio orientamento sessuale? No! E’ illegale chiederlo!

SULLA VOSTRA ESPERIENZA

• Devo mettere ogni esperienza lavorativa? Cerca di concentrarti su esperienze rilevanti col lavoro che cerchi. Se non ne hai, va bene qualunque cosa.

• E’ un po’ che non lavoro, e’ un problema? Dovrai spiegare i buchi.

• Devo mettere I miei hobby? Si’, sono argomento di conversazione.

IN GENERALE

- Quanto deve essere lungo? I’ importante e’ concentrarsi su cosa si e’ fatto e di cosa si e’ fieri. In generale 1-2 pagine, ma nessuno si offende per piu’ pagine.

(30)

Il vostro colloquio

• Se ho i tatuaggi e’ un problema? No

• Devo mettermi in giacca e cravatta per il colloquio? No, ma siate presentabili

• Devo sapere l’inglese? Si’, e’ una necessita’ sia in Italia che all’estero.

• Posso fare foto mentre sono li’? Di base, no. Chiedete prima.

• Ho un progetto personale: ha senso portarlo? Si’

(31)

Basta essere preparati?

No, parlandovi devono trasparire queste caratteristiche:

- Deve essere piacevole lavorare con voi - Sapete essere parti di un team

- Non siete intolleranti verso gli altri

- Avete passione e voglia di crescere nel campo in cui vi presentate Come prepararvi

- Siate onesti su quello che sapete fare e quello che volete fare - Sfruttate al meglio lavoro a scuola con I vostri compagni

- Non isolatevi, non risolvete tutto da soli - “Be excellent to each other” – Bill & Ted (1989)

- Cercate di trovare un campo che davvero vi interessa

- Qualcosa che tra vent’anni ancora vi appassionera’. E difficile, ma quanto lo trovate, vi folgorera’.

(32)

Ottenete un’offerta

Siete stati bravi, avete ottenuto un’offerta!

- Devo accettarla? Nessuno obbliga nessun ad accettare. Non accettare non significa bruciarsi ponti o altro.

- Il contratto e’ blindato? Il contratto e’ sempre modificabile, nei limiti del sensato.

- Posso chiedere piu’ soldi/vacanze/benefit? Controllate prima cosa viene offerto in media alla vostra esperienza.

(33)

Riferimenti

Documenti correlati

2 posso fare una pallina ma se la schiaccio si sbriciola il suolo è sabbioso e molto umido. 3 se schiaccio la pallina di suolo, questa si appiattisce ma non

La realizzazione delle attività è portata avanti da tecnici della Ragioneria Generale dello Stato, esperti di Formez PA, nonché esperti internazionali in materia di

Presa in carico dei problemi tecnici Help desk via email e/o telefono.. Attenzione al gatto

M3-09 Nuova Fermata Valle Giulia sulla linea F (Roma Nord) della metropolitana M3-10 Quadruplicamento della tratta ferroviaria Casilina-Capannelle. M3-11 Realizzazione di

“Ne consegue che la proposta avanzata dal Presidente Anelli - hanno specificato i rappresentanti SIMeG - riguardo la riduzione per un tempo massimo di un anno del Corso

Per farlo hanno svolto una serie di esperimenti in cui, seguendo il metodo costruttivista e facendo domande, hanno iniziato con le caratteristiche dell’acqua, per poi

To do this, they carried out a series of experiments in which, following the constructivist method and using questions, they began with the characteristics of

• In pratica, l’endpoint è tanto più rilevante quanto più rappresenta una misura diretta dell’obiettivo (tossicità, attività,