Os explico como está la situación:
He intentado poner los componentes de DirectX que usaba en las versiones antiguas del Delphi y tras perder unas cuantas horas lo dejo por imposible. En los nuevos Delphis hay muchísimos cambios y hay que cambiar una burrada de cosas para hacer que los componentes me funcionen así que no voy a perder más tiempo y tampoco le veo sentido a instalar un delphi antiguo en una máquina virtual para poder compilar la versión 1.12 y luego tener que hacerle todos los cambios de la 1.13.
Sabéis que llevo algún tiempo creando mi propio engine sobre SDL para portar todos mis juegos a él.
Hace un par de meses, cuando ya tenía casi acabado el engine e iba a añadir las funciones avanzadas de gráficos (zoom, rotaciones, transparencias, luces, sombras, colorear sprites en tiempo real, alphablending...) me di cuenta que el SDL por si solo no tiene esas funciones, pero permite tirar de OpenGL así que empecé a cambiar todo el apartado gráfico del engine para que en vez de usar las funciones nativas de SDL hacer llamadas a OpenGL, pero eso ya es otro mundo porque el OpenGL es siempre sobre 3D y no existen sprites si no texturas con 3 cordenadas, cámaras, distancia de plano... cosas que nunca había visto con mis juegos en 2D.
Tras mucho pelearme con OpenGL empecé a cogerle el truco trabajando sobre la perspectiva "orthographic" y conseguí pintar en pantalla los sprites además de poder ampliarlos o reducirlos a una velocidad increible.
Pero me quedé atascado en las transparencias y colores de los sprites que por ahora no he conseguido que me funcione bien, los sprites aveces se cargan con otros colores y sin transparencias y de las luces y sombras mejor ni hablamos.
La verdad es que la forma de trabajar en 2D y 3D no tiene nada que ver. Me estoy volviendo loco con tanto vector, matriz, profundidad, textura, cámara.... y un millón de cosas más que no existían en 2D.
Como tengo prisa en sacar la versión por los problemas que está teniendo he pensado pasar MRO al nuevo engine pero usando solo SDL que ya lo tengo casi acabado, porque el engine usando OpenGL va para largo.
Al usar SDL puro tengo que renunciar a algunas cosas como oscurecer el fondo del circuito cuando llueve, los derrapes en el asfalto y las 360 posiciones del coche al girar, teniendo que volver a las 60 que teníamos en versiones anteriores. Luego cuando acabe el engine sobre OpenGL ya lo volveré a añadir.
Todos esto es sobre SDL 1.2, pero justamente esta semana acaba de salir la versión Relase Candidate de SDL 2.0 que tiene mejor aceleración hardware sin pasar por OpenGL, además de soporte de OpenGL 3.0. En delphi solo tengo las cabeceras de SDL1.2 y una beta de las SDL1.3 pero voy a intentar (sin perder demasiado tiempo) adaptarlas a SDL2.0 para ver si se pueden hacer las rotaciones, zoom, luces y sombras sin tener que usar OpenGL.
Así es como está el tema. No puedo dar una fecha porque ni siquiera el engine sobre SDL puro lo tengo completamente acabado, aunque le falta muy poco. Lo que tampoco se es cuanto va a costar cambiar todas las llamadas que hace MRO al engine unDelphiX (sobre DirectX) por las llamadas a mi engine que aunque he intentado hacerlo lo más compatible al unDelphiX si que he tenido que cambiar algunos parámetros de las funciones o directamente hacer funciones nuevas.
Saludos