Зависимость физики в HL от FPS
Физика в движке ХЛ весьма зависит от используемого FPS. Часть зависимостей исправлены в Steam версии.
Содержание |
Наиболее заметные проявления
- При FPS до 90-100 при падении на наклонную поверхность вы получите горизонтальное ускорение.
При FPS выше 100 не получите. - При FPS больше ~80 начинает заметно варьироваться скорость движения (и горизонтальная, и вертикальная).
Зависимость скорости от FPS пилообразная.
Максимумы скорости получаются при FPS полученном делением 1000 на целое число от 1 и больше.
Минимумы скорости получаются прибавлением единицы к максимумам скорости (т.е. 1000 / n + 1). При 501 FPS получается наибольшее замедление, достигающее 2х раз. При этом, например, можно взлететь на гауссе столь высоко на сколько хватит патронов. - При FPS от 101 до 111.1111 и от 201 до 250 при распрыге алиасом, во время отталкивания от горизонтальной поверхности вы не теряете скорость. При FPS от 250 до 333.3333 скорость теряется очень редко. При 100 FPS скорость теряется очень сильно (порядка 12% на каждом прыжке).
- Существует зависимость скорости стрельбы (например из автомата наиболее заметно) от FPS. Например, если сравнить стрельбу на 100 FPS и на 250, то на 250 автомат больше похож на пулемет. На самом деле разница не столь велика (при 100 FPS 500 патронов выстреливаются примерно за 40 секунд, при 250 за 38) - порядка 10%.
Не стоит думать, что 250 FPS это спидхак, т.к. на самом деле это 100 FPS имеет замедление, а не 250 ускорение.
Дополнительное исследование малых частот (EN): http://www.fortress-forever.com/fpsreport/.
Пример зависимости
Скорость движения постепенно растет начиная с 167 FPS и достигает максимума при 200. При 201 скорость движения резко падает.
Пики скорости движения
Цифры после точки (плавающей запятой) имеют значение. Напомню так же, что в ХЛ вместо плавающей запятой используется точка.
1000 / 1 = 1000 1000 / 2 = 500 1000 / 3 = 333.3333 1000 / 4 = 250 1000 / 5 = 200 1000 / 6 = 166.6666 1000 / 7 = 142.8571 1000 / 8 = 125 1000 / 9 = 111.1111 1000 / 10 = 100 1000 / 11 = 90.9090 1000 / 12 = 83.3333 1000 / 13 = 76.9230 1000 / 14 = 71.4285 1000 / 15 = 66.6666 и так далее.
Наилучший FPS
Таковым является значение 250: нет тороможений при прыжках и стрельба из автомата (и соответственно прочих оружий) наиболее скоростная.
Зависимость стрельбы из автомата МП5
Ниже приведены графики времени затрачиваемого на отстреливание полной обоймы автомата МП5 на различных FPS. Во времени не учтена задержка после последнего выстрела. Т.е., при стандартной задержке в 0,1 сек должно получаться суммарное время на обойму 4,9 секунд.
Time (синий график) - стрельба на стандартном сервере ХЛ. Fixed (красный график) - на сервере исправлено определение времени следующего выстрела.
Замеры произведены на ФПС являющихся пиками скорости движения для исключения влияния зависимости от физики, плюс на стандартном для ХЛ ФПС - 72. Можно заметить, что график Time довольно сильно меняется даже несмотря на то, что данные FPS являются пиками скорости. Данная ошибка появляется от использованного способа определения времени следующего выстрела: считается время от текущего момента обработки события, а не от момента, когда должен был произойти предыдущий выстрел. График Fixed показывает какое время на отстреливание полной обоймы затрачивается, если эту ошибку исправить на сервере. Видно, что на 72 FPS имеет завышенное время, вызванное ошибкой в сетевом протоколе движка GoldSource.