Queridos aficionados a las carreras,

2024 está llegando a su fin y nos gustaría reflexionar sobre lo que ha significado para el proyecto Speed Dreams.
Como ya sabréis, 2024 ha sido un año de cambios: la mayoría de los colaboradores activos abandonaron el proyecto cuando su fundador, Xavier Bertaux, anunció su marcha en septiembre de 2023 para empezar a trabajar en su propio fork de Speed Dreams, Cars Sport Racing.
Le deseamos mucho éxito en esta nueva aventura, ¡y esperamos poder beneficiarnos mutuamente de las mejoras y correcciones de errores!

Bajo la nueva dirección anunciada en marzo, hemos cambiado nuestras prioridades:

Garantizar que Speed Dreams siga siendo libre (como en libertad), ¡la infraestructura también!

En primer lugar, hemos realizado una auditoría exhaustiva de nuestros activos existentes para asegurarnos de que están bajo una licencia libre. Como resultado de esta auditoría, algunos activos fueron considerados como no libres, y por lo tanto dejarán de ser distribuidos oficialmente.

Pero eso no significa que se pierdan para siempre. En junio de 2024, implementamos un nuevo gestor de descargas dentro del juego:

The new in-game downloader

No solo permite descargar nuevos assets sin tener que instalarlos manualmente (de forma similar a otros simuladores libres y de código abierto, como FlightGear), sino que también puede ser configurado para cualquier número de repositorios, de forma similar a los gestores de paquetes de Linux.
Por lo tanto, los activos no libres pueden ser alojados alternativamente en repositorios de terceros.

En segundo lugar, la fundación sin ánimo de lucro Libre en Communs se puso en contacto con nosotros para ayudarnos con la infraestructura, y generosamente nos proporcionó un VPS, así como una instancia de Forgejo, todo ello utilizando únicamente software libre y de código abierto. Queremos agradecerles su inestimable ayuda. ❤

El VPS ahora aloja:

  • El servidor web que aloja este sitio web. También hemos migrado el sitio web más antiguo
    de WordPress a Grav.
  • El «servidor maestro» que almacena
    los mejores tiempos de vuelta de jugadores de todo el mundo.
  • El servidor XMPP que alimenta las nuevas salas de MUC:
    • general@chat.speed-dreams.net
    • development@chat.speed-dreams.net
  • La instancia de Matterbridge que conecta las salas XMPP anteriores con nuestras homólogas de Matrix
    Matrix:
    • #speed-dreams-space:tedomum.net

Por otro lado, Speed Dreams ha estado confiando en grupos de herramientas propietarias como MSVC para compilaciones nativas de Windows, mientras que las compilaciones basadas en grupos de herramientas libres y de código abierto como MinGW han estado sin mantenimiento durante más de 10 años.

Para cambiar esta situación, hemos estado trabajando en arreglar nuestro sistema de compilación para que soporte no sólo compilaciones nativas de Windows con versiones modernas de MinGW, ¡sino también compilaciones cruzadas desde sistemas operativos libres como Linux!
Junto con el proyecto Wine, esto ofrece ahora a los desarrolladores una forma de probar las compilaciones de Windows basándose únicamente en software libre y de código abierto.

Y por último, pero no menos importante, estamos migrando el proyecto desde SourceForge
(propietario, incluye anuncios y seguimiento de usuarios) a nuestra forja, lo que también significa migrar de SVN a Git, ¡algo que muchos desarrolladores habían estado pidiendo!

Aumentar la calidad

Mejoras en pilotos y coches

Nuestra colaboradora June Ravenmoon ha estado trabajando duro para que los pilotos de IA como USR sean más competitivos. Además, June ha realizado ajustes en la clase MPA12, así como en coches como:

  • Sprite GTS
  • Cavallo 360R
  • Boxer 96 RSR
  • Cóndor C400R
  • Morley R900

June Ravenmoon también ha compartido varios vídeos de desarrollo, como este:

SPEED DREAMS 2.4.0 WIP - Further Bot Driver Tweaks for Oval Racing
Open in new tab

Nuevos sonidos

Nuestra colaboradora June Ravenmoon también ha proporcionado varios sonidos nuevos bajo licencias libres, extraídos y editados de FreeSound y vídeos de YouTube con licencia libre.

Este es un vídeo con los nuevos sonidos en acción:

  • https://youtu.be/ys9RqZ-SaYI

Reducir el tamaño del repositorio

Antes de la migración a Git, sin embargo, había que resolver muchas cosas
de antemano: el actual trunk es un enorme mono-repo de unos 14 GiB que contiene 90 pistas, 512 drivers y 124 modelos de coches en 30 categorías.

Descargar un repositorio tan grande desde SVN no sólo consume muchos recursos, sino que también es propenso a las interrupciones de red de SourceForge y, lo que es más importante, supone una barrera de entrada muy alta para los posibles nuevos desarrolladores.
Por lo tanto, era obligatorio reducir el tamaño del repositorio de varias maneras antes de migrar a Git:

Implementar pilotos generados dinámicamente

Debido a su herencia del proyecto TORCS, hasta ahora Speed Dreams ha puesto mucho esfuerzo en crear a mano pilotos basados en IA y darles «personalidades» únicas.
Esto exige muchos recursos a los desarrolladores debido al gran número de categorías de coches, lo que lleva a una explosión combinatoria que al mismo tiempo deja muchas categorías de coches sin ningún piloto controlado por ordenador.

Para reducir drásticamente el esfuerzo de mantenimiento, ahora permitimos a los usuarios generar sus propios pilotos controlados por ordenador en el juego, para cualquier categoría de coche, modelo o «robot» (jerga de Speed Dreams/TORCS para la implementación del piloto de IA).

Driver generation in action

Gracias a esta función, ahora es posible distribuir Speed Dreams sin pilotos de IA creados a mano, lo que reduce significativamente el tamaño del repositorio.
Por supuesto, los pilotos «únicos» siguen siendo posibles, y ahora se pueden descargar desde el nuevo gestor de descargas del juego.

Simplificación de la gestión de pilotos

Cuando Speed Dreams heredó su diseño de TORCS, aprovechó su estructura de pilotos definiendo conjuntos de pilotos basados en categorías. Por ejemplo, habría un conjunto de pilotos llamado usr_ls1, donde usr es la implementación del robot y ls1 el identificador de la categoría «Long Day Series GT1».

Con el fin de evitar algunas limitaciones de diseño en lo que respecta a cómo Speed Dreams trataba las bibliotecas compartidas, hasta ahora Speed Dreams había definido «clones de robot», lo que significaba que las bibliotecas compartidas (por ejemplo: shadow.so o shadow.dll) se copiaban y cargaban múltiples veces, una por categoría.
Como resultado, esto provocaba que el juego cargara hasta 58 bibliotecas compartidas, 51 de ellas duplicadas. Aparte de ser muy ineficiente por varias razones, también dejaba claro que había que rehacer el diseño existente.

Por lo tanto, se ha invertido mucho trabajo en arreglar esto, para que no se definan bibliotecas compartidas duplicadas, lo que también ha desvelado varios otros problemas de diseño y limitaciones que también se han arreglado. Por otro lado, el directorio data/drivers/ se ha simplificado enormemente de forma similar, de modo que los parámetros de los pilotos están ahora centralizados en un único directorio (por ejemplo: shadow/, simplix/) en lugar de múltiples directorios por categoría (por ejemplo: shadow_ls1/, shadow_sc/, simplix_ls2/, simplix_ref/).
Así, de forma similar, el número de directorios en data/drivers/ se ha reducido de 52 a 7.

Acerca del 2025

Futura hoja de ruta

Una vez cumplidos nuestras metas actuales, estamos considerando los siguientes para el próximo año:

  • Reducir el tiempo de renderizado, ya que ahora mismo provoca un cuello de botella en la CPU.
  • Mejorar el soporte para Linux ARM64 (por ejemplo: Raspberry Pi).
  • Eliminar el soporte para el anticuado motor gráfico ssg de PLib, en favor de OpenSceneGraph.
  • Añadir soporte para VulkanSceneGraph, manteniendo el soporte para OpenSceneGraph por compatibilidad con hardware antiguo.
  • Adaptación a Android.

Somos conscientes de que todos estos son grandes retos, por lo que esperamos que la migración final a Git y la reducción de la barrera de entrada para los nuevos desarrolladores nos ayude a conseguirlos.

FOSDEM 2025

Uno de nuestros desarrolladores, Xavier Del Campo, asistirá al FOSDEM 2025 para representar a Speed Dreams este año.
Desafortunadamente, no habrá stand de Speed Dreams debido a las limitaciones de espacio en el evento, pero podría haber alguna oportunidad para una charla rápida, ¡así que los asistentes por favor vengan y siéntanse libres de charlar y hackear!

Conclusión

Creemos que 2024 ha sido un año realmente emocionante para nuestra comunidad, ¡y esperamos con impaciencia lo que nos deparará 2025! Queremos dar las gracias a todos los que habéis participado en el proyecto Speed Dreams, ya sea jugando, probando, contribuyendo o simplemente recomendándolo a vuestros amigos y familiares.
No sería posible sin vuestro cariño y apoyo.

¡Nuestros mejores deseos y feliz año nuevo 2025! 🎉

Entrada Anterior Siguiente Entrada