Dear racing fans,
2024 is coming to an end and we would like to reflect on what it meant to the Speed Dreams project.
As you might already know, 2024 has been a year of changes: most active contributors left the project when its founder, Xavier Bertaux, announced his departure on September 2023 to start working on his own Speed Dreams fork, namely Cars Sport Racing.
We wish him lots of success with this new adventure, and we hope we can mutually benefit from improvements and bugfixes!
Under the new leadership announced on March, we have shifted our priorities:
First, we did an extensive audit of our existing assets to ensure they are under a free license. As a result of this audit, some assets were deemed as non-free, and therefore will be no longer distributed officially.
But that does not mean they will be lost forever! On June 2024, we implemented a new in-game download manager:
Not only it allows to download new assets without having to install them manually (similarly to other free and open source simulators, like FlightGear), but also it can be configured for any number of repositories, similarly to Linux package managers.
Therefore, non-free assets can alternatively be hosted by third party repositories.
Secondly, the Libre en Communs non-profit foundation approached us to help with the infrastructure, and generously provided us a VPS, as well as a Forgejo instance, all using free and open source software only. We would like to thank them for their invaluable help! ❤
The VPS now hosts:
general@chat.speed-dreams.net
development@chat.speed-dreams.net
#speed-dreams-space:tedomum.net
On the other hand, Speed Dreams had been relying on proprietary toolchains like MSVC for native Windows builds, whereas builds relying on free and open source toolchains like MinGW had been unmaintained for over 10 years.
In order to change this situation, we have been working on fixing our build system so as to support not only native Windows builds with modern versions of MinGW, but also cross-building from free operating systems like Linux!
Together with the Wine project, this gives now developers a way to test Windows builds relying only on free and open source software.
And last, but not least, we are migrating the project from SourceForge
(proprietary, includes ads and user tracking) to our forge, which also means migrating from SVN to Git, something many developers had been asking for!
Our contributor June Ravenmoon has been working hard on making AI drivers like USR more competitive. Also, June made adjustments to the MPA12 class, as well as cars such as:
June Ravenmoon has also shared several development videos, like this:
Our contributor June Ravenmoon has also provided several new sounds under free licenses, extracted and edited from FreeSound and freely-licensed YouTube videos.
This is a video with the new sounds in action:
Before the migration to Git, however, many things needed to be solved
beforehand: the current trunk
is a huge mono-repo around 14 GiB containing 90 tracks, 512 drivers and 124 car models in 30 categories.
Downloading such a large repository from SVN is not only resource-consuming, but is also prone to network interruptions from SourceForge and, more importantly, sets a high barrier entry for potential new developers.
Therefore, it was mandatory to reduce the repository size in several ways before migrating to Git:
Due to its heritage from the TORCS project, so far Speed Dreams has put a lot of effort into hand-crafting AI-driven drivers and giving them unique "personalities".
This is very resource-demanding for developers due to the large number of car categories, leading to a combinatorial explosion that at the same time leaves many car categories without any computer-controlled drivers.
In order to drastically reduce the maintenance effort, we now allow users to generate their own computer-controller drivers in-game, for any car category, model or "robot" (Speed Dreams/TORCS jargon for the AI driver implementation).
Thanks to this feature, it is now possible to distribute Speed Dreams without any hand-crafted AI drivers, reducing the repository size significantly.
Of course, "unique" drivers are still possible, and can be now downloaded from the new in-game download manager.
When Speed Dreams inherited its design from TORCS, it leveraged on its driver structure by defining driver sets based on categories. For example, there would be a driver set called usr_ls1
, where usr
is the robot implementation and ls1
the identifier for the "Long Day Series GT1" category.
In order to work around some design limitations in regards to how Speed Dreams dealt with shared libraries, so far Speed Dreams had defined "robot clones", which meant that shared libraries (e.g.: shadow.so
or shadow.dll
) were copied and loaded multiple times, one per category.
As a result, this caused the game to load up to 58 shared libraries, 51 of them being duplicates. Apart from being very inefficient for several reasons, it also made clear that the existing design had to be reworked.
Therefore, a lot of work has been put into fixing this, so that no duplicate shared libraries are defined, which also unveiled several other design issues and limitations that have been also fixed. On the other hand, the data/drivers/
directory has been greatly simplified in a similar way, so that driver parameters are now centralised into a single directory (e.g.: shadow/
, simplix/
) instead of multiple directories per category (e.g.: shadow_ls1/
, shadow_sc/
, simplix_ls2/
, simplix_ref/
).
So, similarly, the number of directories in data/drivers/
has been reduced from 52 to 7.
Once our current milestones are met, we are considering the following ones for the next year:
ssg
graphics engine, in favour of OpenSceneGraph.We ackowledge that these are all big challenges, so we hope that migrating finally to Git and reducing the entry barrier for new developers might help us into getting them done!
One of our developers, Xavier Del Campo, will be attending FOSDEM 2025 to represent Speed Dreams this year!
Unfortunately, there will be no Speed Dreams stand due to space limitations in the event, but there might be some opportunity for a lightinkg talk, so attenders please come by and feel free to chat and hack!
We think that 2024 has been a truly exciting year for our community, and we are eagerly waiting for what 2025 will mean for us! We want to thank everyone who participated in the Speed Dreams project, be it playing, testing, contributing or just recommending it to your friends and family.
It would not be possible without your love and support.
Best wishes and Happy New Year 2025! 🎉