User:Madbad82/sandbox

Speed Dreams, spesso abbreviato in SD e precedentemente noto come Torcs-NG, è un free and open source 3D racing video game per Linux, Microsoft Windows e Haiku. Nato nel 2008 come fork del simulatore di corse automobilistiche TORCS, è scritto principalmente in C++ e rilasciato sotto GPL v2+ e Free Art License, la cui versione più recente è la 2.0 di Aprile 2012.

Lo sviluppo di un accurato comportamento di guida, con diversi motori fisici disponibili, fa spiccare il progetto tra i pochi altri racing simulation open source codebases.

Speed Dreams può essere giocato con un'ampia gamma di dispositivi, inclusi tastiere, mouse, joypad, joystick, racing wheels e pedaliere.

Modalità di gara
Speed Dreams include diverse modalità di gara; anche se qualcuna consente più personalizzazione di altre, in genere tenta di riprodurre i veri tipi di gare. Sono disponibili anche eventi complessi come varie categorie di campionati o endurance races. Siccome le modalità di gara sono definite da file di configurazione in semplice testo, se ne possono liberamente create di personalizzate. In questo contesto il cambiamento più rilevate rispetto a TORCS - introdotto in Speed Dreams 2.0 - è la modalità "Cariera": qui il giocatore può competere con diverse classi di auto, durante più stagioni di gara, su piste selezionate casulmente e contro avversari, anchessi scelti casualmente, di livello bilanciato, guadagnando punti nella classifica di campionato. Nella modalità pratica, dalla versione 1.4.0, è possible fare gare di robot in modalità "solo risultati", cioè ignorando la visualizzazione grafica della gara; questo consente alla simulazione di essere eseguita ad una velocità il cui limite è quello della capacità computativa disponibile sul pc in uso, ed è principalmente usata dagli sviluppatori di robot. Con lo stesso scopo la versione 2.0 consente anche una modalità solo testo: la gara avviene senza interfaccia grafica - non è quindi richiesta nessuna accelerazione grafica - e i risultati vengono mostrati attraverso una command-line interface.

Meteo
Speed Dreams 2.0 ha introdotto la simulazione di un vero sky dome, assieme alla personalizzazzione delle condizioni mete: l'utente può scegliere il tempo del giorno, la copertura di nuvole e l'intensità della pioggia da avere durante la gara. La cupola del cielo può essere impostata come dinamica, cioè simulando la successione di giorno e notte e il movimento dei corpi celesti. La simulazione meteo interessa sia la fisica, incidendo sull'aderenza delle auto, che la grafica, con livelli di nuvole animate, e se del caso con la presenza di particelle di pioggia in 2D.

Fisica
Speed Dreams può girare con diversi physics engines da usare dirante le gare. Scritti in C++, sono dei moduli software eseguiti ad ogni [Frame rate#Computing|frame]] di simulazione per calcolare i parametridelle auto quali position, speed, danni, collisions, suspensions. L'utente può scegliere i motori fisico prima di ogni gara; attualmente sono disponibili: Un motore fisico "SimuV4", che sarà sviluppato dipo la versione 2.0 di Speed Dreams, è stato discusso in diversi messaggi degli sviluppatoriref> and IRC meetings.

Tutti i motori fisici di Speed Dreams physics hanno collisions in tempo reale dele auto basati sulla libreria SOLID. Ogni modello di auto definisce un bounding box secondo il quale il motore fisico rileva le collisioni laterali e inferiori; queste producono danni all'auto, calcolato in una scale che va da 0 a 10000; i danni interessano solo performances delle auto, senza produrre nessun riscontro grafico. Una macchina con più di 10000 punti di danno viene esclusa dalla gara.

Suono
La gestione del suono avviene attraversoOpenAL o, in alternativa, PLIB. I suoni riprodotti includono collisioni e il rumore prodotto dagli pneumatici, in aggiunta ai motori; sono simulati altri effetti complessi come attenuation e Doppler shift. Nel 2011, la compagnia di produzione professionale di suoni ha rivisto i suoni di default di Speed Dreams; le versioni migliorate sono incluse nella versione 2.0.0.



Interfacce di gara
Durante la gara al giocatore viene presentata una postazioni di guida personalizzabile composta da vari grafici in 2D, tempi sul giro e una mini-map dinamica. Ogni strumento è caratterizzato da diverse modalità, tra le quali il giocatore può scegliere mentre guida in modo da cambiare l'aspetto, o nascondere completamente l'interfaccia. E' disponibile anche uno specchietto retrovisore, anche se un po' dispendioso in termini di potenza di calcolo. Una modalità "arcade", eredità di TORCS, è ancora mantenuta alla versione 2.0; stando a quanto riporta l'autore italiano del manuale di TORCS, è più appropriata per novelli giocatori di Speed Dreams. Una nuova aggiunta di Speed Dreams è il cronometro in stile Formulauno con una precisione di millisecondi (dieci volte più preciso di quello di TORCS).

Intelligenza Artificiale
TORCS è nato maggiormente focalizzato sulle gare di IA piuttosto che di giocatori umani. Speed Dreams, secondo la descrizione del progetto, ha spostato la bilancia verso una esperienza di corsa maggiormente orientata all'utente. nondimeno, Nonetheless, diversamente dal destino di altri contenuti ereditati, rivisti ma principalmente mantenuti, nel tardo 2009 tutti i motori dei robot ereditati da TORCS sono stati rimossi e rimpiazzati da altri nuovi e più avanzati.

Descrizione generale
Speed Dreams ha degli avversari controllati dal computer contro i quali gareggiare, comunemente chiamati "robot". Questi non sono altro che moduli di software, scritti in C++, che controllano il comportamento delle auto durante ogni tipo di sessione: pratica, qualificazione o gara. Un modulo può virtualmente gestire più di un singolo pilota robot; questi condividono il codice sorgente ma hanno specifici setup dell'auto, skin diverse, e guidano auto diverse. I robot possono essere programmati cn ogni tipo di function per calcolare le variabili di gara: accelerazione, frenata, sterzata, cambio e frizione. These values are sent to the race engine by an open interface of Speed Dreams. I giocatori umani sono trattati esattamente come ogni altro robot: le variabili sono controllate da input devices definite dall'utente e possono essere influenzate da aiuti di guida automatizzati come ABS, TCS o limitatore di velocità per i pit stop.

Robot disponibili
Speed Dreams 2.0 ha 3 motori di robto disponibili, per un totale di circa 150 piloti che competono in tutte le categorie ufficiali di auto: I robot della serie 1936 GP hanno nomi reali dei piloti di quel periodo; i nomi di molti altri robot sono fittizi, anche se compaiono molti nomi degli sviluppatori e contributori di Speed Dreams, principalmente nella categoria Torcs Racing Board.

Tipiche funzioni dei robot
I robots di Speed Dreams condividono qualche funzione di comportamento in modo da ottenere realismo nella simulazione di guida. Mentre vengono caricati, calcolonao una racing line, che dipende dalla descrizione XML della pista. la quantità di carburante inziale, conformemente a una strategia di carburante e pit-stop strategy, viene anche estimata e richiesta al motore di gara. Durante la gara i robot tentano di seguire la linea di gara; anche se il loro comportamento può essere influenzato dai parametri ricevuti dal motore di gara; questi includono la posizione e la velocità delle altre auto, che viene tenuta in considerazione dagli algorithms di anticollisione e sorpasso. I robot hanno anche la capacità di apprendere: possono migliorare i loro tempi sul giro basandosi sui giri precedentemente percorsi. In tutti i robot ufficiali è anche implementata una funzione per rimettersi in pisto dopo un incidente. I robot di Speed Dreams robots possono gestire un cosidetto parametro "abilità", definito dal giocatore: in questo modo il giocatore può modificare le prestazioni dei robot e quindi i loro tempi sul giro.

Pit stops
Alla versione 2.0, il sistema di simulazione dei pit stop resta invariato rispetto a torcs. Mentre si gareggia suu tracciati equipaggiati con una pit lane, ai piloti viene assegnata un'area di pit stop in base alla griglia di partenza. Visto che molti tracciati non forniscono sufficienti spazi per tutte la auto in gara, i robot supportano la condivisione dei pit stop. Per avviare il pit stop i robot devono guidare vicino alla loro postazione ad una velocità sufficientemente bassa, quindi fare una richiesta di pit stop al motore di gara, che trattiene la macchina fino alla fine del processo di pit. Il robot umano invia automaticamente una richiesta appena le altre sopraccitate condizioni sono soddisfatte; the simulation is then paused, while the player is offered a menu where he can choose the parameters of the stop. I servizi offerti durante i pit stop sono riparazione dei danni, rifornimento di carburante e sconto delle penalità; la durate dei pit stop è definita automaticamente e dipende dalla quantità di danni e di carburante da gestire. Durante i pit stop non viene mostrata alcuna animazione grafica.



Multigiocatore
La caratteristica "schermo diviso" consente di dividere lo schermo - sullo stesso monitor - in fino a 4 regioni che agiscono indipendentemente l'una dall'altra: queste possono mostrare prospettive di diverse telecamere, con diverse impostazioni delle interfacce e che seguono piloti diversi.Durante la fara le regioni possono essere dinamicamente create, cancellate e disposte in molti modi diversi. Dal punto di vista del pilota umano quest consente fino a 4 giocatori di competere simmultaneamente nella stessa gara usando lo stesso PC.

Una modalita multigiocatore on-line è stata sviluppata per la versione 2.0 ma non è stata incluso nel rilascio ufficiale perchè non completamente stabile.

Penalità
Speed Dreams ha ereditato da un sistema di penalità per pilota. Le penalità vengono assegnate da violazioni delle regole della pit-lane: sorpassare il speed limit nella pit lane (90 kph) fa scattare una penalità di drive-through penalty, mentre attraversare il bordo della pit lane produce una penalità di stop-and-go Le penalità devono essere scontate entro cinque giri dalla notifica; i piloti disobbedienti vengono automaticamente esclusi dalla gara.

Telecamere
Parecchie diverse camera sono disponibili, coprendo diverse viste dalla postazione di guidi e all'esterno. La telecamera in modalità "TV director" utilizza diverse telecamere segmento per segmento definite da ogni tracciato, e segue automaticamente gli eventi interessanti di una gara. Ogni telecamera può essere zommata indipendentemente. Nella versione 2.0 non è disponibile alcuna telecamera a movimento libero.

Deformazione del tempo
Speed Dreams ha ereditato da TORCS la possibilità di accelerare e rallentare la simulazione; il rilascio 2.0 del progetto ha esteso questa caratteristica in modo che, mantenendo costante la durata del frame di simulazione, la velocità simulazione renderizzat possa variare da 64 volte più lenta a 16 volte più veloce del default, che incrementa la potenza di 2. To achieve such acceleration, more frames have to be rendered within the same actual time : hence the accordingly higher computing power required by this feature.

Contenuti
Tutto il lavoro artistiche distribuito dalla versione 1.4.0 ha licenza Free Art License.

Cormati dei file
Speed Dreams usa molto i semplici file di testo nei suoi contenuti. Utilizzati per definire impostazione per le auto (circa 200 valori personalizzabili), piste, menu di gioco, opzioni di gioco e motori dei robot, sintassi XML accounts per il 40% del odice di tutto il progetto. Per quanto riguarda i modelli 3D, è stata mantenuto il formato .acc, l'evoluzione di TORCS del formato .ac (sempre testo semplice) format di AC3D consentendo smoothing and shadow mapping sui modellli. Nonostante il nuovo formato dei file abbia introdotto nuove caratteristiche, backward compatibility è stata preservata: Speed Dreams uò caricare auto, piste e robot sviluppati per TORCS. Il contrario è solo parzialmente vero, visto che TORCS non può gestire i parametri sconosciuti da Speed Dreams.

Caratteristiche delle auto
Speed Dreams ah ereditato da TORCS la gestione di qualche caratteristica grafica come ruote 3D personalizzate, lights funzionanti (anteriori, posterioro, freno e retromarcia) brake disks incandescenti; nuove caratteristiche hanno introdotto supporto per pilota animato e steering wheels, inizialmente usate nelle auto di classe 1936 Grand Prix, e environment mapping migliorato per riflessi più realistici. Siccome non c'è supporto per lìombreggiatura dinamica, ogni auto definisce un'immagine ombra che viene proiettata sotto il modello dell'auto. Diversi levels of detail sono supportati per ogni modello di auto in modo da migliorare le prestazioni di simulazione, anche se - per ragioni di dimensione - la release ufficiale ne contiene solo uno. Dalla versione 2.0 l'utente può scegliere tra diverse liveries per ogni auto, che influenzano la pittura esteriore dell'auto, l'aspetto della parte interiore e delle ruote. Circa 250 livree, tra skin del giocatore e dei robot, sono contenute nel rilascio 2.0.0. Un preview statica dell'aspetto della'uto viene mostrata dirante òa seòezione dell'auto: uno speciale tracciato "garage" è stato creato con il solo scopo di scattare le anteprime.

Auto disponibili
Le auto disponibili sono raggruppate in categories, che contengono normalmente da 6 a 8 modelli di performance e dimensioni simili. La versione 2.0 vanta 44 auto ufficiali distribuite in 6 categorie: Ci sono altre 26 auto ancora in via di viluppo nel repository SVN di Speed Dreams, che coprono varie classi di open wheel racing.

Qualche modello disponibile in Speed Dreams, e specialmente i contenuti ereditati da TORCS, sono ispirati al design de auto da gara esistenti; in modo da evitare problemi legali, i nomi dei fabbricanti, i marchi e i modelli sono stati rimpiazzati da altri fittizi prima del rilascio 1.4.0.



Strumenti esterni
The Torcs Car Setup Editor, generally shortened to TCSE, is a cross-platform program written in C++ by Vicente Martí Centelles; it allows to set up all the car's XML parameters from a graphical interface; it can automatically compute many values, draw different charts of the car's performance and display a 3D dynamic preview of the car's appearance.

Track system description
A Speed Dreams track is defined as a list of segments: straights and left/right turns. Every segment is divided into four sections: main track, sides, borders and barriers. These sections are customizable in terms of width, graphics, physics behaviour, etc. Track segments are split into more sub-segments in order to get a smoother result on the graphics and on the physics side through interpolation. As a result of this segment-based structure, tracks are limited by left and right boundaries: the physics engine restricts the area where cars can be driven so that no car can actually cross the boundaries, except while being excluded from the race, when it is no more subject to physics. As of release 2.0.0-rc1, Speed Dreams supports only a fixed width value for the "main track" section; variable width is simulated by properly tweaks to borders and sides, which instead offer customizable width.

Available track categories
Traditionally, TORCS tracks had been divided in 3 categories: road, dirt and oval; the Grand Prix Circuits category was newly introduced in Speed Dreams to gather the available race tracks. Release 2.0 of Speed Dreams offers 44 official tracks spread among 4 categories:



External tools
Text files describing the track's structure and 3D model are often too intricate to be edited as plain text; hence the need of external tools developed to help with track creation. The most popular graphical track editor, originally developed for TORCS in Java by Charalampos Alexandropoulos, features slider widgets to edit most parameters and a real-time 2D preview of the track's wireframe appearance; as a downside, it doesn't support parameters newly introduced in Speed Dreams, such as the ones related to the dynamic sky dome. A new track editor, by Mart Kelder of the Speed Dreams team, is under development inside the SVN repository of the main project. The track's 3D description is a plain text AC/ACC file usually generated by a command-line script named trackgen. This tool supports the use of heightmaps and object maps to enhance the quality of the final result. Official tracks of the Speed Dreams 2.0 release feature baked (static) shadow mapping, achieved using trackgen in conjunction with external 3D computer graphics software. While the .AC format is natively handled by the AC3D software, an ACC importing/exporting script makes Blender a common choice among designers for providing tracks with complex objects. An application for automated track generation, named "Interactive Track Generator for TORCS and Speed Dreams", was developed at the Dipartimento di Elettronica e Informazione (ICT) of the Italian Politecnico di Milano university. The project aims at applying evolutionary computing, through the use of genetic programming, for a procedural generation of TORCS/Speed Dreams tracks. The generator was tuned with the help of human interaction and produces a continuous on-line stream of new track outlines, each with a set of different scenarios available.

Requirements
As of version 2.0, Speed Dreams still relies on OpenGL 1.3 for rendering. Due to the new graphical and physical features, computing power required has risen compared to TORCS. Yet, the use of PLIB, which doesn't need support for OpenGL 2, still lets Speed Dreams run on old - back to 2001 - video cards. In order to increase the performance of the simulation, dual threading was introduced in version 1.4.0: dividing the simulation work between a physics and a graphics thread allows the program to take advantage from multi-core CPUs.

Underlying software
The core architecture, which is still quite the same of TORCS, features a flexible structure that loads as separated modules the components of the simulation, such as the physics, graphics and robot engines. The graphics engine, PLIB's SimpleSceneGraph, offers high-level access to OpenGL functions; PLIB is also a possible choice to deal with sound, the other one - selectable by the user - being OpenAL. Another legacy from TORCS was the need of freealut, which was removed after version 1.4.0. An SDL-port of the code, in order to get rid of the need of freeglut, was active from October 2008 to February 2010, when it was merged with the main project's trunk; however, in some distributions freeglut still figures as a dependency for the Speed Dreams packages. The ENet library was used during the development of network play; while this feature was not released in version 2.0.0, it remained as a dependency in most packages. In the first months since the project's birth, the build system was moved from make to the more advanced CMake.

The project
According to the community leaders, the project was born as a reaction to the slow development pace and the lack of willingness to integrate some new features, like Force Feedback, into TORCS code. At start the team was composed by only two developers, both from France; by the end of 2008 it had been joined by 5 more members, mostly old TORCS contributors who shared the above frustration. Accessions didn't cease during the following years, and release 2.0 was issued by an international development team numbering 12 people from 8 countries and 3 continents.



History
The content of the r1-3-1 branch of the TORCS CVS repository was forked into a new SVN repository on 14 September 2008. At first the name chosen for the project was "Torcs-NG" (Next Generation). After a year of development, in August 2009 the development team decided to sever ties with the parent project: there followed a long discussion about a new name to adopt, in which "Speed Dreams" was selected by means of a developer community vote. The "non-free" content inherited from TORCS was also moved to an unmaintained "legacy" branch and replaced with new cars, tracks and robot engines. The first public release was then issued on March 27, 2010 as "Speed Dreams 1.4.0", preserving the old versioning system of TORCS. However, for some reason, the release wasn't publicly advertised until April 14; five days later, the number of daily downloads reached 4,120. The development of the next version was started immediately after the release, and four months later the first alpha of Speed Dreams 2.0 was issued. According to the release plan, the final release should have been delivered by the end of 2010; however, development progressed more slowly than expected, and only after 18 months, 5 development releases and more than 2,000 code changes a release candidate of version 2.0 was issued (January 15, 2012). The final version was finally released on April 8, 2012, the most prominent improvements being reworked reflections and menus, and the introduction of Career mode, dynamic weather, SimuV2.1 and dual-threading. Again, the official announcement came with a delay of some weeks; download figures started rising only after advertising began (25 April 2012) and reached about 500/day.

Community
Among the declared aims of the project, since its start, was a particular care to the players community, namely taking more into account the feedback and suggestions of the end-users; for this reason, a number of new communication channels were opened. First were the user and developer mailing lists on SourceForge.net: created along with the main project, they remain by far the most used channel, the speed-dreams-devel list having reached a milestone of 10,000 messages on March 16, 2012; there followed public forums on SourceForge.net, which, however, were never widely used; an official Twitter account was created two weeks before the release of version 1.4.0: as of May 2012, it is followed by 147 subscribers and has sent 124 tweets. In the end of 2011, the project created official pages on the popular social networks Facebook and Google+.

Distribution and packaging
Official releases include a source code package and a Windows installer. However, Linux users aren't forced to compile the source code: binary packages are available, either provided within a distribution or through external repositories. The first package made available was an Ubuntu .deb of version 1.4.0, created by PlayDeb.net. As it didn't get updated for development releases of version 2.0, the Speed Dreams team created an official PPA on Launchpad; as of May 2012, Speed Dreams is packaged for the following distributions: A port of version 1.4.0 for the Haiku operating system was reported in August 2010 and was made available on Haikuware.com in April 2011; according to the packager, only minor changes to the code were needed to get Speed Dreams running.

Speed Dreams was made available also on the digital distribution platform Desura in March 2012. This platform was the first to publish the Windows binary packages for version 2.0, just two days after they were officially released. As of 10 May 2012, the project is ranked 276 out of 6,558 projects.

Commercial redistribution
In April 2012 the development team was made aware of a commercial derivative of Speed Dreams. Initially believed to be a clone of TORCS, the product - published by the German company jalada GmbH - had been rebranded as jalada Ultimate Racing and sold for 12.09 € since August 2011. The publisher claimed features such as force feedback support, and a Mac OS X port available at the same price. Although the GNU General Public License allows reselling of free software, this commercial redistribution doesn't comply with the requirement of express attribution to the original authors which is stated by the Free Art License, applied to the whole artwork of Speed Dreams.

Critical reception
Speed Dreams has received a wide variety of reviews, on technology websites, distribution platforms and open source software websites. Immediately after the release of version 1.4.0, Speed Dreams reached the first place in the "les plus populaires" ("the most popular") user ranking on the French free gaming portal JeuxLibres.net; as of April 2012, the project still maintains the second place. Published in the November 7, 2011 issue of the German computer magazine c't, a review of Speed Dreams 2.0-beta1 pointed out the quality of cars' physics and race balancing. In 2011 Speed Dreams was among the 23 candidates for the "Mejor juego libre" ("Best free game") prize by PortalProgramas, achieving the 13th place. As of May 2012, the project's files have been downloaded 595,000 times from the SF.net portal. This figure, though, is disputable because of the January 2011 attacks on SourceForge.net. More relevant are then the average periodic data, reaching about 1600 weekly downloads - or 230 per day - in the first months of 2012. As of May 2012, the project has received an average user rating of 88% out of 95 reviews on SourceForge.net portal. On the Linux gaming portal Penguspy, at the same date, Speed Dreams had received a mark of 9.49/10 out of 65 votes, which earned the project the first place within the "Racing" category, and the 18th place overall (8th considering only the open source games). On Desura, in the same period, the project's score was of 6/10 out of 90 reviews; the discrepancy can be interpreted as a result of the coexistence - on this platform - of both open source and proprietary video games.