El bucle principal del juego maneja tres tareas principales:
- Obtener entrada del usuario
- Actualiza el estado del juego
- Dibujar el juego
Un bucle de juego simple simplemente combina estas tres tareas en un bucle while. Esto tiene algunos resultados no deseados:
- El juego se ejecuta a diferentes velocidades en diferentes computadoras.
- CPU (puede ser innecesariamente) vinculada al 100% de uso.
- "Estados de juego" / menús faltan o se mezclan con el código del juego.
- El ciclo principal del juego es muy largo y difícil de mantener.
- El código es difícil de extender / portar a otras plataformas.
Los bucles avanzados para juegos abordan los problemas enumerados anteriormente. Aquí hay algunos artículos útiles:
Para un excelente ejemplo de bucle de juego, eche un vistazo al juego demo de Allegro skater:
- El código del bucle del juego está en framework.c .
- Explore el código fuente completo aquí .
Los bucles de juego a menudo hacen el mismo tipo de trabajo para la mayoría de los juegos, por lo que he estado pensando en una forma de crear un marco de juego generalizado. Es mejor escribir una implementación de un bucle de juego y compartirla entre juegos. Ahorra trabajo al crear un nuevo juego, y todos los juegos pueden compartir mejoras en el bucle de juego compartido (por ejemplo, agregando un contador FPS o una función de captura de pantalla).