XEPMETKOB писал(а): ↑06 июн 2020, 17:39
Таково наследие Kuju и игрового движка Rail Simulator.
Да это не наследие ни Кужу, ни движка РВ. А наследие кривожопых кодеров, которые пишут функции не на основе тиков, а напрямую. Я, скорее всего, криво выразился, поясню:
Функция Update отрабатывает каждый кадр. И если любые вычисления пишут как есть - они зависят от количества кадров. Т.е. если написать n=n+1, то этот счётчик за секунду при фпс 30 насчитает 30, а при фпс 180 - насчитает 180.
Для этого используют тик: это переменная, которая равна числу, получаемому в результате деления единицы на количество кадров. Т.е. тик=1/fps. При данном случае, при любом количестве кадров, за 1 секунду получится единица. По сути формула выглядит так: 1/fps*fps=1. Потому что если 1 разделить на 30, и сложить 30 раз - получится 1. Если 1 разделить на 60, и сложить 60 раз, получится 1.
Поэтому для любых переменных, зависящих от времени (как и упомянутое выше количество пара), используется формула n=n+tic. И в итоге она вне зависимости от количества кадров, считает нормально по секундам. Это базовая формула. Для более сложных вычислений используется тоже тик, просто в составе более сложных формул.
Оптимизация консолей, наполовину зависит именно от этого. Т.к. там последние годы были игры с 30 фпс, то кучу вычислений напрямую привязывали к фпс, не используя никаких тиков, что очень сильно облегчает вычислительную нагрузку на процессор.
Кто следит за игровой индустрией, знает все громкие новости, что очередной порт консольной игры на ПК сломал анимации, наступление голода, и прочие параметры.
Да и далеко ходить не надо, даже РДР2, при выпуске уже на консолях с "4к 60 фпс" (пс4про и хбох1х), полгода назад при порте на ПК обосралась, когда уровень голода расходовался в 2 раза быстрее на ПК в 60 фпс. Я сам еще до того патча играл - надо было просто жрать бесконечно, чтобы поддерживать физическую форму. После патча, где это поправили, я по привычке буквально неделю игровую жрал, как и раньше - разжирел до максимума, потом еле сбросил ваще)))