Comments 24
Про лесенку DPS — опытные игроки Quake знают, что эффективней всего наносить дамаг чем-то скорострельным, чтобы когда у противника останется определенное количество HP (предсказываешь его на догадках о том, сколько его у противника было заранее, и сколько раз ты по нему успешно попал) в соответствии с позицией, твоим aim-ом и его dodge-скиллом ловишь момент переключения на оружие, которое стреляет реже, но сильней, например, Rocket Launcher.
Тут тоже вопрос. Положим, у вас есть перс: 100 базового урона, 10 ударов в секунду. Вы его разогнали до 100 урона, 100 ударов в секунду (+0% к урону, +900% к скорости).
Есть выбор: добавить 100% к урону (1 вариант), или 100% к скорости (2 вариант).
1 вариант: 200*100 = 20,000 DPS.
2 вариант: 100*110 = 11,000 DPS.
Выгоднее оказалось апнуть урон. Вывод: совсем уж оголтело вкладываться в одну только скорость не стоит. Относительная полезность со временем падает.
Кроме того, практически всегда есть «но». Например, блок. В примере выше, при блоке 150 нет смысла качать скорость до урона в 151 (пример в вакууме, я помню про проникающий урон в DA). Другой пример — фиксированные шипы\контратака (Axe в Dota). Ударишь 10 раз — получишь 750 ответки, ударишь 5 раз — в ответ получишь лишь 375. Иногда же есть «шанс оглушить на секунду при атаке». Если этот шанс 10%, при наличии 10 ударов в секунду мы можем держать оппонента в пермастане, и скорость решает. В PoE таскал с собой огнеспеллы — чтоб поджигать боссов и сбивать им регенерацию. Плюс, ниже неоднократно упоминали, что игрок с низким показателем атаки будет стараться разрывать дистанцию\инвизить\укрываться во время «перезарядки».
В итоге прав не тот, у кого больше\правильнее DPS, а тот, кто грамотнее воспользовался моментом: напал сзади\неожиданно, дизейблы\хилы\элики заготовил, в укрытие метнулся, переждал скилл-шторм противника.
Есть выбор: добавить 100% к урону (1 вариант), или 100% к скорости (2 вариант).
1 вариант: 200*100 = 20,000 DPS.
2 вариант: 100*110 = 11,000 DPS.
Выгоднее оказалось апнуть урон. Вывод: совсем уж оголтело вкладываться в одну только скорость не стоит. Относительная полезность со временем падает.
Кроме того, практически всегда есть «но». Например, блок. В примере выше, при блоке 150 нет смысла качать скорость до урона в 151 (пример в вакууме, я помню про проникающий урон в DA). Другой пример — фиксированные шипы\контратака (Axe в Dota). Ударишь 10 раз — получишь 750 ответки, ударишь 5 раз — в ответ получишь лишь 375. Иногда же есть «шанс оглушить на секунду при атаке». Если этот шанс 10%, при наличии 10 ударов в секунду мы можем держать оппонента в пермастане, и скорость решает. В PoE таскал с собой огнеспеллы — чтоб поджигать боссов и сбивать им регенерацию. Плюс, ниже неоднократно упоминали, что игрок с низким показателем атаки будет стараться разрывать дистанцию\инвизить\укрываться во время «перезарядки».
В итоге прав не тот, у кого больше\правильнее DPS, а тот, кто грамотнее воспользовался моментом: напал сзади\неожиданно, дизейблы\хилы\элики заготовил, в укрытие метнулся, переждал скилл-шторм противника.
многие в силу каких-то интуитивных заблуждений предпочитают увеличивать силу удара.
Смотрите, у вас цикл идет (задержка — удар)(задержка — удар), а полный цикл на самом деле идет (инициализация — удар — завершение). При малом времени инициализации (каста), прокачивать силу удара выгодно — соперник умрет после одной плюхи. Как писал Толкиен: «Если первый удар смертельный, то второго не надо».
То о чём вы говорите, это эффекты квантования, дискретизации. Цикл же который вы описываете, не отличается принципиально от удар-задержака=задержка-удар, время инициализации можно отнести к задержке. Что же касается убийства с одного удара, то такие вещи избегаются разработчиками, либо… либо игра начинает акцентировать внимание на совершенно иной тактике боя — как первым ударить.
Эфекты дискретизации расчитать довольно сложно, и я показал на примерах что в разных ситуациях может в выйграше быть и тот кто с большим уроном но меньшей скоростью, и тот кто с меньшей скоростью но большим уроном. Смысл же, в том, что вероятность возникновения удачной ситуации для того у кого скорость меньше а урон больше, в целом НИЖЕ. А сама эта вероятность зависит от массы неподконтрольных вам факторов.
Говоря проще, одна из основных идей статьи в том, что существуют ситуации в которых может быть выгоднее как сила так и скорость, но вероятность возникнования ситуации где скорость будет выгоднее ВЫШЕ.
Эфекты дискретизации расчитать довольно сложно, и я показал на примерах что в разных ситуациях может в выйграше быть и тот кто с большим уроном но меньшей скоростью, и тот кто с меньшей скоростью но большим уроном. Смысл же, в том, что вероятность возникновения удачной ситуации для того у кого скорость меньше а урон больше, в целом НИЖЕ. А сама эта вероятность зависит от массы неподконтрольных вам факторов.
Говоря проще, одна из основных идей статьи в том, что существуют ситуации в которых может быть выгоднее как сила так и скорость, но вероятность возникнования ситуации где скорость будет выгоднее ВЫШЕ.
время инициализации можно отнести к задержке
Нельзя, в том то и дело. Возьмем Quake 3 — рейлган наносит 100 единиц урона мгновенно, а потом восстанавливается 1.5 секунды (жалких 66dps), в то время как lightning gun наносит 8 единиц урона, восстанавливаясь 1/20 секунды (160dps); мало того, что у шафта дпс больше, так у него еще и высокая скорость стрельбы.
Но не дай бог вам имея 100 хп попасться на прицел к сопернику с рэйлом — он убьет вас мгновенно, и будет восстанавливаться, пока вы воскресаете.
Не все так просто. Если взять второй крайний случай, и положить время перед первым ударом равным нолю — то на вашей картинке каждая из линий уедет вверх на величину 1 удара. И тогда уже зеленая линия окажется целиком над красной.
Таким образом, если задержка после удара больше чем задержка до — то силу удара качать выгоднее. Если же задержка до удара больше задержки после — то выгоднее качать скорость.
Таким образом, если задержка после удара больше чем задержка до — то силу удара качать выгоднее. Если же задержка до удара больше задержки после — то выгоднее качать скорость.
Согласен, не всё так просто.
Если сдвинуть зелёную влево на величину задержки, то тогда формально его DPS станет уже выше. И тогда это уже не будет случай равенства DPSов. А вот если и у второго поднять DPS то получим ту же самую каритнку что была у меня вначале.
Если сдвинуть зелёную влево на величину задержки, то тогда формально его DPS станет уже выше. И тогда это уже не будет случай равенства DPSов. А вот если и у второго поднять DPS то получим ту же самую каритнку что была у меня вначале.
формально его DPS станет уже выше
Формально — нет. Тот же RPM, тот же урон. И если брать бесконечный отрезок времени, то DPS на этом отрезке будет одинаковым.
Но вот фактически, мы имеем дело не с бесконечным, а весьма коротким отрезком времени, на котором DPS различается сильно. Если брать рельсу из Quake 3, то ее формальный DPS — 66.
Фактический же сложнее: на 1 выстрел он равен бесконечности (100 dmg / 0 sec), на 2 выстрела — 133 (200 dmg / 1.5 sec), на 3 выстрела — 100 (300 dmg / 2 sec), и так далее, асимптотически приближаясь к формальному значению в 66 единиц.
В дискретном случае впринципе становится не совсем корректно использовать какое бы то ни было отношение. Если подходить формально (не вдаваясь в подробности), и пытаться получить DPS как отношение сумарного урона за время t к этому самому времени, то DPS уже не будет являться константой, и вобще говоря даже непрерывной функцией не будет.
Количество полученных повреждений =(n+1)/n*dmg Собственно n это количество временных промежутков, а n+1 кол-во ударов. При большом n всё это стремится к 1. Но вот рассматривать внутри врменных промежутков уже нет смысла.А в точках на краях промежутков у функции разрыв. И сравнивать такие точки (что внутри, что на разрывах «слева») на мой взгляд бессмысленно.
Кроме того, как-то более физично чтобы функция зависимости урона от времени в нуле была ноль. В противном случае надо менять саму постановку задачи и общую модель.
Однако несмотря на то что сравнение DPS в некоторых местах бессмысленно, общее количество нанесённых повреждений сравнивать можно в любой момент. Но это сравнение довольно затруднительно. И зависит как я уже говорил от многих факторов. Тот случай который был рассмотрен в статье, один из самых простых, поэтому я его и привёл для примера.
Но копаться в таких тонкостях причуд дискретных ситуаций безусловно интересно. Модель можно и усложнить на случай задержки, Там наверняка тоже что-то вылезет, инетересное и полезное.
Количество полученных повреждений =(n+1)/n*dmg Собственно n это количество временных промежутков, а n+1 кол-во ударов. При большом n всё это стремится к 1. Но вот рассматривать внутри врменных промежутков уже нет смысла.А в точках на краях промежутков у функции разрыв. И сравнивать такие точки (что внутри, что на разрывах «слева») на мой взгляд бессмысленно.
Кроме того, как-то более физично чтобы функция зависимости урона от времени в нуле была ноль. В противном случае надо менять саму постановку задачи и общую модель.
Однако несмотря на то что сравнение DPS в некоторых местах бессмысленно, общее количество нанесённых повреждений сравнивать можно в любой момент. Но это сравнение довольно затруднительно. И зависит как я уже говорил от многих факторов. Тот случай который был рассмотрен в статье, один из самых простых, поэтому я его и привёл для примера.
Но копаться в таких тонкостях причуд дискретных ситуаций безусловно интересно. Модель можно и усложнить на случай задержки, Там наверняка тоже что-то вылезет, инетересное и полезное.
Ну почему же? DPS как среднее значение за период — вполне себе имеющая смысл величина, независящая от времени.
Вы же сами приводили графики — начиная с некоторого уровня здоровья тот, кто имеет больше DPS гарантированно побеждает. DPS становится важным параметром, к примеру, при походе на босса.
Вы же сами приводили графики — начиная с некоторого уровня здоровья тот, кто имеет больше DPS гарантированно побеждает. DPS становится важным параметром, к примеру, при походе на босса.
Именно, что на «макро» уровне дейстивтельно DPS вполне себе адекватно всё описывает, а вот на «микро» уровне нет. Об этом то я и говорил в статье. Что существует та самая точка, начиная с которой DPS вполне себе становится физичным… осмысленным и удоволетворительно описывает ситуацию.
Но вот что касается влияние выбора точки отсчёта, а так же что будет если лесенку сгладить, чтобы избежать очевидных разрывов, сделать её более удобоваримой. Я тут подумаю, может что добавлю в статью, если не получится слишком запутано. А то как показывает практика, такое не читают.
Но вот что касается влияние выбора точки отсчёта, а так же что будет если лесенку сгладить, чтобы избежать очевидных разрывов, сделать её более удобоваримой. Я тут подумаю, может что добавлю в статью, если не получится слишком запутано. А то как показывает практика, такое не читают.
В целом в пвп есть факторы, не зависящие от одной из сторон, во время которых откатываются медленные плюхи, ну, и так далее…
А ещё игры бывают разные. Подобные расчёты хорошо работают в дьяблоподобных играх, где противники не сильно подвижны и идёт стабильный ДПС. Выше писали про кваку. Так вот там скоростное оружие рулит только вблизи, поскольку от него сложно увернуться, особенно в коридорах. На больших дистанциях как раз гораздо проще пару раз зарядить из чего-нибудь мощного (рельсы, например) чем выцеливать бешено скачущего врага. Да и попробуй завалить ДПС-ом того, кто высовывается из-за стены на долю секунды только для выстрела.
Это довольно наглядно демонстрируется в FTL: Faster Than Light. По умолчанию оба корабля начинают бой с разряженными орудиями, и тот, кто первым зарядится — имеет шанс выбить противнику что-нибудь важное до того как тот выстрелит. С этой точки зрения, орудия с долгой перезарядкой рискованны — пока заряжаешься, поймаешь одно-два-три попадания.
Однако модуль Weapons Preigniter позволяет начать бой с заряженными орудиями (при том же времени перезарядки), и тут уже орудия с высоким разовым уроном работают хорошо — ты гарантированно выстрелишь первым и, как минимум, понизишь атакующий потенциал противника до приемлемого (чтобы щиты держали) уровня.
Вообще в какой-то статье встречал похожий пример, но там он применялся к армиям в RTS — орда мелких юнитов vs один супер-юнит. При равном DPS, орду можно легко распределять по нескольким целям, но при этом она наверняка понесёт потери, которые ослабят её потенциал, а вот супер-юнит и на последнем издыхании обычно столь же опасен, но может легко оказаться в ситуации когда каждый выстрел — оверкилл, и ограничение скорости стрельбы становится критичным.
Однако модуль Weapons Preigniter позволяет начать бой с заряженными орудиями (при том же времени перезарядки), и тут уже орудия с высоким разовым уроном работают хорошо — ты гарантированно выстрелишь первым и, как минимум, понизишь атакующий потенциал противника до приемлемого (чтобы щиты держали) уровня.
Вообще в какой-то статье встречал похожий пример, но там он применялся к армиям в RTS — орда мелких юнитов vs один супер-юнит. При равном DPS, орду можно легко распределять по нескольким целям, но при этом она наверняка понесёт потери, которые ослабят её потенциал, а вот супер-юнит и на последнем издыхании обычно столь же опасен, но может легко оказаться в ситуации когда каждый выстрел — оверкилл, и ограничение скорости стрельбы становится критичным.
Спасибо, познавательно.
Т.к. это продолжение цикла статей, не плохо бы указать ссылки на предыдущие
Т.к. это продолжение цикла статей, не плохо бы указать ссылки на предыдущие
В общем-то важность скорострельности становится ещё очевидней, если вспомнить что не все удары могут попадать в цель (в случае отсутствия автотаргетинга). Есть ещё подобная хитрость с разбросом урона — в общем случае выгодней взять оружие с более предсказуемым уроном, то есть между мечом и 4-6 и дубиной 3-7 меч предпочтительней потому что проще сказать сколько осталось нанести ударов.
Иногда предсказуемость не является достоинством. Если игра дает много попыток — то оружие с высоких разбросом урона может оказаться полезнее. Недаром же говорят, что самое мощное заклинание главного героя — это save/load.
Вообще говоря, иногда еще броня есть, или шанс заблокировать 6 единиц дамага. Тут дубина будет эффективнее.
Описанный в статье приоритет скорости над уроном справедлив не всегда. Всё зависит от игрового мира. В EVE Online, например, вы начинаете бой с заряженными пушками, и имея большой урон при низкой скорости перезарядки у вас преимущество, особенно на стартовом этапе боя.
Пусть ваша альфа (разовый урон) — 100 едениц, а время перезарадки — 10 секунд. Думаете ваш ДПС = 10? Не-ет.
Первый удар (100 урона) вы наносите за время, приближенно равное нулю. Ваш дпс = 100/0 = бесконечность.
Второй удар (суммарно урона 100+100) вы наносите спустя 10 секунд. ДПС = 200/10 = 20
Третий удар (100+100+100) будет нанесен через 20 секунд. ДПС = 300/20 = 15
Разумеется, далее дпс падает, и на продолжительном промежутке времени стремится к 10-ти. Но если ваш персонаж «заточен» под альфу, сколько ударов переживет противник?
Пусть ваша альфа (разовый урон) — 100 едениц, а время перезарадки — 10 секунд. Думаете ваш ДПС = 10? Не-ет.
Первый удар (100 урона) вы наносите за время, приближенно равное нулю. Ваш дпс = 100/0 = бесконечность.
Второй удар (суммарно урона 100+100) вы наносите спустя 10 секунд. ДПС = 200/10 = 20
Третий удар (100+100+100) будет нанесен через 20 секунд. ДПС = 300/20 = 15
Разумеется, далее дпс падает, и на продолжительном промежутке времени стремится к 10-ти. Но если ваш персонаж «заточен» под альфу, сколько ударов переживет противник?
Уже обсуждалось выше: https://habrahabr.ru/post/283208/#comment_8889104
Sign up to leave a comment.
Использование МатАнализа в компьютерных играх (часть 3)