Найкраща відповідь: Це залежить .
Вам не потрібно обмежувати жодного
Оновлення : Якщо ваші оновлення не прив’язані до верхньої межі, то логіка гри повинна залежати від часу дельти , щоб уникнути запуску гри швидше чи повільніше, залежно від машини, де вона працює. Це дуже поширений підхід, який використовується багатьма іграми, але він не єдиний.
Візуалізація : Якщо візуалізація не прив’язана до верхньої межі, рамбуфер може бути представлений у неповному або помилковому стані, викликаючи розрив артефактів . Ось чому багато ігор використовують вертикальну синхронізацію (v-sync)
Ви можете обмежити обидва
Оновлення : деякі ігри використовують фіксований графік часу для деяких або всіх його ігрових систем. Цей підхід працює так, як ви описали. Кількість оновлень за секунду обмежена верхньою межею, щоб забезпечити те, що речі не рухаються надто швидко на верхній верстаті. Це знімає потребу в дельта-хронології. Деякі програми краще з фіксованими часовими кроками, деякі з дельта-часом. Вибір підходу повністю залежатиме від того, що саме ви намагаєтеся досягти. В онлайн-книзі GameProgrammingPatterns є розділ, присвячений ігровим циклам, який стосується обох архітектур.
Візуалізація : кадрів за секунду слід встановити на верхню межу, щоб уникнути вищезгаданої проблеми зі сльозами, однак ваша програма не повинна намагатися робити це вручну з деяким блокуванням процесора. Натомість увімкніть v-sync та дозвольте нижньому апаратному пристрою синхронізуватися зі швидкістю оновлення монітора. Роблячи це, ваша гра буде вперед сумісною з майбутніми моніторами, які можуть працювати на набагато більшій частоті, ніж звичайні 60 ГГц. Варто також зазначити, що багато геймерів, зокрема ті, хто займається тестуванням, все ж віддають перевагу працювати без v-синхронізації, щоб забезпечити максимально можливу частоту кадрів. Тому доцільно дозволити вмикати або вимикати функцію під час виконання.
Що ви не повинні обмежувати
Якщо ваша гра використовує підхід на основі опитування до введення користувачем, наприклад: викликає getInput()
різновиди для оновлення станів контролера під час кроку оновлення, тоді це краще, якщо не обмежуватись. Або якщо обмежений, то встановіть дуже високу верхню межу. Чим частіше ви запитуєте користувальницьку інформацію та дієте на неї, тим більш чуйною та плавною буде гра «відчувати». Так звані ігри з частотою 60 Гц, про які ми чуємо в наш час, не оновлюють AI і всі світові стани з такою швидкістю, деякі навіть не показують це швидко, але запитують контролер на введення щонайменше 60 разів на секунду і відповідно оновлюють аватар гравця. Зрозуміло, що це дійсно актуально лише для ігор, що швидко розвиваються.