Я разрабатываю классическую 2d RPG (в духе финальной фантазии), и мне было интересно, есть ли у кого-нибудь совет о том, как сделать формулы ущерба / ссылки на ресурсы / примеры? Я объясню мою текущую настройку. Надеюсь, я не переусердствую с этим вопросом, и я прошу прощения, если мои вопросы слишком большие / широкие
Статистика моих персонажей состоит из следующих элементов:
enum Stat
{
HP = 0,
MP = 1,
SP = 2,
Strength = 3,
Vitality = 4,
Magic = 5,
Spirit = 6,
Skill = 7,
Speed = 8, //Speed/Agility are the same thing
Agility = 8,
Evasion = 9,
MgEvasion = 10,
Accuracy = 11,
Luck = 12,
};
Живучесть - это в основном защита от физических атак, а дух - защита от магических атак.
Все характеристики имеют фиксированные максимумы (9999 для HP, 999 для MP / SP и 255 для остальных). С помощью способностей максимальные значения могут быть увеличены (99999 для HP, 9999 для HP / SP, 999 для остальных) с типичными значениями (на уровне 100) до / после способностей + экипировка + и т. Д. Будут 8000/20000 для HP, 800 / 2000 для SP / MP, 180/350 для других характеристик
В конце игры Enemy HP, как правило, будут в нижних миллионах (с супер боссом, имеющим максимум ~ 12 миллионов).
Мне было интересно, как люди действительно разрабатывают правильные формулы ущерба, которые правильно масштабируются? Например, основываясь на этих данных, использование формул повреждений для Final Fantasy X в качестве основы выглядело очень многообещающе. Полная ссылка здесь http://www.gamefaqs.com/ps2/197344-final-fantasy-x/faqs/31381, но в качестве быстрого примера: Str = 127, команда «Атака» используется, вражеская защита = 34.
1. Physical Damage Calculation:
Step 1 ------------------------------------- [{(Stat^3 ÷ 32) + 32} x DmCon ÷16]
Step 2 ---------------------------------------- [{(127^3 ÷ 32) + 32} x 16 ÷ 16]
Step 3 -------------------------------------- [{(2048383 ÷ 32) + 32} x 16 ÷ 16]
Step 4 --------------------------------------------------- [{(64011) + 32} x 1]
Step 5 -------------------------------------------------------- [{(64043 x 1)}]
Step 6 ---------------------------------------------------- Base Damage = 64043
Step 7 ----------------------------------------- [{(Def - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------ [{(34 - 280.4)^2} ÷ 110] + 16
Step 9 ------------------------------------------------- [(-246)^2) ÷ 110] + 16
Step 10 ---------------------------------------------------- [60516 ÷ 110] + 16
Step 11 ------------------------------------------------------------ [550] + 16
Step 12 ---------------------------------------------------------- DefNum = 566
Step 13 ---------------------------------------------- [BaseDmg * DefNum ÷ 730]
Step 14 --------------------------------------------------- [64043 * 566 ÷ 730]
Step 15 ------------------------------------------------------ [36248338 ÷ 730]
Step 16 ------------------------------------------------- Base Damage 2 = 49655
Step 17 ------------ Base Damage 2 * {730 - (Def * 51 - Def^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ---------------------- 49655 * {730 - (34 * 51 - 34^2 ÷ 11) ÷ 10} ÷ 730
Step 19 ------------------------- 49655 * {730 - (1734 - 1156 ÷ 11) ÷ 10} ÷ 730
Step 20 ------------------------------- 49655 * {730 - (1734 - 105) ÷ 10} ÷ 730
Step 21 ------------------------------------- 49655 * {730 - (1629) ÷ 10} ÷ 730
Step 22 --------------------------------------------- 49655 * {730 - 162} ÷ 730
Step 23 ----------------------------------------------------- 49655 * 568 ÷ 730
Step 24 -------------------------------------------------- Final Damage = 38635
Я просто изменил разделители, чтобы включить рейтинг атаки оружия и рейтинг брони брони.
Магический урон рассчитывается следующим образом: Mag = 255, используется Ultima, MDef врага = 1
Step 1 ----------------------------------- [DmCon * ([Stat^2 ÷ 6] + DmCon) ÷ 4]
Step 2 ------------------------------------------ [70 * ([255^2 ÷ 6] + 70) ÷ 4]
Step 3 ------------------------------------------ [70 * ([65025 ÷ 6] + 70) ÷ 4]
Step 4 ------------------------------------------------ [70 * (10837 + 70) ÷ 4]
Step 5 ----------------------------------------------------- [70 * (10907) ÷ 4]
Step 6 ------------------------------------ Base Damage = 190872 [cut to 99999]
Step 7 ---------------------------------------- [{(MDef - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------- [{(1 - 280.4)^2} ÷ 110] + 16
Step 9 ---------------------------------------------- [{(-279.4)^2} ÷ 110] + 16
Step 10 -------------------------------------------------- [(78064) ÷ 110] + 16
Step 11 ------------------------------------------------------------ [709] + 16
Step 12 --------------------------------------------------------- MDefNum = 725
Step 13 --------------------------------------------- [BaseDmg * MDefNum ÷ 730]
Step 14 --------------------------------------------------- [99999 * 725 ÷ 730]
Step 15 ------------------------------------------------- Base Damage 2 = 99314
Step 16 ---------- Base Damage 2 * {730 - (MDef * 51 - MDef^2 ÷ 11) ÷ 10} ÷ 730
Step 17 ------------------------ 99314 * {730 - (1 * 51 - 1^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ------------------------------ 99314 * {730 - (51 - 1 ÷ 11) ÷ 10} ÷ 730
Step 19 --------------------------------------- 99314 * {730 - (49) ÷ 10} ÷ 730
Step 20 ----------------------------------------------------- 99314 * 725 ÷ 730
Step 21 -------------------------------------------------- Final Damage = 98633
Проблема в том, что формулы полностью распадаются, когда статистика начинает превышать 255. В частности, значения Защиты свыше 300 или около того начинают генерировать действительно странное поведение. Например, высокая прочность + защита приводят к огромным отрицательным значениям. Хотя я мог бы изменить формулы для правильной работы для моего варианта использования, вероятно, было бы проще использовать совершенно новую формулу. Как люди на самом деле разрабатывают формулы ущерба? Я подумывал об открытии Excel и попытался построить формулу таким образом (например, отображение статистики атаки или статистики защиты), но мне было интересно, есть ли более простой способ? Хотя я не могу передать всю игровую механику своей игры, может ли кто-нибудь предложить хорошее начальное место для построения формулы урона?
Спасибо
источник
Ответы:
Создание таких формул требует знания элементарных математических функций - того, что вы узнали в классе алгебры и предисчисления.
Как только вы освоите их, просто спросите себя (замените «ценность» на «урон», «здоровье», «скорость» или что-то еще) :
Затем просто настройте его (добавьте / умножьте материал, измените базовое значение и т. Д.), Пока не почувствуете себя правильно. Графический калькулятор поможет вам визуализировать, как изменения параметров повлияют на функцию.
Кстати, проблемы, с которыми вы сталкиваетесь, связаны с целочисленными переполнениями .
Используйте типы переменных, которые достаточно велики, чтобы содержать числа, с которыми вы работаете. Размеры различаются в зависимости от платформы в C ++, но с использованием 32-разрядного компилятора Visual Studio
unsigned int
он 32-разрядный, а дляunsigned __int64
MS - 64-разрядный. Также рассмотрите возможность использованияdouble
.Кроме того, попытайтесь реорганизовать свои операции так, чтобы вы не сталкивались с такими большими цифрами в первую очередь (например, вместо того
MDef * MDef / 110
, чтобы делать(int)((float)MDef / 110 * MDef)
) .источник
__int64
вариант,uint64_t
потому чтоstdint.h
он недоступен в Visual Studio 2008 и ниже, и я не хотел запутывать бедного мальчика больше, чем он уже есть.Вот ваша настоящая проблема: вы определили свою статистику, прежде чем определить, что на самом деле означает эта статистика . Вы кладете телегу перед лошадью.
Посмотрите, как работает D & D (настольная). «Сила» ничего не значит сама по себе; это только что-то значит, потому что есть правило, которое гласит: «Добавь бонус своей силы к своей рукопашной атаке». Это правило является частью правил боя D & D. Без боевых правил «Сила» - вообще бессмысленная величина.
Первый вопрос, который вам нужно задать себе: как много различий я хочу между персонажами? Опять же, посмотрите на D & D. Там у них есть 6 основных характеристик. Эти характеристики определяют разные размеры игры для персонажей. Персонаж с высокой Ловкостью будет иметь различные варианты от персонажа с низкой Ловкостью.
Но причина даже этой разницы все возвращается к правилам. Высокая Ловкость означает бонусы к дальним атакам; Вы можете чаще наносить удары дальними атаками. Так что между Силой и Ловкостью у вас есть два аспекта игры: дальний бой или ближний бой.
Интеллект и Мудрость также образуют что-то вроде пары, но они больше взаимодействуют с конкретными классами. Int делает волшебников и других тайных заклинателей лучше (или возможно при некоторых наборах правил), мудрость жизненно важна для клериков и других божественных заклинателей. Поскольку божественные и тайные заклинания имеют разные списки заклинаний, эти две характеристики участвуют в разных измерениях игры.
Вам нужно определить основные правила для статистики, прежде чем вы сможете определить функции прогрессирования роста и тому подобное. Вам не нужны подробности; вам не нужно говорить, что «каждая точка силы добавляется в случайный бросок, чтобы определить, попадет ли атака в ближнем бою». То, что вам нужно, это мета-правила типа «ловкость делает атакующих дальнего боя лучше». Вы можете выяснить, как именно это делает их лучше позже.
Существуют разные способы развития персонажей. Обычный трюк Final Fantasy старой школы состоял в том, чтобы просто использовать уровень персонажа как часть его вычислений урона. Это может быть просто умножение уровня на соответствующий показатель, или это может означать применение функции к уровню персонажа. Скажем, квадратичная прогрессия, чтобы уровень урона персонажа увеличивался с каждым уровнем.
Однако вы хотите, чтобы ваши боевые функции работали, они должны учитывать прогресс. Ваши функции нуждаются в хуках для развития.
У D & D есть забавный способ прогрессирования. Это основано на части класса; каждый раз, когда вы повышаете уровень, вы получаете новые функции класса и плоский бонус к вашему удару, в зависимости от класса вашего персонажа. Тем не менее, некоторые функции класса стали лучше сами по себе. Заклинания в D & D будут иметь встроенную прогрессию. Заклинание может нанести 1d4 урона на 2 уровня заклинателя выше первого. Так что любой другой уровень волшебника делает это заклинание лучше.
D & D также активно использует прогресс на основе предметов. До 4-го издания прогрессирование на основе предметов было в основном для сражающихся персонажей, но даже в более старых выпусках заклинатели имели предметы, которые давали им баффы для статов или другие корректировки (или даже давали заклинания).
Так что предметы - это еще одна вещь, которую должны учитывать ваши боевые функции. Предметы только улучшают одну или несколько характеристик, когда экипированы, или они делают другие вещи? D & D был немного странным, в этом редко менялась статистика; оружие просто наносило урон XdY, возможно, с бонусом, основанным на одной из ваших характеристик. И это было это. Таким образом, ваш единственный способ нанести больший урон в бою - найти лучшее оружие. Во многих видеоиграх RPG они учитывают уровень в дополнение к оружию.
источник
Ваши формулы кажутся довольно сложными. Я не уверен, как профессиональные разработчики RPG справляются с этим, но я бы рекомендовал сосредоточиться на простоте. Попробуйте найти простейшую возможную формулу, которая по-прежнему включает диапазон характеристик, которые вы хотите использовать. Например, могли бы вы сделать так, чтобы характеристики изменяли друг друга до расчета урона, а не модифицировали урон во время расчета? После того, как вы запомните формулу, я постараюсь построить ее для широкого диапазона возможных значений, чтобы увидеть, как она будет вести себя по мере повышения уровня игроков. Очевидно, что чем меньше у вас переменных, тем более это возможно.
Кроме того, BlueRaja предоставила важное объяснение того, почему вы можете видеть неожиданные значения на более высоких уровнях статистики. Использование неподписанных типов и проверка на переполнение будут важны.
источник
Это у меня проблема. Вы должны строить своих боссов вокруг того, что, по вашему мнению, должны уметь делать ваши игроки. Вы строите своих игроков и боевую формулу вокруг того, что вы хотите, чтобы ваши боссы были похожи.
Как только вы построите свою боевую механику и роли, вы сможете решить, как вы хотите создавать своих боссов, поскольку это должен быть хороший баланс между уроном, который игроки могут нанести / поглотить, по сравнению с тем, что босс может нанести / поглотить.
источник
Те цифры, которые вы цитировали, вероятно, получены из простой настройки симуляции, более тысячи прогонов.
Поэтому вы должны написать симуляцию для создания персонажа 20-го уровня и посмотреть, как он проходит через 200 битв или около того против типов врагов, с которыми он должен был сражаться в этот момент. Сделайте это снова для персонажа 30 уровня (предположительно в следующем разделе мира).
Это займет некоторое время, чтобы разобраться в этом, но написание автоматических симуляций определенно сделает это намного проще, чем просто угадывать и воспроизводить их вручную.
источник
Я думаю, что вы делаете ошибку, что хотите создать формулу, не имея надлежащего дизайна.
Сначала начните с дизайна, затем начните думать о представлении дизайна в формулах. Чем понятнее ваш дизайн, тем легче будет найти простые и / или точные формулы.
Попробуйте реализовать «типы» врагов, например, «бронированный» => атака игрока, если она имеет физический тип, снижена на 50%. Не заставляйте битву течь, чтобы абстрагироваться, подумайте о том, что актуально, а что нет.
Если ваш дизайн говорит, что «бронированные враги» слабы против магии, но сильны против физического урона, представьте это в коде. Но помните, что вам пришлось много тестировать, потому что значения не будут работать волшебно при первом написании кода. Попробуйте создать дизайн, внедрить логику в код, всегда проверять, является ли это техническим представлением того, что вы имели в виду, и не изменяет ли оно значения до тех пор, пока оно не будет.
источник
Хотя мой дизайн еще не вышел из фазы электронных таблиц, я пришел к одному выводу о разработке математики для RPG:
Держите их как можно проще. В дизайне, над которым я работаю, я использовал очень упрощенные формулы, подходящие для полуклассовой системы. То есть. Заклинание огненного шара имеет урон 30. Формальное:
Мы также можем добавить модификаторы как это:
Таким образом, конечный результат будет 45 урона. Я обнаружил, что использование множителей прецессии - очень простое и масштабируемое решение для работы. Вместо того, чтобы идти с нечетными числами со сложной математикой, чтобы выяснить, какой результат мы хотим.
Теперь мы можем рассчитать повторное сопротивление урона, которое будет просто вычислять защиту от заданного типа урона. Есть два подхода, и я, честно говоря, еще не решил, что подойдет лучше, но оба они просты и жизнеспособны:
Таким образом, конечный результат будет получен 22 урона (я только сократить частичный результат).
Другая формула:
Таким образом, конечный результат будет 23. Если получится, что сопротивление больше полученного урона, персонаж просто не получит никакого урона. Конечно, вы должны убедиться, что в такой ситуации нет места, за исключением случаев, когда вы этого хотите.
Хотя я должен признать, что предварительное масштабирование несколько легче сбалансировать и масштабировать. Но это также зависит от ваших базовых чисел. Процентное масштабирование будет работать лучше всего, если вы начнете с 100 и выше. Если вы работаете с небольшими числами (если честно, с цифрами ниже 100), это может привести к затруднениям, так как вы начнете получать результаты с плавающей запятой, что будет трудно сбалансировать и фактически делать с ними что-нибудь интересное.
Вероятно, оптимальным решением в этом случае является использование обоих подходов, когда они считают нужным. Или, если вы поклонник больших чисел, начните с 1000.
И на закрытии заканчивается. Я не пришел к этим выводам полностью самостоятельно. На самом деле я потратил довольно много времени на чтение различных руководств по РПГ (Hero, DnD). Особенно полезен DnD, так как он работает по схожим принципам, но вместо атрибутов он использует уровни для своих формул, иногда они могут быть более сложными. Чем то, что я представил здесь.
В любом случае, лучший совет: старайтесь сделать их максимально простыми. Не используйте никакие сложные математические или длинные уравнения, так как они подвержены ошибкам, которые трудно обнаружить, когда вам приходится иметь дело с 87234 другими вещами одновременно.
источник
Как уже упоминалось, формула Final Fantasy X довольно сложна. Обычно для этой серии, чем позже игра, тем сложнее формула. Вероятно, проще основать свою формулу урона на другой игре полностью. Но в целом, я думаю, стоит обсудить с самого общего уровня, какие формулы ущерба вы можете найти в мире, и как вы можете создать игру, основанную на них. Первое, что вам нужно решить, это какой урон вы хотите получить в конце игры, и какую статистику вы хотите, чтобы игрок мог иметь? Получив это, вы можете выбрать систему формул, а затем оптимизировать формулу и значения оружия, чтобы отражать эти диапазоны во времени.
Чисто на основе статов
Это хорошая идея, если вы хотите, чтобы ваши персонажи были гибкими с точки зрения того, с какими уровнями врагов они могут сражаться. Подобная формула будет зависеть только от характеристик игрока, его экипировки и характеристик врагов. Эти формулы обычно довольно просты. Final Fantasy Legend II (см., Например, http://www.shenafu.com/ffl2/weapon.php , имеет оружие, наносящее урон по простой формуле:
Подобная формула хороша, если вам нужен очень простой метод оценки урона или быстрый переходный момент для модификации урона, основанный на других факторах, таких как навыки и слабости стихии.
Чтобы показать, насколько широко эта формула действительно может пойти, рассмотрим формулу ущерба для Inflation RPG, игры для Android и IOS (см. Http://inflation-rpg.wikia.com/wiki/Calculations ). Формула сильно зависит как от характеристик, так и от экипировки. Каждый элемент экипировки имеет две характеристики - бонус к статистике ATK и значение множителя. У некоторых единиц оборудования низкие множители, но высокие бонусы, у других низкие бонусы, но высокие множители. Для персонажа, у которого только 10 АТК, боевой топор с бонусом 5000 АТК, но низким множителем 145%, является отличным выбором. Общий урон есть
(10+5000)*1.45 = 7264
, но Estoc с 0 бонусами и множителем 300% - плохой выбор - урон есть(10+0)*3 = 30
. Позже в игре персонаж с 5000 атакой предпочел бы переключение оружия.На основе статистики и уровня:
Хорошим примером этого являются Final Fantasy V, VI и Final Fantasy XII (см. , Например, http://www.gamefaqs.com/ps2/459841-final-fantasy-xii/faqs/45900 ). Формула для мечей в FFXII:
и формула ущерба для посохов:
Они очень похожи, но обратите внимание, что формула меча зависит только от силы и уровня, в то время как формула посоха зависит от силы, магии и уровня. Преимущество этой формулы заключается в том, что она дает игроку два пути роста - построение своей статистики или повышение уровня. Недостатком является то, что он также наказывает персонажей в обоих направлениях. На самом деле это позволяет игроку повышать свой уровень, чтобы увеличить выходящий урон (для FFXII это означает увеличение выходного урона на ~ 4% за уровень около 50-го уровня, когда вы учитываете прирост статов), чтобы помочь настроить сложность для его уровня. Уровень комфорта.
Исправлена ошибка:
Формулы фиксированного урона не зависят от характеристик или уровня персонажа, они зависят только от формулы внутреннего урона самого оружия. Они могут варьироваться в зависимости от диапазона, но наносят одинаковый урон независимо от пользователя (за исключением любых других специальных эффектов или черт характера). Лучше всего их использовать, если оружие будет наносить фиксированный урон, а способность экипировать оружие зависит от характеристик и / или уровня. Diablo 2, например, делает это, как и многие роги, у которых есть оружие, которое зависит от бросков кубика. При этом, «фиксированный урон» не подразумевает «неслучайный» - и на самом деле, как правило, есть некоторый элемент случайности нанесенного ущерба.
Это хорошая методология, если вы хотите иметь оружие, которое легко переносить между персонажами, или тщательно контролировать выход урона, который могут наносить персонажи в определенных точках игры, если вы знаете, к какому оборудованию у них есть доступ (через выпадающие таблицы, сундуки и украсть таблицы).
Еще одно место, с которым вы столкнетесь, - это определенные виды оборудования или предметов в Final Fantasy. Например, 1000 игл всегда наносят 1000 урона. В Final Fantasy Legend II боевые искусства наносят урон по формуле:
Final Fantasy XII также имеет несколько фиксированный урон для оружия, наносящий урон по формуле:
Хотя урон несколько случайный, он варьируется только на 26,5 процента в общем диапазоне, так что вы гарантированно нанесете определенный уровень урона в среднем с течением времени. Эти типы атак полезны для персонажей, которые имеют как низкие характеристики, так и низкие уровни в играх, которые обычно учитывают эти факторы при нанесении урона. Кроме того, они игнорируют защиту цели (хотя формула может быть легко переработана, чтобы соответствовать защите, если вы этого хотите).
источник
у всех игр в финальной серии фэнтези был предел 255 из-за проблемы, с которой вы столкнулись. на уровне 100 статистика будет 255.
Вы говорите об увеличении характеристик со способностями и снаряжением, и я помню, что видел это в играх, но способ, которым это делается, находится в формуле. есть дополнительный шаг, который проверяет модификаторы способностей и экипировки и применяет их после использования статистики.
в вашем случае это будет шаг 21: применить модификаторы способностей шаг 22: применить модификаторы снаряжения шаг 23: окончательный урон.
если вы заинтересованы в Google для окончательных формул фантазии, они там. У меня есть копии реальной боевой механики, включая ИИ для финальных фантазий 4, 6, 7 и 9. Люди взламывали их из оригинальных игр, когда создавали ромы для эмуляторов. Там не так сложно найти, если вы посмотрите достаточно усердно.
самая большая вещь для создания формул - тестирование. создайте сценарий для запуска сражения с обеих сторон и запуска нескольких сотен сражений. меняйте монстров и характеристики и смотрите, работает ли он или убивает все 40 ур., вполне возможно, что боссу на самом деле невозможно убить лол. Подсказка - отключить всю анимацию, поскольку впечатляет, как быстро ИИ могут сражаться, когда никто не смотрит.
источник
Первые 2 вещи:
Как только вы это узнаете, у вас будет достаточно информации, чтобы использовать математические формулы, упомянутые BlueRaja в своем ответе . Просто помните, что не существует такой вещи, как «правильная» формула урона - просто такая, которая соответствует вашему дизайну для того типа опыта, который вы хотите, чтобы ваши игроки имели.
источник
В качестве альтернативы, если вы ищете очень простую формулу, выполните следующие действия:
(Обратите внимание, что это моя идея для формулы,)
Во-первых, для простой формулы атаки вам понадобится всего несколько характеристик. Статистика атаки игрока (это может быть Сила или Магия, в зависимости от типа хода).
Затем создайте переменную с именем MovePower. Это будет зависеть от хода, и лучшие ходы будут иметь лучшую MovePower. Для моей формулы общие команды «Атака» имеют MovePower 5.
Затем установите защиту на основе процента (и, конечно, сделайте невозможным достижение 100% защиты от урона).
Затем, во время фазы атаки, просто умножьте показатель атаки на силу хода и уберите урон, основанный на защите противников! просто!
Вы также можете выбрать другие модификаторы, например, если ход попадет (Точность), если у движения есть еще один дополнительный эффект (Био, наносящий яд,), и выбрать для этого удара, (Точность снова), увеличение / понижение урона. ходы, которые меняют характеристики, т. д. Веселитесь с этим!
источник
По сути, вам нужно выяснить две вещи.
1
Вы можете или пользователь
double
или библиотека большого числа. Выполнение вычислений с большими числами (как, например, в играх с кликами / простоями, часто зависит от таких больших библиотек чисел). В вашем случае числа относительно невелики, поэтому использование 64-битной плавающей запятой обеспечит необходимую гибкость.2
Как вы хотите, чтобы игра вела себя? Некоторые примеры:
ATK
чтобы решить, ударишь ты или нет, и бросить кубик с известным уровнем урона в зависимости от оружия: например, длинный меч 1d8, двуручный меч 1d10, кинжал 1d4. Это не будет удивительно хорошо масштабироваться, если HP будет расти и дальше. Если вы используете,ATK
чтобы определить, попали или нет персонажи, вы можете сделать еще один бросок после успешного удара сATK
* 80% для определения критов.(ATK - DEF) +/- 20%
и в World's End (стратегическая игра RPG). Это будет означать, что атаки против сильного противникаDEF
не могут нанести вообще никакого урона. Для instaceATK = 10
,ENEMY DEF = 12
,(ATK - DEF) = -2
и это также означает , что высокая атака против немного ниже опра, могла бы сделать небольшое повреждение, потенциально делает сражение больше с увеличением HP. Например, сATK = 1010
,ENEMY DEF = 1005
урон будет 5. Урон также будет значительно увеличиваться, еслиATK
он увеличен на небольшой процент. НапримерATK = 1055
, будет наносить на 900% больше урона при увеличении только на 5%ATK
.ATK / DEF * WEAPON_DAMAGE
Это будет увеличиваться более постепенно, когдаATK
илиDEF
увеличивается, и позволит слабому атакующему нанести урон существу с сильнымDEF
.tl; dr Вам нужно ответственно относиться к своим цифрам и выяснять, как вы хотите, чтобы игра велась в разных ситуациях. Некоторые вопросы, чтобы задать себе:
x
битву? Должно ли это быть безнадежным, выигрыш должен бытьy%
менее / более вероятным?источник