Автор: TOK
(v. 1.0 от 3 апреля 2009)
Статья написана на основе топика "Наша ГЕНАша..." господина Ст@нисл@вича
Самый неблагодарный раздел. Все наши теории и гипотезы основаны на наблюдениях других игроков, на основе старых правил и мнения специалистов в области математики и программирования. Данная статья ни в коей мере не направлена на навязывания мнения о генераторе другим игрокам. Вы вольны думать что хотите, но других теорий никто не выдвинул.
Генератор - это процесс. Процесс протекания матча. На сегодняшний день существует три теории о том как происходит этот процесс:
1. Единоборства
2. Борьба линий
3. Борьба на участках поля
Скорее всего эти варианты игрового процесса пересекаются, но главное понять суть этих процессов по отдельности и как они влияют на сам поединок.
Теория единоборств.
Что доказывает существование единоборств?
Как минимум, на исход матча колоссальное влияние оказывают изменения тактики и замены по ходу встречи. При этом в большинстве случаев такие приемы не выставляются как безусловные. А значит, влияние этих аспектов не может быть подсчитано сходу, так как неизвестно, будут ли эти действия произведены в матче вообще, а если будут, то когда именно. Это уже приводит к необходимости в том или ином виде моделировать ход матча по частям как некую последовательность событий.
На этом мои наблюдения касательно срабатывания триггеров условий не исчерпываются. Если я выставляю условное действие начиная с некоторой минуты М, то в большинстве случаев оно срабатывает на минуте М+1. Но при этом с завидной регулярностью такие условия стреляют и на М+2, и на М+3, а то и на М+4. Для меня это является косвенным, но весомым аргументом в пользу модели единоборств в том или ином виде. Ведь она представляет модель игры разбитой на цепочки успешно пройденных атакующей командой единоборств. То, каким образом закончилась цепочка, определяет чем начнётся следующая цепочка. А вот моменты между цепочками образуют "остановки в игре". Разумеется, это не значит, что игроки на 30 секунд бегут попить водички или прочей ерунды. Просто это те моменты, когда могут быть обработаны заданные тренером условия. Это выглядит крайне разумным: ну нельзя же, например, посередине цепочки единоборств заменить игрока, участвующего в эпизоде. Ну и тут всё сразу встаёт на свои места: длина цепочки заведомо не определена. Какие-то из них могут быть совсем короткими из одного неудачного единоборства, другие же могут быть очень затянутыми. Так что если (М+1)ая минута пришлась на розыгрыш некоторой затянувшейся цепочки, то выполнение назначенного условия будет отложено до обрыва этой цепочки. Вот и появятся задержки в срабатывании триггеров на несколько минут.
Вычислительная сложность обсчёта такой модели без лишних заморочек - смехотворна. Даже в серьёзных симуляторах, где имеет место действительно сложное поведение игроков, обладающих множеством параметров, матч между двумя компьютерными командами будет рассчитан очень быстро, если не придётся красиво отрисовывать всё в реальном времени на экране для пользователя.
Очень важно правильно понимать смысл и область применимости всей гипотезы единоборств.
1. эта модель не является точной копией генератора, а лишь с некоторой точностью его описывает
2. достигаемая точность значительно выше, чем при попытках анализировать матчи глядя на красные и зелёные полоски в отчёте
3. модель непригодна для точного предсказания результатов матча
4. модель ни коим образом не исключает неожиданных результатов в матчах. в основе этой гипотезы - генерация псевдослучайной величины. а никакая невырожденная случайная величина не обязана принимать некоторого нужного вам значения, она лишь может принять это значение с той или иной степенью вероятности.(k4despair)
Есть ещё одна наводка - многие должны знать, что Акар участвовал в создании ещё одного онлайн-менеджера. А там очень подробно описана генерация матча. Мне сильно сдаётся, что эти процессы там и здесь весьма похожи:)
Принципы генерации матча другого проекта:
Каждый игрок на поле представлен как отдельная полнофункциональная единица. Игрок, владеющий мячом, собирает данные об игровой ситуации на поле, анализирует эти данные, а затем принимает решение о дальнейших действиях. Список возможных вариантов:
- Пас (несколько вариантов);
- Удар;
- Обыгрыш / отбор;
- Контроль мяча с целью определить более лучшие варианты для продолжения атаки;
- Затяжка времени;
- Вынос мяча подальше от своих ворот, в случае, если ситуация на поле сильно напряженная;
- Движение вперед.
Выбор действия зависит от текущей ситуации: закрытости и усталости игрока, настроек на игру и тактической схемы, положения партнеров и их закрытостей.
А вот выдержка из правил за 2001 год : "2.1 Опасные моменты. Когда возня в центре поля плавно переходит на половину поля одной из команд или в наступательных действиях атакующей команды начинает просматриваться нечто осмысленное или когда стремительная контратака приводит в восторг толпы болельщиков, возникают опасные моменты , на детальной проработке которых и основан наш генератор матчей. В каждом опасном моменте участвуют от двух до десяти футболистов обеих команд (от выхода один на один до позиционной атаки). С определённой вероятностью в обороне собственных ворот могут участвовать как защитники, так и игроки средней линии и даже нападающие (естественно, для последних вероятность оказаться там значительно меньше, однако и они могут приходить на помощь своей обороне). И только вратарь неизменно стоит на последнем рубеже и участвует в каждом моменте возле собственных ворот (правда, иногда защитники справляются и без его участия). Чилаверты (может быть только пока) не предусмотрены. "
Теория единоборств даёт возможность оценить действия каждого футболиста на поле и его вклад в командный результат:
2.5 - сыграл отвратительно, подвёл команду;
3.0 - играл плохо, стал виновником гола;
3.5 - допускал грубые ошибки;
4.0 - сыграл ниже своих возможностей, ошибался;
4.5 - сыграл нормально, но пару раз ошибся;
5.0 - ничем выдающимся себя не проявил;
5.5 - сыграл в своем стиле;
6.0 - играл хорошо, помог команде;
6.5 - хорошо работал на поле;
7.0 - создал/прервал несколько опасных атак;
7.5 - провел удачный матч, отличился;
8.0 - участвовал почти в каждом эпизоде;
8.5 - был своеобразным лидером команды;
9.0 - отлично сыграл, забил гол или два;
9.5 - играл просто супер, забил несколько голов;
10 - это второй Пеле (или Яшин), несомненно!
(выдержка из старых правил)
Таким образом, исходя из всех вышеописанных данных, можно представить генерацию единоборств ввиде:
1. Игрок, владеющий мячом, собирает данные об игровой ситуации на поле, анализирует эти данные, а затем принимает решение о дальнейших действиях - GK выбивает мяч, который может попасть к разным игрокам, но с разными шансами (№2-номер игрока согласно заявке на матч - (10%); №3(10%); №4(10%) №12(мяч попал противнику-5%)и т.д. ) - Пас (несколько вариантов);
2. Идёт рендом, мяч получает игрок №7СМ, происходит единоборство с его оппонентом на поле - Обыгрыш / отбор;, при этом появляются такие моменты - фол, потеря мяча(аут), травма, карточка и т.д..
3. Идёт рендом, если игрок №7 выигрывает единоборство, то идёт рендом на его действие(пас/удар/прострел, каждый из вариантов имеет свою вероятность) - Пас (несколько вариантов);
4. №7СМ выбрал пас, рендом кому (Gk-1%, сопернику-10%, CD-3%, CF-20%, LW-20% и т.д.) если команда атакует, то вероятность паса в линию атаки выше. Если всё же рендом даёт пас назад или соседнему игроку, то это - Контроль мяча с целью определить более лучшие варианты для продолжения атаки; - Затяжка времени; или - возня в центре
5. Мяч у №10CF - Движение вперед. единоборство с защитником соперника - Обыгрыш / отбор;, если единоборство выиграно, то рендом на действие удар/пас/выход один на один, прострел/потеря мяча , где вероятность события разная.
6. Допустим происходит удар, теперь идёт рендом (1. Гол, 2. Мимо, 3.Вратарь взял)
Мы рассмотрели одну из возможных цепочек событий в матче. Такими вот цепочками насыщен весь матч и по результатам действия игрока в матче, в конкретных эпизодах цепочки, он получает свою оценку за матч. На качество игры игрока в эпизодах влияют моментные спецухи типа:
СМhttp://www.virtualsoccer.ru/rules.php?page=64#p1210ОТhttp://www.virtualsoccer.ru/rules.php?page=64#p1216Если её сравнивать со стилевой спецухой, которая весь матч на 4-м уровне даёт к силе 40% прибавки, а наша только 32%, то какой смысл в этой спецухи? Это получается просто говноспецуха, которую нет смысла качать. И Aкар должен это понимать.
Однако, если бы понимать цифры как +32% к вероятности совершить отбор или прервать атаку или ещё к чему то , то это совершенно меняет наше отношение к этой спецухе и обьясняет, почему она не отображается в отчёте о матче.
На чём основывается моё предположение?
Я заметил, что игрок 30 100 Уг4 Шт4 будет намного успешнее(не путать с чаще) пробивать штрафные и угловые, чем игрок 30 132 (это наши +32 к силе). К сожалению, статистикой не обладаю, так как у меня нет таких игроков, а вот за соперниками слежу:)
Единоборства по зонам или участкам поля.Схема№8_spart_vs_brit
Собственно, теперь возникает вопрос, каким образом мяч доставляется к воротам соперника? Как бегают наши игроки по полю?
Если учитываются зоны, то в этом случае вероятно наша схема накладывается на схему соперника и игроки стоят неподвижно, а мяч рендомно передаётся от одного к другому. Допустим мы играем за красных(британь). Рассмотрим расстановку игроков:
RD, LD - свободны, и в единоборства на протяжении матча не вступают.
CD - берёт под опеку CF
DM - против AM, CM
CM - DM, DM, CM, AM
RW, RF - жмут LD
CF - CD
LW, LF - жмут RD
Вот что по этому поводу говорит Dos:
ИМХО, юзаются зоны, при эпизоде рассчитывается сумма сил игроков, которые по позициям должны там находиться с учетом всех бонусов, штрафов, моментных спецух. Это прекрасно ложится на те результаты, которые проявляются, например, в матчах, где преимущество в РС-е одной команды над другой размазано по всему полю, в то время как слабая команда максимально усиливает свою защиту. Что толку, что у монстра +500, если эти +500 сидят во вратаре и 3-х защитниках, которые за весь матч в игру практически не вступают?
А вот как представляет себе генерацию Dus:
В общем то, я уже несколько раз писал - генерация матча построена на эпизодах. Это было прописано в старых правилах. Вот как я себе это представляю. Допустим, у команды "А" тактика "все в атаку", у команды "Б" "атакующая". Мяч выбит голкипером команды "А" и попадает (допустим, напрямую попал, без доп. пасов) игроку этой же команды. Значит, эта команда считается атакующей. Происходит единоборство нападающего с защитником. Все бонусы/штрафы от стиля, трибун, капитана и т.д. учтены, остаются нестилевые спецухи типа От, У и т.д.. Нападающий получает свою прибавку от У, оборонец от От и Оп, далее нападающий получает плюс процент от атакующей тактики, оборонец - минус процент от атакующей тактики(т.к. он защищается). Всё досконально, без округлений, в гене рассчитывается - и вот он, чистый эпизод. Например, у форварда сила 200.34, у оборонца 170.23. Далее в дело вступает любимый всеми рандом и решается, обыгран ли защитник:) Если да, то атака развивается далее, если нет - мяч отбирается и уже команда "А" считается защищающейся.
PS Да, ещё добавлю, что при тех же условиях, если у форварда будет сила 34, а у оборонца - 204, то не всегда оборонец выиграет это противостояние:) Тервер, однако:)
Единоборства с игрой по линиям.Рассмотрим другой вариант доставки мяча к воротам соперника. В этом случае идёт противоборство по линиям, например, красные атакуют британью, центр у них слабый, поэтому стиль ориентирован на длинные пасы, чтобы от защитников сразу нападающим, иначе центральную линию спартак порвёт. И вот, мяч у линии нападения RW, RF, CF, LW, LF против линии защиты LD, CD, RD. Если защитники обыграны, то происходит единоборство с GK.