Tip:
Highlight text to annotate it
X
Allora, questo già
è un video importante, perché è un video importante? perché
il fatto che un marchio come Ferrari sia presente
all'interno di un prodotto indipendente
già dovrebbe dare un segnale che stiamo cercando di fare qualcosa che va al di là
dei normali canali dei prodotti indipendenti.
Ovviamente non ci possiamo arrivare con la pura forza dei soldi
e quindi ci dobbiamo arrivare in un altro modo, cercando di creare
un nome all'interno della comunità italiana
che si occupa di simulazioni.
E piano piano siamo arrivati a
farci sentire da Ferrari: ha capito il nostro progetto, ed è diventata pare di questo progetto.
Allora, oggi...
è un talk molto breve, io ho cercato di
cercare di analizzare dei punti che possano essere interessanti per tutti quanti.
Daremo uno sguardo veloce al mercato dei giochi di guida, cioè come si piazza Assetto Corsa e dove si vuole piazzare.
Daremo uno sguardo alla tecnologia Laser Scan, che è una tecnologia che usiamo per realizzare i circuiti.
Un piccolo sguardo al team, com'è composto il nostro team di sviluppo...
e poi l'evoluzione riguardo alla tecnologia che sta dietro al prodotto.
Il mercato dei giochi di guida
si può dividere bene o male in queste cinque categorie.
Abbiamo gli arcade, che sono Project Gotham, Burnout, etc etc,
sono tutti videogiochi che non hanno
la guida al centro dell'esperienza,
quindi tendono ad essere molto incentrati su super incidenti e cose del genere.
Quindi tutta l'attenzione degli sviluppatori va lì e non su come effettivamente poi si comportano le macchine
e come sono caratterizzate, tutte le macchine
tendono ad essere bene o male uguali,
una volta che ne hai imparata a guidare una, hai imparato a guidarle tutte.
Poi abbiamo i driving game come Test Drive, dove la caratterizzazione delle macchine comincia a diventare più importante.
Ogni macchina inizia a comportarsi in maniera diversa, ma la base è ancora un gioco,
il divertimento è l'unico obiettivo degli sviluppatori.
Poi abbiamo quelli che nella nostra comunità dei simracing chiamiamo "simcade".
I simcade sono dei prodotti che hanno...
sono costruiti come dei giochi, nel senso che offrono un'esperienza che ha un inizio...
probabilmente non ha una fine, perché Gran Turismo non finisce...
probabilmente, però...
porta il giocatore, passo passo, prendendo...
invece di avere dei livelli, come in un videogioco normale, hai
diversi campionati con diverse macchine.
La cosa interessante è che sono dei simulatori nel senso che il core che hanno sotto
è comunque un core importante, soprattutto considerando che girano su delle macchine molto meno potenti, come CPU, rispetto ai PC attuali.
E poi hanno tutto un marketing
basato sulla parola "simulazione",
cioè Gran Turismo basa tantissimo
la sua forza sul fatto di essere un simulatore.
Ovviamente per chi è amante del simracing...
non vengono considerati simulatori al 100%.
Poi abbiamo il simracing: io, in maniera molto poco modesta,
ho messo il nostro netKar PRO lì sopra,
ma in realtà ce ne sono altri.
La cosa interessante è che qui sono tutte aziende indipendenti.
Ovviamente qua c'è anche ad esempio Codemasters.
Qui sono tutte bene o male aziende indipendenti, quindi si tratta di una nicchia
abbastanza ridotta, diciamo 50.000 unità...
...più o meno, sono i veri amanti del simracing, molto molto ridotta.
E sono dei rompiballe, perché
sono delle persone che sanno veramente di macchine e macchine da corsa,
sono dei piloti, sono gente che porta la propria macchina
in una pista come quella di Vallelunga il sabato, quindi sanno effettivamente di cosa si parla.
E quindi ogni volta che esce un prodotto di simracing
ci sono dei forum dedicati su cui partono dei flame di centinaia di pagine
parlando di cose assurde, tipo come si comporta la macchina in una particolare curva, etc.
Poi esiste il mercato professional, sono i race team,
i race team utilizzano i simulatori
per allenare i piloti.
Se io devo andare a fare una gara a Portimão e il mio pilota non ha mai visto la pista di Portimão,
il simulatore è un'ottima esperienza per fargli fare
150 giri a Portimão, il pilota arriva a Portimão...
***, dal primo giro sa esattamente ogni curva, ogni cambio di marcia...
e come la macchina si comporta a dei cambiamenti di setup su quella pista.
Noi siamo parte di questo mercato. Ci sono anche i ragazzi di rFactor Pro che sono dei nostri competitor.
E altre volte viene affrontato come software custom.
Aziende come Ferrari o Dallara che creano software in-house
in modo da utilizzare i propri dati per simulare le vetture.
Ora, qual è l'idea di Assetto Corsa?
L'idea di Assetto Corsa, il piano di Assetto Corsa è di prendersi tutto questo mercato.
Quindi andare da qua, dal mercato professional fino a prenderci gli utenti di Gran Turismo.
Diciamo che questa parte di mercato, tra virgolette, già ce l'abbiamo.
Come andiamo a prenderci questa? Ce l'andiamo a prendere cercando di offrire un gioco che sia
senza compromessi dal punto di vista della simulazione, che resta il nostro punto di forza,
ma che proponga al giocatore più occasionale un modo semplice di entrarci,
attraverso anche modalità più divertenti,
tipo la modalità drift che vedevamo prima con la M3.
Dà i punti a seconda di quanto tempo si riesce a mantenere la macchina
di traverso.
Questo è il piano, e se questo piano dovesse riuscire...
e qualcuno mi vuole invitare alla Global Game Jam del 2014...
potremmo avere problemi di parcheggio, perché dovremmo arrivare con questo.
Più realisticamente...
Più realisticamente
quello che succederà, è che probabilmente ci prenderemo una parte di questo mercato,
ok? non ce lo prenderemo tutto.
Ma siccome qui stiamo parlando di 5 o 6 milioni di persone,
va benissimo anche una piccola parte di quel mercato, va benissimo così.
Allora...
Parliamo di Laser Scan, cos'è il Laser Scan?
Che problema c'è con i simulatori?
C'è stato grande studio per migliorare il modello matematico che simula la macchina.
Però c'è un grosso problema: se io ho questo modello matematico perfetto
e poi lo vado a far girare su una pista che non corrisponde alla pista reale,
in realtà ho fatto una cosa assolutamente inutile.
Il Laser Scan risponde a questa problematica.
Che cos'è il Laser Scan? Di fatto il Laser Scan
è un aggeggio che può essere messo su un treppiedi oppure, nel nostro caso,
su un van,
che poi viene localizzato col GPS
e che spara una serie di raggi con questo laser
e misura la distanza tra il punto in cui il laser è stato sparato
e il primo oggetto che viene incontrato
e va quindi a generare una nuvola di punti.
Da quella nuvola di punti poi noi andiamo a ricreare il tracciato.
È un passaggio un po' veloce, quindi cerchiamo di rallentarlo.
Ipotizziamo che vogliamo fare questo. Questa è una foto di Imola,
l'entrata di una curva che si chiama Tosa.
Quindi, vogliamo realizzare una cosa del genere.
Andiamo lì, facciamo il Laser Scan, e otteniamo questa cosa qui.
Otteniamo quella nuvola di punti che... eccola qua.
Questa nuvola di punti.
Il grafico utilizza questa nuvola di punti per realizzare un wireframe...
in pratica che cosa succede?
il grafico adesso ha una nuvola di punti a colori,
è interessante, perché il Laser Scan, mentre scannerizza, prende anche in tempo reale le foto.
Poi ci sono dei software che riescono, partendo da quelle foto e dalle informazioni del GPS,
ad avere, per ogni punto, il colore esatto.
E quindi il grafico riesce a vedere, "ah questo è un cordolo", "questa è erba", "questo è asfalto".
E quindi crea una cosa del genere.
Questa cosa poi viene "seduta" sul Laser Scan.
E quindi quello che otteniamo è una pista che ha esattamente lo stesso andamento della pista reale.
E quindi riproduce ogni bump, ogni avvallamento della pista,
che per piloti e per ingegneri è essenziale sapere.
Da qui poi... arrivato... texturizzato... qui siamo in-game.
Quindi, rispetto alla foto che noi avevamo visto prima, è assolutamente identico.
Quindi...
se v'è piaciuto, lo rifacciamo un'altra volta.
Questa è la torre di Imola, questa è la foto.
Questo è il Laser Scan.
La cosa interessante è che
più ci si allontana dal punto in cui parte il raggio,
più i punti cominciano a diventare radi,
perché chiaramente il Laser Scan ha una massima distanza, quindi arriva fino a un certo punto.
Quindi da qui
wireframe, e
risultato finale in-game.
Praticamente riusciamo a ottenere esattamente...
non è solo la strada, ma vedete che questi punti di riferimento
sono tutta una serie di informazioni che per il pilota reale sono essenziali
perché quando il pilota deve capire dove deve frenare
nella vita reale comincia a prendere una serie di punti di riferimento.
Se questi punti di riferimento nel simulatore sono in posizioni diverse
lui fa un lavoro, al simulatore, assolutamente inutile,
e poi in pista deve trovarsi nuovi punti di riferimento.
Avere questi Laser Scan significa potergli dare più punti di riferimento possibili
nella esatta posizione in cui si trovano nella pista reale.
Allora...
per ricapitolare il Laser Scan,
ovviamente costa.
Costa perché significa mandare un'azienda che ha questa apparecchiatura in una pista, noleggiare la pista,
fare la scansione, fare la pulizia dell'immagine,
e quindi ovviamente porta un costo, ma porta anche
un... come si dice in italiano? "it saves time".
Un risparmio di tempi. Perché? Perché
spariscono tutti i dubbi e tutte le discussioni, non esistono più le discussioni,
cioè, io non vado più dal grafico a dire "sai cos'è, quella curva mi sembrava che andava un po' più in salita"
o più in discesa, o "ah ma io mi ricordo che lì c'era un buco"...
Nel momento in cui c'è il Laser Scan tutte queste discussioni sono finite.
Non esistono più. Il Laser Scan dà una certezza assoluta del risultato.
Quasi sempre.
Perché a volte...
nel Laser Scan appare il mio socio, Marco Massarutto.
Lui dice che stava al telefono, a me sembra che stia mangiando un panino.
Però, di fatto... è passato il van del Laser Scan ed è stato immortalato lì
e quindi il grafico, quando ha dovuto fare questa pista, ha trovato 'sta sorpresa.
Questo significa che il passaggio dal Laser Scan al prodotto finito in-game
non è mai un'operazione automatica.
Non esiste un tasto "ok adesso dammi la pista"
perché il grafico dev'essere sempre in controllo della situazione, e solo un umano può sapere dove servono tot poligoni, e dove servono meno poligoni.
Il team... noi siamo un team molto molto piccolo...
non si vedono i numeri, ve li dico io...
un project manager,
che gestisce un po' tutto,
quindi sa sempre, in qualsiasi momento, cosa ogni grafico sta producendo,
e cosa stanno facendo i programmatori,
ed ha un'overview del progetto.
E si occupa anche del licensing, quindi è...
è una specie di Diego Armando Maradona del licensing, perché se è riuscito a portare Ferrari, Pagani, Lotus, e BMW in un progetto indipendente
senza grossi finanziamenti...
ha fatto un lavoro incredibile.
Noi programmatori siamo tre,
sono due sviluppatori, tra cui io, sul motore proprio di gioco,
quindi la simulazione vera e propria,
e c'è un altro sviluppatore che si occupa di tutta la parte che noi chiamiamo il launcher,
che sarebbe la parte iniziale dove si sceglie
che macchina, che pista, che tipo di gara uno vuole fare...
cinque artisti 3D, quindi grafici 3D per macchine
e per piste... in realtà le piste sono tutte realizzate da una sola persona.
Un "Physics Integrator", cos'è un physics integrator nei simulatori?
Il physics integrator è una persona che è in grado di inserire i parametri nel modello matematico delle vetture, quindi
prendendo i parametri ad esempio da Lotus,
che dà, che ne so, la geometria delle sospensioni, dati sulle gomme, etc etc,
li mette all'interno degli algoritmi che vengono sviluppati da noi,
e poi è anche in grado di guidare la macchina molto bene, ha anche esperienza in pista, ed è in grado di capire
se quei dati che abbiamo inserito hanno effettivamente dato il risultato che ci aspettavamo.
Poi abbiamo un audio engineer... cosa manca?
ZERO GAME DESIGNER. Non abbiamo game designer in Kunos Simulazioni,
non ne abbiamo bisogno, perché... questo lo possiamo mettere poi...
gli uomini con le idee non ci servono.
Se abbiamo bisogno di idee accendiamo Sky,
ci guardiamo la gara di Formula 1, e il giorno dopo abbiamo tutte le idee che ci servono.
È un progetto
che utilizza diversi linguaggi di programmazione.
La parte di simulazione è in C++ 11, con Visual Studio 2012, ovviamente iniziata con Visual Studio 2010.
Utilizzo poi Google Go per il server, il server per il multiplayer.
Per la parte invece di interfaccia utente, il launcher, abbiamo
un core in C# e tutta l'interfaccia realizzata in HTML, questo è molto importante perché Assetto Corsa punta moltissimo sul concetto di moddabilità,
la possibilità degli utenti di aggiungere vetture e piste.
Avere l'interfaccia in HTML significa
per i modder poter fare una total conversion.
Quindi rifare anche l'interfaccia utente, se uno vuole fare
un mod dedicato alle macchine degli anni '30
potrebbe ridisegnare l'interfaccia, dall'inizio che il gioco viene lanciato, fino alla fine,
con uno stile anni '30.
Poi usiamo Python per dei plug-in esterni, quindi diamo anche la possibilità
di scrivere plug-in per interfacciarsi col motore e prendere i dati in tempo reale,
ognuno verrà fuori con le idee più folli, capito?
Le API principali che utilizziamo sono le DirectX 11 per la grafica...
Alla fine non siamo andati a utilizzare le feature più spinte delle DirectX 11, tipo tessellation, perché quelle richiedono
un cambiamento importante nella pipeline.
Poi l'importante è avere un gioco comunque nell'API più moderna, attuale, quindi ci dà la possibilità di andare in quella direzione.
Per l'audio usiamo XAudio 2, per la fisica base dei corpi rigidi e delle collisioni usiamo ODE
da un paio di mesi, perché fino a due mesi fa usavamo PhysX, e per una serie di ragioni che non vi sto a spiegare siamo passati a ODE.
L'evoluzione della tecnologia... non siamo partiti così.
Siamo passati attraverso diversi esperimenti.
Tutto il progetto Assetto Corsa, tutta la tecnologia parte bene o male da questo progetto. Questo è un progetto che abbiamo realizzato nel 2010 per ACI,
progetto di scuola guida tradizionale. Praticamente se uno va nelle scuole guida ACI
trova questo prodotto in cui si guida una noiosissima Yaris
per questa specie di città di Milano...
Questo è stato il progetto
più brutto da testare in vita mia.
Praticamente andare in giro per questa città a 30 km orari per vedere se effettivamente c'era un bug dall'altra parte della città...
...tremendo... orribile.
La cosa interessante è che questo è realizzato in C#...
diciamo un 90% di C# e poi c'è una piccola parte in C++
che si interfaccia con le DirectX 10.
Poi è arrivato il momento di Unity: all'inizio del 2011 abbiamo scoperto Unity
e... questa è un'immagine di gioco presa dagli esperimenti che abbiamo fatto con Unity...
e onestamente a me sembrava di aver fatto 13 al Totocalcio.
Perché io mi svegliavo la mattina e trovavo cose del genere
senza fare nulla. E quindi già m'immaginavo un'estate,
mentre loro lavoravano, i grafici, io me ne andavo al mare, perché il motore grafico era fatto, il motore di gioco era fatto, e quindi io stavo benissimo così.
Purtroppo quello che è successo è che poi abbiamo iniziato ad avere dei problemi con Unity...
due in particolare ci hanno portato a decidere definitivamente di lasciar perdere.
Uno erano i tempi di caricamento.
Per una pista come le nostre parlavamo di tempi di caricamento di 30-40 secondi, assolutamente inaccettabili.
Ed era molto difficile lavorare pensando al modding,
cioè mantenendo contenuti esterni, in Unity, questa era un'altra cosa che ci dava fastidio.
Il motion blur disponibile all'epoca era un qualcosa di tremendo, adesso non so se è migliorato, ma all'epoca
era più come una pasticca che come un motion blur.
E poi la mazzata finale ci è arrivata quando abbiamo scoperto che non potevamo decidere la distanza di ogni singola cascata di ombra.
Nel nostro caso era essenziale perché abbiamo il cockpit
che deve avere un'ombra estremamente definita.
In Unity non si poteva fare e le ombre del cockpit erano una cosa orrenda, e quindi
lo abbiamo lasciato perdere. Per fortuna
mentre si lavorava a Unity io giochicchiavo
con dei motori alternativi, uno con C++ e OpenGL, ed uno con C#, ma questa volta in DirectX 11...
Insomma, parlando e cercando di capire qual era la strategia migliore per Assetto Corsa, siamo finiti, alla fine,
ad avere questo motore, che è il motore che usiamo attualmente, che è un motore completamente fatto in-house.
C++, DirectX 11, e...
niente vacanze.
E... niente, quindi...
tutto brevemente... chi vuole saperne di più di Assetto Corsa, questo è il sito...
A febbraio 2013, quindi a giorni, avremo una prima versione pubblica scaricabile.
Potrà essere usata solamente dagli utenti che hanno la licenza dei nostri prodotti precedenti, in particolare netKar Pro.
Speriamo di rilasciare la prima versione del gioco entro la primavera di quest'anno.
Ed è un prodotto che ci porteremo avanti per almeno 5 anni, quindi
sarà alla base di tutto quello che faremo per i prossimi 5 anni, quindi,
com'è stato per i nostri vecchi prodotti, ci saranno free update, cioè
il prodotto continuerà a migliorare e ad avere feature che al momento non sono disponibili, tipo, che ne so,
pioggia, corse notturne, e altre vetture, altre piste.