image

The Settlers Online

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » The Settlers Online » Тактика и боевые действия » Формула боя


Формула боя

Сообщений 1 страница 12 из 12

1

АХТУНГ!!
Если в одном месте горит и нет времени читать, или с трудом даются русские буквы, то все выводы заключены в выноски и выделены жирным шрифтом

Сидели мы тут в скайп-конфе, с LInfo и думали, как же все-таки просчитываются результаты боя в Сеттлерсах.
И таки разгадали, чем думали программисты при составлении калькулятора.

Итак, что мы имеем:
таблицы юнитов

http://i007.radikal.ru/1012/d7/4fefcd017e63.jpg

и врагов

http://i035.radikal.ru/1012/41/fe41efa0da28.jpg

расшифрую колонки по-порядку:
Einheit - Наименование юнита
Kurzel - Буквенное обозначение
HP - количество хп
Max. - максимальная сила удара
Min. - минимальная сила удара
Durchschn. - средняя сила удара
Trefferchanche - шанс срабатывания
Initiative - Инициатива
Turm - тип войска (башенный или нет)
EP - количество экспы за тушку

Вначале обратили внимание на Средний дамаг, как он получается? Если взять, к примеру, рекрута, то средний дамаг должен быть равен (15+30)/2=22,5. А по таблице 27. Видимо, какие-то коэффициенты.
Поехали дальше, Шанс срабатывание - шо это? Видимо шанс - попадет или нет удар по противнику.
LInfo, который допиливал свой калькулятор боя, предложил следующую формулу боя. Мы помозговали и добили ее до опытного вида (пытались получить формулу минимального и достаточного урона для победы на противником за один раунд при бое "рекрут против разбойника")

dmg = min(rand(15,30)*0,8)*n

где:
dmg - итоговый дамаг
rand(15,30) - рандомный дамаг в диапазоне рекрута (по таблице 15-30)
0,8 - это шанс срабатывания
n - количество юнитов данного типа (здесь: рекрут)

Формула вырвана из цикла в 20 повторов для нахождения минимального значения и переведена в более понятную форму (оригинал на пхп)
Вроде все верно: юнит рандомно бьет с рандомной силой, умножить на количество юнитов в стеке

Но не клеилось.
По сравнению с официальным калькулятором выходили серьезные погрешности.
Официальная вики в машинном переводе чуть не привела к коллапсу серого вещества. поэтому решили думать своими силами.

Полезли в кальк, смотрели по-шаговый бой
вот частичный пример первого раунда

http://s012.radikal.ru/i321/1012/7e/2d5cafd49455.jpg

Что мы видим

Rekrut verursacht 30 Schaden an Pluenderer (10HP)
Rekrut verursacht 15 Schaden an Pluenderer (-5HP)
Rekrut verursacht 30 Schaden an Pluenderer (10HP)
Rekrut verursacht 30 Schaden an Pluenderer (-20HP)
Rekrut verursacht 30 Schaden an Pluenderer (10HP)
Rekrut verursacht 30 Schaden an Pluenderer (-20HP)

Что за цифры в скобочках? Наверное, сколько урона нанес рекрут. Ок. А что это в следущей строке? (-5) Это как? Он сам себе вмазал? Или промахнулся на -5? А как тогда можно промахнуться на -20?
Тогда цифры в скобках - это сколько хп осталось у противника. Но, опять же, как это - -5 хп? Убил и воскресил с 5 хп? Или это кровотечения?
Ну не могли же так заморочиться программисты.

А что это такое - почему все удары у рекрутов по 15 и по 30? а где рандом, неужели нам так повезло? пробуем еще один бой и еще. Везде удары по 15 и по 30.
то есть, либо создатели калькулятора сами не ведали о формулах расчета, либо...

=====================================================
юниты имеют только два типа атаки - минимальную и максимальную.
А каким ударом они бьют решает рандом.. или [b]шанс срабатывания

Проверяем:

(30*0,8 + 15*0,2) = 27 !!!! как в таблице

То есть, получается, что 80% - это шанс нанести максимальный урон
=====================================================

Тогда наша формула в корне не верна.
Мы вернемся к ней чуток позднее

А пока давайте, все же, разберемся с пошаговым боем и странными отрицательными цифрами в скобках.
Теперь мы знаем, что юниты бьют либо свой минимальный, либо свой максимальный дамаг.

Смотрим на бой.
Что будет, когда рекрут ударит 30 дмг? у разбойника останется (40-30)= 10 хп
Второй рекрут бьет 15 и у разбойника остается (10-15)= -5 хп wtf O_o
Зомби, они среди нас :)
На самом деле, все гораздо проще.

=====================================================
Второй добивает полуживого мародера  и затаптывает его тушку в землю.
Третий рекрут бьет уже второго мародера, четвертый также добивает и вбивает  в землю
И самое главное: когда бьет Генерал (120), он не убивает одним ударом троих :), а убивает одного, нанося ему 120 дамага (разрывает нахрен в клочья).
таким образом, самая главная мысль, которая чуть не увела нас в неизвестном направлении - в отличие от героев меча и магии и иже с ними, дамаг, превосходящий хп у единицы противнка, не переносится на следующую единицу противника, а исчезает в небытие.
=====================================================

Поэтому вольная трактовка "у меня 100 рекрутов, поэтому они убьют
(100*(30*0,8+15*0,2)/40)=67,5=67 мародеров" - НЕ ВЕРНА !!.
При небольших стеках этой формулой можно пользоваться, но при большой и разнообразной армии вы можете быть ооочень сильно удивлены результатом боя.

Вернемся к формуле.
Как высчитываются дамаги:
Опять же, в отличие от героев меча и магии, система боя больше подходит под Age of Wonders.
Бой считается для каждого юнита в отдельности

Код:
x = rand (0,100)
if x <= 80
   then
     y = z - 30
   else
     y = z - 15
end

Примерный прикид. Здесь нет проверки на трупность Y, количества сходивших, записи дамага в массив для генерации пошагового результата и общего дамага за раунд. да и незачем это в общепозновательной статье
Принцип: вычислили дамаг, вычли из хп врага, проверили не труп ли, пустили к врагу следущего рекрута или достали нового врага. Циклируем.

Есть еще такая штука как Инициатива
при нападении на форт с собаками. имеющими высокую инициативу, первыми сходят не наши войска, а собаки, затем сходят наши юниты, после этого оставшиеся юниты противника. Если у нас есть кавалерия (с высокой инициативой), то получится бутерброд )

после того, как сходят юниты с одинаковой инициативой происходит промежуточный просчет дамага. то есть, когда сходят псы, с нас вычтут погибших рекрутов, затем сходят наши рекруты и лучники, вражеские мародеры и пращники и подведется окончательный расчет дамага. В случае с кавалерией, промежуточный дамаг будет после ходов коней и псов.

Боссы.
Расчет повреждений не учитывает промежуточные параметры.
То есть, если в конце боя у вас осталось 1,5 солдата, то по окончании боя у вас будет 2 здоровых юнита.
Таким образом, нападать на форты с боссами надо такими войсками, чтобы вынести его в течение одного боя (не раунда, а боя), не считаясь с потерями в личном составе.

UPD

Вижу, идут споры, нужно или нет строить луков.
Мое мнение - нужно, но!
Модель поведения такова: надо составлять армию таким образом. чтобы вынести противника за один раунд. Это всем понятно.
Имеем исходные данные с учетом специфики расчета дамага, который приведен выше.

=====================================================
нам нужно иметь количество рекрутов достаточное, чтобы сдержать дамаг врага (мародеры + пращники) и не допустить их до лукарей, от которых они дохнут аки мухи.

на первых порах достаточно построить 20 луков ( этого хватит, чтобы захватить правый сектор)
после захвата правого сектора вы пойдете на северо-восток
для него будет достаточно 30-40 луков
=====================================================

сейчас у меня 40 луков и мне хватает с головой, но я уже поднимаю до 50ти

давайте представим, что вы нападаете на форт с 80 мародерами. явно не силами 60 рекрутов. вы накопите, как минимум 100.
итак, расклад боя по версии калькулятора:
100 рекрутов - 100 мародеров: потери 48-53 (мин - макс) рекрутов
80 рекрутов, 20 лукарей: 45-50
70-30: 43-49
60-40: 42-48
50-50: 40-46

уменьшать количество рекрутов ниже смысла нет, так как они не защитят лукарей в большинстве боев.

взглянем на итоги:
1 вариант - давлю зергом рекрутов - теряю половину войска
2 вариант - сбалансированное войско - я сохраняю жизни до 10 рекрутам
профит 10 рекрутов каждый бой, раз за разом
легко посчитать, какая экономия у меня будет и как быстро я зачищу сектор

но у нас зачастую идут смешанные бои:
второй пример, реальный форт, 50 мародеров и 20 пращников
не буду грузить, приведу сразу оптимальные результаты:
100: 48-57
50-50: 34-41
40-60: 35-40

50 рекрутов и 50 лукарей (40 рекрутов, 60 лукарей) спасают жизни в среднем 13-17 рекрутам !!

Какой итог всему этому? я побеждаю гораздо выгоднее со стороны экономики, моя армия более мобильна, а значит более часто может вступать в бой, что означает более быструю прокачку и более раннее открытие новых технологий.

однако, когда в бой вступают собаки, то лучники становятся малоэффективными, так как собаки атакуют сперва их.
против собак надо использовать конницу или милицию (если вместо луков в отряде будет милиция, то дамаг сохранится, а собаки атакуют рекрутов, так как собаки атакуют юниту с наименьшим количеством хп)
прежде чем вступить в бой, поиграйтесь с калькулятором.

Отредактировано hronorog (2010-12-30 01:48:41)

+2

2

Ох ты батюшки кто то все токи перевел. Nedo, эй Nedo, иди сюды, для тебя родимого на русском, ты у нас всех больше жалуешься на буржуйский немецкий язык ))

Сам тему читану завтра, но по боссам скажу уже сейчас, вы некогда не вынесешь босса, с одного захода, и не мечтайте. Здесь все предусмотрено.

И про инициативу, мое мнение, она пока работает только эм как сказать... в бета режиме. Ну сами посудите, мертвые войска тоже ходят, тобишь мы ходим первыми, крошим врагов на колбасу, а они потом крошат нас, но уже с нулем хипов... так что тут кто первый ходит пока не доработано. Я думаю это будет иметь колоссальное значение, если все токи кто то допрет сделать так, что если ты вальнул чувака он больше не может нанести урон. (у меня температура, могу тупить, но помойму я прав). Все по всему остальному отпишусь завтра.

Отредактировано WWM (2010-12-26 04:34:39)

0

3

Я в этой конфе в скайпе нахожусь где обсуждали =) так что я мимолётом читал их обсуждения =) многое пропустил... в БФ гонял... а так по сути статейка хорошая... про боссов... взял 200 милиции... вынесли за 1 раунд =) если брать медяху и лукарей то да... 200 не вынесут первого босса за раунд...

hronorog лови плюсик кармы =)

Отредактировано Nedo (2010-12-26 04:51:41)

0

4

сяп, тока не я один все это намудрил,
не забывайте о LInfo

0

5

насчет инициативы будем проверять на своих шкурах, а пока лишь теория + можно попробовать на калькуляторе немецкой.

данный калькулятор утверждает что сначала нападают более инициативные юниты. Пример:
Войска игрока:
А - средние

Войска компьютера:
1 - шустрые
2 - средние

Ведение боя:

Раунд 1:
Быстрая битва:
1 нападают на А

Нормальная битва:
А нападает на 2, если А выносит 2, то дальше А нападает на 1
2 нападает на А

Раунд 2:
Если А не вынес все 1, то происходит опять быстрая битва:
1 нападает на А

Нормальная битва:
....

и т.д.

Надеюсь не сумбурно написал.

0

6

Nedo написал(а):

про боссов... взял 200 милиции... вынесли за 1 раунд

а ты видел голого босса !??* иди попробуй вальни его 200 миллиции за один раунд, а я посмотрю, калькулятор тебе в помощь. Голого босса да, но босса и 150 бойцов в плюс, хренас два миллиция его вынесет

Отредактировано WWM (2010-12-26 18:20:39)

0

7

Иначе я не понимаю смысла введения инициативы, ведь все равно противник атакует в полную силу, даже если мы на своем ходу вынесли его в 0.

как я уже написал выше, я думаю это просчитывать на данный момент бесполезно, сами посудите трупы ходят... это конкретная недоработка разрабов, надеюсь она будет после беты доработано...

+ я вообще пока нет смысла сильно что то считать, надо увидеть сначала так сказать исходник, что получиться из боев, ведь мы надеемся что у разрабов есть мозги и они не оставят все как есть.. тобишь живых зомби

Лано такой вопрос, а вы на реальном бое проверяли !??* то есть, если вы проверяли на калькуляторе, вы у верны что в настоящем бою, все токи средний урон может быть нанесен врагу, и в калькуляторе разрабы просто замарачиваться не стали, вводя и щитая его, и просто дали два значения радомом !??*

че то я не подумал, что в игре значения не пишут (((

Отредактировано WWM (2010-12-27 15:28:12)

0

8

Спасибо, полезная инфа... алсо запилите меня в скайп тоже ^^

0

9

добил пост с выкладками про соотношение луков в армии

0

10

при чем тут зомби, никаких зомби нет.
просто вы не путайте бой с пошаговым, на самом деле в одном раунде войска бьют одновременно (не считая инициативу),
просто визуализировано в игре это так как будто по очереди.

0

11

при чем тут зомби, никаких зомби нет.

там был сарказм и доля шутки, жаль, тега [irony] нет здесь

подредактировал пост для самых ленивых

0

12

...

Отредактировано EcSYZ (2011-02-03 20:57:28)

0


Вы здесь » The Settlers Online » Тактика и боевые действия » Формула боя