StranikS_Scan Posted October 30 Share Posted October 30 (edited) 14 часов назад, SoprachevAK сказал: Странно, что ещё и на гравитацию, какой то баг гейм дизайна как по мне Потратил всё утро и пришел к выводу, что гравитацию крутят чтобы корректировать высоту траектории. В игре время полета снарядов обратно зависит от начальной скорости, а вот все траектории пологие, не зависимо от скорости, прямых-линейных, а также гаубичных траекторий в игре нет. А после Петиной Мортиры над картой еще и купол сделали чтобы желающих клюв задирать к нему больше не было. В игре реализована модель: L = (Lx^2 + Ly^2)^0.5 V = (Vx^2 + Vy^2)^0.5, где Lx = Vx*t + 0.5*Gx*t^2 Ly = Vy*t + 0.5*Gy*t^2, где Gx = 0 Gy = g0 < 0 В этой модели, если зафиксировать координаты точки прилета и соответственно задаться Lx = Lx0 и Ly = Ly0, а также модулем скорости V0 и временем t0, то увеличение модуля V0 в k-раз приведет к равенствам: L0 = (Lx0^2 + Ly0^2)^0.5 V0*k = ((Vx0*k)^2 + (Vy0*k)^2)^0.5, где Lx0 = Vx0*k*t + 0.5*Gx*t^2 Ly0 = Vy0*k*t + 0.5*Gy*t^2, где Gx = 0 Gy = g0 < 0 Это означает, что снижение времени полёта снаряда будет определяться из решения вот такой системы: Vx0*t0 + 0.5*Gx*t0^2 = Vx0*k*t + 0.5*Gx*t^2 Vy0*t0 + 0.5*Gy*t0^2 = Vy0*k*t + 0.5*Gy*t^2 Решать не будем, ограничимся ниже только анализом формул, которые из него следуют. Если принять, что точка выстрела и точка попадания лежат на одной горизонтали, то тогда Ly0 = 0. Отсюда получаем выражение для времени полета снаряда t = -2*Vy0*k/Gy = t0/k. При этом зависимость расстояния Lx от времени, с учетом, что Gx = 0, принимает вид Lx = Vx0*k*t и если t = t0/k, то выполняется исходное равенство Lx = Lx0. Следовательно, увеличивая модуль начальной скорости мы уменьшаем время полета, сохраняя при этом дистанцию до точки прицеливания. Как изменится время, если кроме скорости корректировать еще и гравитацию, по принципу Gy = Gy0*k^2. В этом случае получим точно такой же результат со временем полета снаряда, только он будет более простой в вычислениях: Lx0 = Vx0*k*t + 0.5*Gx0*k^2*t^2 = Vx0*k*t0/k + 0.5*Gx0*k^2*(t0/k)^2 Ly0 = Vy0*k*t + 0.5*Gy0*k^2*t^2 = Vy0*k*t0/k + 0.5*Gy0*k^2*(t0/k)^2 и соответственно, новое время полета снаряда это t = t0/k. А теперь возникает вопрос, а что еще меняется кроме времени? Очевидно, что дистанция тут не меняется, т.к. выше она не зависит от гравитации. Меняется максимальная высота подъема снаряда. Она определяется выражением: Lymax = Vy^2 / (2*Gy) При увеличении модуля скорости Vy0*k, получаем увеличение высота траектории Lymax0*k^2. Если при этом увеличим гравитацию Gy0*k^2, то эффект пропадет и высота траектории останется такой же. -------------------------------------------------- Выводы: 1. Увеличение в игре только лишь скорости снаряда танка приводит к снижению времени полета, а также к увеличению высоты траектории полета. 2. Коррекция гравитации при увеличении скорости снаряда нужна для того чтобы менялось только время полета, а высота траектории не менялась. 3. В игре за счет использования заниженных и завышенных значений гравитации (относительно 9,81 м/с^2) добиваются пологих траекторий у всех танков. 4. Базовая коррекция скорости и гравитации на 0.8 и 0.64 в клиенте игры сделана для принудительного увеличения времени отрисовки трассеров на 25%. В файлах ттх танков и очевидно при расчете попаданий на сервере - снаряды летят быстрее, чем трассеры в клиенте игры. Это еще одна из причин почему в игре сначала игрок видит результат попадания, а потом трассер. 5. Как следует из функции getVehicleShotSpeedByFactors новый навык заряжающего "Идеальная зарядка" в реальности работает не на увеличение скорости снарядов, как дается в описании, а на уменьшение времени полета снаряда, т.к. его действие приводит к сокращению времени, при сохранении исходных траекторий и высот полета. Если вкаченный перк дает 1.1 к скорости и 1.21 к гравитации, то время уменьшается в 0.909 раза. И это надо учитывать в модах. Edited October 30 by StranikS_Scan 4 @ Quote Link to comment Short link Share on other sites More sharing options...
KPOT2338 Posted October 30 Share Posted October 30 6 часов назад, StranikS_Scan сказал: Потратил всё утро и пришел к выводу, что гравитацию крутят чтобы корректировать высоту траектории. В игре время полета снарядов обратно зависит от начальной скорости, а вот все траектории пологие, не зависимо от скорости, прямых-линейных, а также гаубичных траекторий в игре нет. А после Петиной Мортиры над картой еще и купол сделали чтобы желающих клюв задирать к нему больше не было. Если вдруг помнишь, то когда (давненько уже) артоКоню уменьшили скорость снаряда, то неожиданно для "разрабов" уменьшилась дальность полёта. И чтоб вернуть прежнюю дальность им пришлось корректировать гравитацию. Т.е. корректируется не высота, которая для быстрых снарядов считанные сантиметры, а просто чтоб не менялась точка попадания А какая высота купола? @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted October 30 Share Posted October 30 (edited) 15 минут назад, KPOT2338 сказал: Если вдруг помнишь, то когда (давненько уже) артоКоню уменьшили скорость снаряда, то неожиданно для "разрабов" уменьшилась дальность полёта. И чтоб вернуть прежнюю дальность им пришлось корректировать гравитацию. Т.е. корректируется не высота, которая для быстрых снарядов считанные сантиметры, а просто чтоб не менялась точка попадания А какая высота купола? Не, такого не может быть. Баллистика изначально была создано такой как она есть. И те кто её создал отлично разбираются в том, что они делают. Ты скорее всего приводишь слова говорящих голов от ВГ, которые всякую чушь несли в массы в виде "ответов разработчиков". Скорее всего Коню забыли гравитацию поправить, когда скорость поменяли. А эти вещатели придумали очередную историю. Этого не помню. Edited October 30 by StranikS_Scan @ Quote Link to comment Short link Share on other sites More sharing options...
SoprachevAK Posted October 30 Author Share Posted October 30 (edited) 7 часов назад, StranikS_Scan сказал: Потратил всё утро и пришел к выводу, что гравитацию крутят чтобы корректировать высоту траектории. В игре время полета снарядов обратно зависит от начальной скорости, а вот все траектории пологие, не зависимо от скорости, прямых-линейных, а также гаубичных траекторий в игре нет. А после Петиной Мортиры над картой еще и купол сделали чтобы желающих клюв задирать к нему больше не было. В игре реализована модель: L = (Lx^2 + Ly^2)^0.5 V = (Vx^2 + Vy^2)^0.5, где Lx = Vx*t + 0.5*Gx*t^2 Ly = Vy*t + 0.5*Gy*t^2, где Gx = 0 Gy = g0 < 0 В этой модели, если зафиксировать координаты точки прилета и соответственно задаться Lx = Lx0 и Ly = Ly0, а также модулем скорости V0 и временем t0, то увеличение модуля V0 в k-раз приведет к равенствам: L0 = (Lx0^2 + Ly0^2)^0.5 V0*k = ((Vx0*k)^2 + (Vy0*k)^2)^0.5, где Lx0 = Vx0*k*t + 0.5*Gx*t^2 Ly0 = Vy0*k*t + 0.5*Gy*t^2, где Gx = 0 Gy = g0 < 0 Это означает, что снижение времени полёта снаряда будет определяться из решения вот такой системы: Vx0*t0 + 0.5*Gx*t0^2 = Vx0*k*t + 0.5*Gx*t^2 Vy0*t0 + 0.5*Gy*t0^2 = Vy0*k*t + 0.5*Gy*t^2 Решать не будем, ограничимся ниже только анализом формул, которые из него следуют. Если принять, что точка выстрела и точка попадания лежат на одной горизонтали, то тогда Ly0 = 0. Отсюда получаем выражение для времени полета снаряда t = -2*Vy0*k/Gy = t0/k. При этом зависимость расстояния Lx от времени, с учетом, что Gx = 0, принимает вид Lx = Vx0*k*t и если t = t0/k, то выполняется исходное равенство Lx = Lx0. Следовательно, увеличивая модуль начальной скорости мы уменьшаем время полета, сохраняя при этом дистанцию до точки прицеливания. Как изменится время, если кроме скорости корректировать еще и гравитацию, по принципу Gy = Gy0*k^2. В этом случае получим точно такой же результат со временем полета снаряда, только он будет более простой в вычислениях: Lx0 = Vx0*k*t + 0.5*Gx0*k^2*t^2 = Vx0*k*t0/k + 0.5*Gx0*k^2*(t0/k)^2 Ly0 = Vy0*k*t + 0.5*Gy0*k^2*t^2 = Vy0*k*t0/k + 0.5*Gy0*k^2*(t0/k)^2 и соответственно, новое время полета снаряда это t = t0/k. А теперь возникает вопрос, а что еще меняется кроме времени? Очевидно, что дистанция тут не меняется, т.к. выше она не зависит от гравитации. Меняется максимальная высота подъема снаряда. Она определяется выражением: Lymax = Vy^2 / (2*Gy) При увеличении модуля скорости Vy0*k, получаем увеличение высота траектории Lymax0*k^2. Если при этом увеличим гравитацию Gy0*k^2, то эффект пропадет и высота траектории останется такой же. -------------------------------------------------- Выводы: 1. Увеличение в игре только лишь скорости снаряда танка приводит к снижению времени полета, а также к увеличению высоты траектории полета. 2. Коррекция гравитации при увеличении скорости снаряда нужна для того чтобы менялось только время полета, а высота траектории не менялась. 3. В игре за счет использования заниженных и завышенных значений гравитации (относительно 9,81 м/с^2) добиваются пологих траекторий у всех танков. 4. Базовая коррекция скорости и гравитации на 0.8 и 0.64 в клиенте игры сделана для принудительного увеличения времени отрисовки трассеров на 25%. В файлах ттх танков и очевидно при расчете попаданий на сервере - снаряды летят быстрее, чем трассеры в клиенте игры. Это еще одна из причин почему в игре сначала игрок видит результат попадания, а потом трассер. 5. Как следует из функции getVehicleShotSpeedByFactors новый навык заряжающего "Идеальная зарядка" в реальности работает не на увеличение скорости снарядов, как дается в описании, а на уменьшение времени полета снаряда, т.к. его действие приводит к сокращению времени, при сохранении исходных траекторий и высот полета. Если вкаченный перк дает 1.1 к скорости и 1.21 к гравитации, то время уменьшается в 0.909 раза. И это надо учитывать в модах. Каким сложным ты до этого дошел путём конечно Но вообще да, в баллистике траектория как раз и задаётся вектором начальной скорости и гравитацией, если меняешь скорость, то парабола становится более пологой. Чтоб её вернуть на место, нужно подкрутить гравитацию тоже И когда я говорил про баг геймдизайна, я как раз и имел ввиду, что ускоряя снаряд, они предпринимают действия, чтоб оставить неизменной траекторию. Хотя хочется, чтоб она была более пологой "стрелять лазером" А ещё интересно, что они это делают в том же месте, в котором корректируют параметры для визуального отображения. Надеваю шапочку из фольги, и высказываю гипотезу, что перк чисто клиентский, как и визуальное замедление до 0.8) 51 минуту назад, KPOT2338 сказал: Если вдруг помнишь, то когда (давненько уже) артоКоню уменьшили скорость снаряда, то неожиданно для "разрабов" уменьшилась дальность полёта. А вот это на самом деле могло быть, потому что предельная дальность стрельбы напрямую зависит от траектории (которая определяется парой скорость–гравитация). Если на обычных танках этого незаметно и упирается в технические 750м, то у арты, у которой гравитация ~100, дальность стрельбы как раз и ограничивается баллистикой (нет такого угла выстрела, при котором снаряд полетит дальше X метров). Так что если тупо замедлить снаряд не трогая гравитацию, максимальная баллистическая дистанция действительно уменьшается. Edited October 30 by SoprachevAK @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted October 30 Share Posted October 30 3 минуты назад, SoprachevAK сказал: Надеваю шапочку из фольги, и высказываю гипотезу, что перк чисто клиентский, как и визуальное замедление до 0.8) А смысл в нем тогда какой? Он же ничего давать не будет в плане попаданий. @ Quote Link to comment Short link Share on other sites More sharing options...
SoprachevAK Posted October 30 Author Share Posted October 30 Только что, StranikS_Scan сказал: А смысл в нем тогда какой? Он же ничего давать не будет в плане попаданий. В этом и теория заговора) Но это слишком легко проверяется, чтоб быть правдой. @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.