Mientras voy pensando en las cosas que voy a cambiar cuando porte mi motor a C++, se me ocurre que quizás pueda hacer uso de múltiples hilos de ejecución. Ahora mismo, el motor es una capa por encima de un número de módulos (gráficos, sonido, entrada/salida, etc.), así que podría utilizar un hilo para cada uno.

Además, podría establecer que se durmiesen cada cierto tiempo, justo el tiempo que tenga que pasar para que el módulo necesite refrescar los datos. Así reduciría el uso de la CPU (imagino) aunque si el sistema tiene unos framerates bajísimos, podría dar mal resultado.

También está el tema de que depurar hilos es una tarea mucho más costosa que una ejecución secuencial típica, aunque aquí tendría un número reducido de hilos y siempre sería el mismo. Quizás podría separar cada librería en una DLL y cargar así poder depurarla por separado antes de integrarlo todo y hacelo multihilo.

Muchas soluciones, y mi conocimiento en la materia es bastante escaso, así que todo se reducirá a probar. ¿Qué opináis?