Підхід: Більш висока швидкість моделювання
Терміни для вашого користувальницького інтерфейсу слід від’єднати від фактичного циклу гри, як і вашого рендерінгу. Скажімо, наприклад, що ваш світ працює на 4х швидкості. Скажімо, що при вашій базовій (1х) швидкості ваша гра працює 30 оновлень в секунду.
Потім у режимі швидкого перемотування у вас з’явиться щось на кшталт наступного:
- Світова логіка виконує 4 оновлення для кожного оновлення інтерфейсу користувача та візуалізації. Це означає, що йому потрібно запустити 120 оновлень в секунду. Таким чином, ваша світова модель (дані) оновлюється з такою швидкістю.
- Логіка рендерінга та інтерфейсу користувача продовжує опитувати або робити що-небудь із 30 оновленнями в секунду.
Іншими словами, гра в цілому не працює швидше. Симуляція частина.
З цього можна вивести дві речі:
Вам потрібно тримати свою логіку гри досить простою, щоб ви могли її легко запустити в чотири рази швидше на своїй цільовій платформі, АБО вам потрібно швидше впровадити методи для екстраполяції різних аспектів ігрового процесу - проте це може призвести до моделі, яка є відрізняється від того, що було б, якби ви просто використовували більш швидкий темп моделювання. Таким чином, компроміс буде обробкою витрат на точність. Дивіться підхід 2 нижче.
Саме розділення проблем дозволяє легко пришвидшити своє моделювання у світі, і це модель, перегляд та контролер ( MVC ). Якщо ваші світові дані (M), логіка візуалізації (V) та логіка гри (C) змішані, ви дійсно не зможете цього зробити, принаймні, не без масивної мігрені.
Підхід: Екстраполяція на основі часових дельт
Як було сказано вище, вам потрібно буде обчислити рух, виходячи з того, як далеко щось би проїхало за певний час. Це передбачає, що фізика ігор по своїй суті є більш реалістичною в їх моделюванні, але це може бути не так. Це досить велика тема і значно складніша. Вам потрібно буде задати більше питань, якщо ви хочете знати. По суті, ви будете робити певні обчислення, щоб все виправити. Вам потрібно буде розібратися з взаємопроникненням у зіткненнях та низкою інших питань, я не заходжу тут.
Щоб зробити висновок
Це дає вам загальний контур. Вибір мови - ваш власний, імовірно, ви або знаєте, як це зробити в Єдності, або не знаєте. Час на будь-якій мові вимагає, щоб ви детально зрозуміли внески та виходи, я б запропонував почати зі статей Gaffer і перевірити документи Unity API.