Основний ігровий цикл вирішує три основні завдання:
- Отримати введення користувача
- Оновіть ігровий стан
- Намалюй гру
Простий цикл гри просто з’єднує ці три завдання в один цикл. Це має деякі небажані результати:
- Гра працює з різною швидкістю на різних комп’ютерах.
- Процесор (може бути без потреби) прив'язується до 100% використання.
- "Стани гри" / меню відсутні або змішані з кодом гри.
- Основний цикл гри дуже довгий і важкий в обслуговуванні.
- Код важко поширити / перенести на інші платформи.
Розширені ігрові петлі вирішують проблеми, перелічені вище. Ось кілька корисних статей:
Щоб отримати чудовий приклад циклу ігор, подивіться демонстраційну гру Allegro фігурист:
- Код ігрового циклу знаходиться в Framework.c .
- Перегляд вихідного тексту тут .
Ігрові петлі часто виконують один і той же вид роботи для більшості ігор, тому я продумав спосіб зробити узагальнений ігровий фреймворк. Краще написати одну реалізацію ігрового циклу та поділити його між іграми. Це економить роботу під час створення нової гри, а вдосконаленням циклу спільної гри можна поділитися всіма іграми (наприклад, додавши лічильник FPS або функцію зйомки екрана).