mercoledì 31 ottobre 2007

Modello fisico delle gomme

Le gomme hanno un ruolo fondamentale nella dinamica di un veicolo: attraverso di esse si ha l'interazione del veicolo con l'asfalto, quindi sono sede di tutte le principali forze scambiate con esso. In letteratura sono stati proposti moltissimi modelli fisici per esse, ma per il nostro scopo di simulazione realtime abbiamo individuato questi possibili candidati:
  • modello di Pacejka
  • brush model
  • spring model
Il primo è il più utilizzato dalla maggior parte delle simulazioni attuali; è un modello empirico, basato sulle osservazioni sperimentali di alcune correlazioni tra le grandezze che caratterizzano il comportamento di una gomma.E' basato sull'approsimazione di alcune curve caratteristiche del comportamento delle gomme (ad esempio Forza laterale/slip angle) mediante interpolazione. I coefficienti dei polinomi interpolanti si ricavano per mezzo delle "Magic formulas" a partire da alcuni parametri fisici. Il vantaggio è che a runtime il tutto si riduce ad un semplice lookup in una tabella; infatti il lavoro di calcolo dei coefficienti si può comodamente fare offline e memorizzare il tutto in tabelle pre-calcolate.

Gli ultimi due modelli cercano di spiegare il fenomeno fisico dell'aderenza gomma-asfalto e calcolano le forze in gioco. In pratica si deve suddividere il pneumatico in settori (o spicchi) e applicare le formule a ciascuno di essi. Dal punto di vista dell'impiego in real-time sono molto più pesanti del Pacejka, infatti ad ogni frame bisogna calcolare tutte le forze e iterare questo calcolo per ciascun settore. Però consentono di simulare alcuni aspetti importanti quali le deformazioni elastiche della spalla del pneumatico, la distribuzione delle temperature sul battistrada, etc...

Per approfondire la questione, vi invito a leggere l'apposito topic del forum e a partecipare attivamente aggiungendo pareri, informazioni tecniche etc...

domenica 28 ottobre 2007

Annuncio importante

A causa di omonimia con un esistente gioco gratuito in flash, realizzato da una SH californiana, ci troviamo costretti a modificare il nome del progetto in Oversteer - The Game.

Oversteer Logo Contest

E' con grande piacere che lo staff di Oversteer lancia il concorso per la creazione del logo ufficiale.
Chiunque voglia partecipare crei un'immagine del logo (riportante chiaramente il nome "Oversteer - The Game" al suo interno) e la invii, assieme ad una breve presentazione del creatore, alla mail oversteergame@gmail.com
I lavori devono pervenire entro il 31 Dicembre 2007. Dal 1° Gennaio 2008 i loghi pervenuti saranno mostrati in una galleria e sarà indetto un sondaggio pubblico per decretarne il migliore.
Come premio il vincitore sarà inserito nei credits di Oversteer.
Che la sfida abbia inizio!

AAA Circuito cercasi . . .

Per i primi test dell'engine grafico urge avere a disposizione un modello 3d di un circuito ben fatto. Pertanto ci rivolgiamo ai tanti modder della comunità italiana di simracing: ci basterebbe il permesso di utilizzare all'interno di Oversteer un circuito già realizzato (magari nel formato di rFactor o simili).

Inoltre cogliamo l'occasione per ribadire che siamo sempre alla ricerca di un modellatore 3d di circuiti per la creazione di circuiti dedicati ad Oversteer.

Speranzosi di trovare un valido aiuto, aspettiamo le vostre proposte.

Force Feedback

Dai risultati parziali del sondaggio emerge che, finora, la caratteristica più desiderata è il force feedback. Dato che le nostre conoscenze su questo argomento sono alquanto limitate, chiediamo il supporto di tutti voi.
Quali sono le leggi fisiche che lo regolano?
Come ci si interfaccia col motore delle periferiche?
Vorreste il settaggio automatico o manuale dei suoi parametri?

sabato 27 ottobre 2007

Lo staff si allarga!!

Come potete notare dal riquadro, lo staff tecnico del progetto si allarga. Stanno giungendo offerte di collaborazione da tutte le parti. Oggi si sono aggiunti Alessandro Castellini, ingegnere meccanico di Milano in veste di consulente per la fisica; Pierluigi Nastasi, studente di scienza dell'informazione di Catania come modellatore delle auto; infine Mirco Dondolini, 23 enne toscano e grande esperto di sim racing, come tester a tutto campo. Auguri ai nuovi collaboratori da parte dello staff.
Invito rivolto a tutti gli appassionati di sim racing italiani: collaborate al progetto secondo le vostre possibilità e capacità! Facciamo uno sforzo comune per creare il migliore sim italiano!

venerdì 26 ottobre 2007

Aperto un forum dedicato, su DrivingItalia

Grazie al supporto offerto dal portale DrivingItalia, abbiamo un forum interamente dedicato al progetto. Sono state create tre sezioni:
  1. Scelte tecniche: si discuterà sui pro e contro delle varie soluzioni implementative
  2. Fisica: si discuterà di dinamica del veicolo e formule correlate
  3. Wishlist: questa sezione nasce con lo scopo di individuare delle caratteristiche innovative ed originali che differenzino Oversteer dai simulatori esistenti.
Un ringraziamento particolare va a Nicola "Velocipede" Trivilino, amministratore e fondatore di DrivingItalia, che ha reso possibile tutto ciò.
Vi aspetto numerosi sul forum, per far crescere insieme questo progetto.

Stefano Coppi
Project Leader e Lead Programmer di Oversteer

giovedì 25 ottobre 2007

Ricerca collaboratori

Si cercano collaboratori a titolo gratuito con i seguenti profili:

  • Programmatore C#/XNA per engine grafico con conoscenza dei principali algoritmi di grafica 3D
  • Programmatore C# per gamelogic e menu
  • Programmatore C# esperto di dinamica del veicolo per engine fisico
  • Esperto di dinamica del veicolo per elaborazione del modello fisico e ricerca di dati reali
  • Programmatore esperto di Force Feedback
  • Tecnico audio per i suoni dei motori
  • Grafico 3D per modellazione di circuiti
  • Grafico 3D per modellazione di auto
  • Grafico 3D per creazione oggetti a bordo pista
  • Grafico 2D per grafica dei menu e del sito
  • Musicista per composizione musica di sottofondo
  • Tester per la fisica
  • Tester generici
Gli interessati possono mandare un breve cv, specificando la loro disponibilità, all'indirizzo email che compare nei contatti.

Lanciato il sondaggio per le feature aggiuntive

Ho lanciato un sondaggio per stabilire quali sono le caratteristiche aggiuntive più desiderate dagli utenti. Potete votare nella sezione sotto al profilo.

mercoledì 24 ottobre 2007

Grande interesse per il progetto

Un grande ringraziamento a tutti gli oltre 300 visitatori del blog durante il primo giorno di vita!! Sono molto lusingato da tutto questo interesse! Un ringraziamento particolare va a Nicola Trivilino, di DrivingItalia.net che ha prontamente riportato la notizia della nascita di questo progetto sul suo portale ed ha immediatamente offerto supporto e a Robbiexsstar e Desmo, del forum di slipangle, che hanno pubblicizzato la notizia sul loro forum.
Forza ragazzi, facciamo vedere che anche noi italiani possiamo competere con i vari ISI, SimBin, Blimey, Turn 10, Bizzarre Creations, Poliphony Digital etc...

martedì 23 ottobre 2007

Specifiche Minimali di Oversteer

Essendo un "garage game", sviluppato nel tempo libero, non si può pretendere che abbia la ricchezza di funzionalità dei giochi commerciali. Per la prima release ho deciso di puntare su un set di funzionalità minimo che lo caratterizzino come una simulazione di guida realistica, con una grafica avanzata ed una fisica avanzata. Il progetto deve essere molto flessibile in modo da poter aggiungere con il tempo ulteriori funzionalità ed altre categorie di auto.
Analizzando i principali simulatori di guida, ho individuato le caratteristiche essenziali per Oversteer:

Piattaforme Hardware/Software:
  • Windows XP/Vista: DirectX 9.0c, XNA Framework, scheda video con supporto shader model 2.0 o superiore.
  • XBox360 con XNA Game Launcher installato.

Gameplay:

  • Tipologia di tracciati: circuiti stradali
  • Tipologia di auto: a ruote coperte, monoposto
  • Modalità di gioco: test privati, gara singola, campionato
  • Possibilità di scegliere le sessioni (pratica, qualifica, gara)
  • Setup modificabile

Grafica:
  • Normal mapping per tutti gli oggetti del circuito
  • Offset mapping per enfatizzare il rilievo dei cordoli
  • Environment mapping per le carrozzerie delle auto
  • Illuminazione dinamica con HDR ed effetto "bloom"
  • Soft shadows
  • Effetto lens flare quando si ha il sole di fronte
  • Tracce delle gomme sull'asfalto

Suono:
  • Suoni dei motori pre-registrati

Fisica:
  • Aerodinamica: simulazione della downforce delle ali ed effetto suolo; effetto scia.
  • Telaio: momento di inerzia sui 3 assi; barre anti-rollio.
  • Sospensioni: a doppi triangoli sovrapposti. Ammortizzatori e molle regolabili.
  • Gomme: modello Pacejka-like; temperatura, pressione ed usura variabili dinamicamente;
  • Trasmissione: trazione posteriore con differenziale autobloccante regolabile;

Intelligenza Artificiale:
  • Numero di avversari configurabile
  • Piloti AI che difendono la posizione
  • Possibilità di errori dei piloti AI

Genesi di Oversteer

Fin da bambino, giocando con i primi videogame per il mitico Commodore 64, ho sognato di diventare programmatore di videogame; poi i casi della vita e le condizioni ambientali (scarsa diffusione di sw-house di videogame in Italia), hanno portato ad occuparmi di noiosissimo software gestionale. Però continuo a coltivare questa passione ed inseguire questo sogno. Finora sono riuscito a realizzare solo dei demo incompleti, ma dall'uscita del framework Microsoft XNA ho iniziato a credere nella possibilità di creare un "garage game".
Questa libreria consente al programmatore amatoriale di concentrarsi sugli aspetti specifici del proprio gioco, evitando di spendere tempo per mettere su l'infrastuttura; basti pensare alla facilità di importazione di file grafici e sonori permessi dalla Content Pipeline. Inoltre mi ha affascinato l'idea di poter programmare una console next-generation come la XBox 360; è fantastica la semplicità con cui si può deployare e debuggare un progetto sulla X360. L'obiezione principale che molti fanno è che l'uso di un linguaggio interpretato come C# è un limite alle prestazioni; in realtà il maggior carico computazionale nei moderni giochi si ha per la grafica ed ormai questa viene quasi interamente elaborata dalla GPU, tramite gli shaders, per cui C# non costituisce più un grosso limite. Per me che venivo da anni di programmazione C e C++, il linguaggio C# è stata una scoperta piacevolissima, ha davvero dei costrutti molto potenti e comodi come le region, i delegate ; inoltre consente di usare i thread in modo facile; ciò è una carta vincente del framework XNA perchè tutte le nuove CPU sono multicore (la XGPU può elaborare 6 thread hardware contemporaneamente). Una ulteriore spinta verso la scelta di XNA è venuta dalla notizia che, ad inizio 2008, Microsoft lancerà un sito YouTube-like, che fungerà da vetrina per i videogiochi amatoriali creati con XNA. Credo che sia fondamentale avere un minimo di visibilità per il proprio game; inoltre i videogame migliori potranno essere pubblicati dalla stessa Microsoft sul Live Arcade del Marketplace XBox360. Inoltre con la versione 2.0 di XNA, disponibile a Natale, sarà anche possibile il supporto per il multiplayer di rete, rendendo davvero completa la piattaforma.
Scelta la tecnologia, dovevo decidere il tipo di gioco da creare; ho deciso di fare un gioco che mi sarebbe piaciuto giocare, piuttosto che decidere in base a motivi commerciali e di mode. Da sempre sono stato appassionato di corse automobilistiche e di F1, quindi i miei videogame preferiti sono sempre stati i simulatori di guida; di conseguenza la scelta è ricaduta su questa tipologia. Anche perchè ci sono stati degli ottimi esempi di giochi nati da progetti amatoriali di una-due persone e diventati una realtà commerciale: vedi l'esempio italiano di NetKar oppure quello olandese di Live for Speed; il gioco a cui intendo ispirarmi però è R-Factor, per la sua versatilità e modificabilità. Altre fonti ispiratrici sono state il realismo di guida di Forza Motorsport 2 e la pulizia grafica e l'illuminazione di Gran Turismo 4 e 5. E' chiaro che per un progetto amatoriale è impossibile raggiungere il livello tecnico dei giochi citati nonchè implementare tutte le loro funzionalità. Cosi ho deciso concentrarmi su di un sottoinsieme di caratterisitiche, che per me costituiscono l'essenza di un simulatore di guida: grafica foto-realistica ed una fisica molto realistica. Buona parte del lavoro preparatorio per questo game è stato lo studio della dinamica del veicolo: ho acquistato ben 3 testi, tra cui la "Bibbia" degli ingegneri di pista: "Racecar Vehicle Dynamics" di Milliken&Milliken.

Benvenuti!

Questo blog è stato pensato come un diario che racconta la creazione del videogioco "Oversteer", una simulazione di guida in pista, sviluppato per Windows e XBox360.