El problema de cambiar el tamaño de los coches es que perderíamos todos los que tenemos, y además si cambiamos el tamaño de los coches también habría que cambiar el tamaño de los circuitos y la física.
Estuve dudando entre dejar como predeterminada la resolución de 800x480 (la que hay) o bien la de 1024x600 donde el OSD se ajustaba mejor, pero hay muchísimos más teléfonos y tablets con la resolución de 800x480 y si pongo al juego una resolución superior no se podrían leer bien las letras y se vería mal. El juego va a tener 2 resoluciones, la de 800x480 que viene por defecto o bien la que está marcada como "resolución extendida" en la pantalla de opciones, que ahora está fija 1366x768 (porque esa es la resolución de los menús) pero cuando tenga la versión definitiva será la resolución nativa de tu dispositivo (sea PC, Mac, teléfono o tablet).
Voy a explicar un poco el problema de esta versión con los menús, el teclado, la resolución y las pantallas negras. El juego ahora podríamos decir que está compuesto por dos aplicaciones incrustadas, una que es la que muestra la pantalla de juego (cuando estamos en pista) que es una aplicación de consola independiente del sistema operativo y la máquina y que se ejecuta dentro de un marco de la aplicación principal que son los menús del juego que están hechos con el API de windows (botones, desplegables, barras de desplazamiento...) y que son del antiguo MRO. La parte que corresponde con el circuito está incrustada dentro de una ventana (o marco) de los menús y cuando pulsamos los cursores o la tecla TAB esa ventana pierde el foco y le pasa el control a la aplicación de los menús (dejando de funcionar el teclado aunque en pantalla sigamos viendo el circuito) y por más que lo he intentado no consigo solucionarlo de momento. Además del problema de perder el foco (y por lo tanto la respuesta del teclado y ratón) es que para controlar el teclado, cada tecla tiene un código, pero resulta que el código que devuelve el API de Windows para cada tecla no es el mismo que el de SDL2 con el que está programado el juego (dentro del circuito) por lo que he tenido que hacer una función de conversión de un tipo de código al otro, ya que la pantalla del menú de jugadores (donde asignamos las teclas) me devuelve los código de teclas del API de Windows, pero luego a la hora de jugar usamos los código de SDL2. Pues en la conversión hay teclas que no se pueden asignar y otras, por ejemplo el SHIFT izquierdo y derecho que en SDL2 tienen códigos distintos pero en Windows tienen el mismo, por lo que no puedo diferenciarlas. Para solucionar esto lo que tengo que hacer es arrancar los menús del API de windows y dejar solo la aplicación de consola creándole otros menús desde 0 que funcionesn en SDL2 (todo en modo gráfico, sin usar componentes de ningún API). Esto es una obra más faraónica de la que ha sido hacer el motor de los OSD (que empecé antes de verano y lo he acabado esta semana), pero por surte ya lo tengo bastante avanzado. En el momento que ponga los menús con SDL2 y por lo tanto pueda arrancar los del API de windows se solucionarán los problemas de las teclas (irán todas y no perderemos el control del teclado), el de la resolución extendida (que será la resolución nativa de tu dispositivo), el que al pasar de los menús al circuito y viceversa se ponga todo negro quedándose muchas veces en ese estado (que se puede recuperar haciendo doble clic en la pequeña barra de ventana que aparece abajo a la izquierda, que es la aplicación de consola con el juego que se ha quedado minimizado dentro de la aplicación de los menús) y lo más importante podré compilar el juego en OSX (Mac), IOS (IPhone e IPad) y Android.
He publicado ya esta versión (muy BETA) para que la probéis a fondo con todo tipo de ordenadores y si veo que los problemas expuestos arriba "se pueden soportar" más o menos bien por todo el mundo (y tipo de hardware) entonces ahora le dedicaría mucho tiempo a los MODS (que de momento solo les he dedicado un día añadiendo únicamente el uso de DRS y KERS), física de los coches, records y ranks... y dejaría los menús que me van a llevar muchísimo trabajo para más adelante (ya que la versión de Windows sería más o menos jugable por todo el mundo), pero si veo que en la mayoría de ordenares hay muchos problemas por culpa de los menús hechos con el API de Windows y el juego en SDL2 lo que haría es dedicar ahora varios meses a hacer los menús y una vez hechos ya me pondría con los MODS, la física de los coches de 2014, los ranks, campeonatos con bots..... Por lo que he leído hasta ahora parece que la versión va bastante bien.
A ver si acaba de comentar más gente y veo que más o menos todos podéis jugar y me pongo a tope con los MODS de verdad que además del KERS y DRS cambiará toda la física de los coches (o motos), aunque de momento todos los coches de un mismo MOD compartirán la misma física (excepto en los bots), los OSD, las reglas, la opciones de campeonatos contra bots (por ejemplo los puntos obtenidos y cuantas carreras cuentan para el mundial y los distintos circuitos de ese campeonato).
Ahora paso a comentar los problemas que me habéis reportado:
El tema de las luces por la noche tiene un problema y es que está hecho con un efecto hardware que tienen las tarjetas gráficas que suma los colores claros y no le puedo poner condiciones de que por ejemplo solo llegue a una tonalidad máxima. O lo activo o no lo activo, pero no se puede tocar nada. Una solución sería que programara yo por sofware un efecto parecido con condiciones para que no se hiciera blanco del todo, pero esto sería muy lento y caerían los FPS en picado. La solución que he pensando de momento es que cuando detecte que varias luces se van a superponer (calculando la distancia entre los coches) dejar encendida solo las luces de tu coches (o los varios coches locales no bots) y apagar las luces de los bots y coches remotos y en el momento que se alejen lo suficiente para que no se superpongan demasiado con nuestra luz volver a encenderlas. No es una solución elegante, pero de momento creo que servirá. Además de las luces en los coches (que se configurará en los MODS para que por ejemplo los F1 no las tengan) también voy a poner focos en el editor de circuitos que solo se encenderían por la noche (el mismo horario en el que se encienden las luces de los coches) para así poder jugar por la noche con los F1 aunque estos no lleven luces.
@Kamikaze21 si puedes ponme una captura con las franjas de gráficos mezclados que no me suena de nada ese error. El tema del teclado, como ya he dicho es por tener 2 aplicaciones en una. Cuando tengas los menús en SDL2 quedará todo solucionado. Lo de hacer que cada coche (dentro de un mismo MOD) tengan físicas distintas por ahora no lo voy a hacer. Quizás en un futuro si hago un modo historia para que según vayas ganando te contrate una mejor escudería para la siguiente temporada, si que cambie la potencia de cada coche como pasa ahora en los BOTS, pero sería solo eso, diferente potencia, el resto de la física sería el mismo para todos los coches. Lo de cambiar el tamaño de los coches por ahora no lo contemplo porque implica muchas más cosas como cambiar el tamaño de los circuitos y la física.
@Frans99 dame más información sobre el problema, si es con 32bits o 64bits, que tipo de VGA tienes y cópiame el contenido del fichero LOG que ha generado el juego en la carpeta /MiniRacingOnline/mro.log
@Palote por supuesto en el MOD de 2014 habrá ERS en vez de KERS y será mucho más potente y durante más tiempo. De hecho el ERS va a ser muy distinto al KERS. Ahora con el KERS lo que hacemos es que mientras pulsamos la tecla nos va dando la potencia y al soltar la tecla deja de actuar. Con el ERS el botón será como un interruptor y al pulsarlo el ERS se activará de forma continua hasta que volvamos a pulsar el botón para desactivarlo. Otra diferencia con el KERS es que este no nos daba la potencia recogida hasta pasar por meta, pero con el ERS según vayamos frenando se irá cargando. La mejor forma de exprimirlo será encontrar el valor correcto de potencia/tiempo ERS (configurable como un setup más) en cada circuito para que podamos completar una vuelta sin haber perdido demasiadas reservas de energía (que lo que recuperamos en una vuelta sea casi lo mismo que gastamos) de forma que lo podamos llevar siempre activado o en el peor de los casos que podemos hacer 4 o 5 vueltas sin tener que desactivarlo, para luego dejarlo recargarse durante una vuelta y volver a activarlo para que dure 4 o 5 vueltas más. Por ahora no voy a poner nada sobre el límite de consumo. Con lo que tenemos ahora de poder limitar los litros de gasolina y no permitir repostar creo que es suficiente.
La física de esta versión no ha cambiado respecto a las últimas versiones y si parece que entra mejor en las curvas debe ser por el cambio de los FPS que antes podías elegir 66fps o 100fps y ahora son 66fps o 200fps. Si de 66 a 100 ya se notaba un poco en la física supongo que de 66 a 200 se notará más.
Si el juego no os llega a 200 fps es mejor que activéis la opción de limitar a 66fps para ganar estabilidad y fluidez. También podéis desactivar la opción de "ahora de energía" que viene por defecto, con lo que ganaréis algunos fps a costa de exprimir (y calentar) más la CPU.
@mazman el tamaño del OSD para la resolución de 800x480 si que es un poco grande, pero como los gráficos ya los teníamos hechos no he tocado nada. El OSD de 2014 será un poco más pequeño. El minimapa lo genera una función que hice hace años y el tamaño ha de ser el que hay o la mitad y me parece que la mitad es demasiado pequeño. De todas formas lo probaré. Lo que si que he hecho es hacerlo con transparencias para que no afecte tanto la visión. La velocidad a la que cambian las horas es como dices, la barra de abajo es un divisor. Si lo dejas en 1/1 un minuto del juego corresponde con 1 minuto real, mientras que si lo pones en 1/128, un minuto en el juego es 1/128 minutos reales (0,46 segundos). Dentro de los MODS una opción que pondré es la de carreras por tiempo límite en vez de por número de vueltas.
@ramonxd los MODS si que llevarán físicas distintas para cada temporada. Revisaré ese coche que se queda en la esquina. Ya me había dado cuenta que aveces se queda una bandera amarilla en la posición 0,0 pero no me había pasado lo de las luces. He probado a entrar en partidas online (siempre sobre mi servidor) y no he tenido problemas con las contraseñas. ¿ Te pasa siempre ?
@MrByte me había fijado que las luces aveces parpadeaban, pero no había caído que era por las zonas de detección de DRS, gracias por avisar. Hay un fallo al arrancar el juego que si haces clic demasiado pronto se bloquea todo. Esto también quedará solucionado cuando cree los nuevos menús sobre SDL2. Yo casi todas las pruebas las hago con la versión de 64bits y no he visto que falle más que la de 32bits. Si que hay algunos fallos, pero pasan tanto en 32 bits como en 64 bits, o eso me ha parecido a mi. La meteo no la he tocado, sigue teniendo la opción de variable, tendencia a sol o tendencia a lluvia. Se cambia pinchando en el icono de la tendencia. Lo de los pantallazos negros es el problema que he explicado al principio. Si alguna vez se queda todo negro, verás que abajo a la izquierda hay un trozo de marco de ventana. Mueve el ratón hasta llegar a ella (el ratón solo se ve en ese trozo, en el resto de pantalla negra está invisible) y haz doble clic para volver a maximizar la aplicación de consola dentro de la ventana de los menús. Cuando dices que los MODS te han decepcionado porque solo tienen parte visual supongo que será porque te has parado a mirar los ficheros de los MODS y leer las instrucciones. Como he comentado solo he dedicado un día a la física/reglas de los MODS y no hay nada hecho, solo lo visual. Ahora tengo que poner toda la física y reglas, pero no he pensado en los MODS para que cada uno pueda crear los suyos (como ya intentamos hacer en una Campus Party) porque eso supone muchísimo más trabajo y luego la gente tampoco se para a crearlos. Solo yo podré crear los MODS y los parámetros que ponga dentro de los ficheros no afectarán directamente a la física (que estará todo programado dentro del EXE) si no que serán valores genéricos para que el EXE use una de las físicas que tiene programadas. Además cada MOD tendrá un CRC y si se toca el fichero el juego dirá que se ha manipulado y no dejará usar ese MOD, para asegurarnos que por ejemplo nadie pueda subir tiempos hecho con DRS y KERS en un MOD que no permita usarlos. Si que necesitaré ayuda en los OSD de cada MOD y en sugerencias/propuestas de nuevos MODS con sus características. De momento tampoco se podrá jugar online con MODS distintos. De hecho si estando en una partida el servidor cambia a un MOD que no tienes te desconectarás automáticamente de la partida (esto aun lo tengo que programar) porque el online podrá variar según el MOD. Las carreras por tiempo cuenta con ellas, pero lo de los MODS distintos en una partida no se podrá hacer.
@werto_87 lo de hacer una aplicación externa para hacer los MODS ya lo empezamos en una campus party pero lo abandonamos porque es muchísimo más trabajo (toda la física ha de estar en ficheros externos y no en el EXE) y además tengo la experiencia de haber trabajado muchísimo para hacer los SKINS personalizables y luego nadie los ha usado. En principio no tendré ningún problema en crear los MODS que me pidáis siempre que tengan sentido y se puedan crear (por ejemplo el poder poner dos físicas distintas según los coches dentro de un mismo MOD por ahora no se podrá hacer)
Bueno, a ver si más gente comenta que el juego le va bien y me pongo con los MODS a partir del martes. Todos los problemas o fallos que encontréis me los decís y si son problemas gráficos adjuntáis una captura de pantalla. Yo por ahora tengo una cara de un folio llena de cosas a corregir, mejorar o añadir antes de subir la próxima versión BETA.
Menudo tostón os he soltado, a ver si alguien lee hasta aquí.
Saludos
