Coromon es otro intento de un juego al estilo de Pokémon, y aunque fue muy divertido, el juego tuvo un gran problema frustrante en Steam Deck y el escritorio de Linux con Proton, que ahora se resolvió.
Cuando lo cubrí por primera vez en abril de 2022, comenté que se veía bien y funcionaba lo suficientemente bien hasta que el rendimiento se desplomó a 14 fps y se quedó ahí. Hizo esto como un reloj cada vez después de un tiempo de juego (alrededor de una hora) y fue lo mismo en el escritorio de Linux. El juego fue Steam Deck Verified by Valve en abril de 2022 y ha permanecido confirmado todo este tiempo, que es otro excelente ejemplo de que Deck Verified acaba de ser No tenga cuidado porque este problema sucedió todos.
Afortunadamente, aunque bastante tarde, el desarrollador encontró el problema y lo solucionó en una actualización lanzada en diciembre de 2022. Así que ahora realmente merece una calificación Steam Deck Verified.
Curiosamente, el desarrollador fue a la página Proton GitHub de Valve para explicar cuál es el problema para ayudar a otros:
Desarrollador de Coromon, hemos estado investigando este problema durante un tiempo y finalmente podemos identificar de dónde proviene. Solo publicamos nuestros hallazgos aquí para ayudar a otra persona a resolver el problema subyacente.
La caída de FPS comienza después
BOverlayNeedsPresent()
La API Steam SDK se llama aproximadamente ~ 130,000 veces (~ 36.5 minutos convertidos a segundos * 60FPS).
El complemento Steamworks de nuestro motor llama a esto en cada cuadro para determinar si se debe forzar OpenGL para garantizar que se actualice la superposición. Probamos bajar la tasa de votación aBOverlayNeedsPresent()
a una vez cada 10 cuadros, esto retrasó la caída de FPS a 6 horas (360 minutos) en lugar de 36 minutos. También cambió la caída constante de FPS a una ráfaga de cuadros cada 10 cuadros, así que me pareceBOverlayNeedsPresent()
comienza a tomar mucho tiempo de CPU después de que se llama más de ~ 130,000 veces.Probamos todas las versiones disponibles de Proton en Steam, Proton 4.2-9 y Proton 3.16-9 de alguna manera no tienen este problema técnico.
Pronto lanzaremos una actualización de nuestro juego donde reduciremos aún más la tasa de sondeo para permitir sesiones de al menos 18 horas sin una caída de FPS, pero la mejor solución sería una solución para
BOverlayNeedsPresent()
en Protón.
Entonces, si no haces una carrera por más de 18 horas (¡¿cuánto?!), estás bien ahora.
De hecho, es genial ver a un desarrollador explicar cosas como esta, desearía que hubiera más de ellos. Esto puede ayudar a los desarrolladores de Proton y otros desarrolladores de juegos con problemas futuros.
Como de costumbre, aquí hay un video con jugabilidad fresca y un poco de discusión para aquellos que prefieren videos ahora:
Puedes comprarlo en Humble Store y Steam.