Me lo imaginaba. Le estoy dando vueltas al asunto, así que voy a pensar en voz alta para aclararme.
En principio, el juego funcionará a 320x240 en todos los dispositivos, salvo que sean 16:9, que lo harán a 400x240. El problema son los dispositivos con pantallas más grandes, que de momento sólo son PCs, los cuales no tienen problemas para mover el juego como unas 1000 veces a la vez. La cosa es ¿existe alguna plataforma con mayor resolución que 320x240 con una CPU menor a 500MHz y sin tarjeta gráfica?
Sí, con PiXTudio la gráfica me quitaría el tiempo extra del scale_resolution, pero aun me queda la incógnita de si funciona en Wiz y GP2X, si usa su aceleración HW (Wiz la tiene) y si el código es 100% portable de BennuGD a PiXtudio (dado que aun está en pañales). Podría llevar las dos versiones adelante, aunque requeriría más trabajo ^^U
Y ya ni siquiera estoy seguro de si quiero usar set de tiles de 16x16 y 32x32, sería trabajo extra para los que quieran crear gráficos propios para usar con el "juego", y habría que cambiar la generación de archivos de preview (uno de ellos, guardado en uno de los ficheros de datos), crear ventanas el doble de grandes...
Respecto a lo de los fabricantes de pantallas, yo no lo veo tan problemático: el 4K es bastante reciente, y muy pocas máquinas soportan aun esa resolución (las consolas apenas pueden llegar al fullHD con un framerate >=30fps). Incluso en los últimos años hemos dado dos pasos atrás: cuando la gente empezó a comprar portátiles en lugar de equipos de sobremesa, y cuando la gente ha empezado a comprar Android y ha vuelto a dispositivos de 800x480 (incluso Apple tuvo que bajar la resolución de uno de sus iPhone porque la GPU no tenía potencia para pintar toda la pantalla).
Siempre se puede sustituir INT scale_resolution por STRING scale_resolution, que aparte del formato xxxxyyyy acepte los valores VGA, QVGA, HD, FULL_HD, _4K... o que siga admitiendo ints, pero que aquellos valores inferiores a 10000 los tome como constantes (1 = VGA, 2 = QVGA, 3 = 800x600, 4 = 4K, 5 = 8K...).
O yo que sé, que sea inteligente y en lugar de dividir y hacer el módulo por 1000, que calcule cuántas cifras tiene el entero, coja la primera mitad para el ancho y la segunda para el alto, y en caso de que sea impar... ¿que compruebe el aspect_ratio?
Necesito dormir un poco... o programar un buen rato ^^U