Футбольный менеджер ФБМ. Объявление 20.02.2019
Играть в Футбольный менеджер: https://my-fbm.com/play/
Мы готовим большую модернизацию по симуляции игры. Текущая модель симуляции продумана достаточно неплохо. Для России. И для неискушенных любителей футбольных менеджеров. Но мы стремимся к совершенству и собираемся создать симуляцию, достойную лучших игр жанра.
Исходя из этого планируется создать симуляцию на основе трёх китов:
1. Основной каркасный набор факторов (всё, что есть сейчас, но в переработанном алгоритме по системе начисления баллов). Это вводные данные на начало матча (расстановка, тактические установки, состояние и уровень футболистов, а также ряд других функций + совершенно новые факторы, которые будут внедрены в игру).
Например, массив данных ШАНС НА ПОТЕРЮ МЯЧА, состоящий из 15-20 факторов, которые, суммируясь, сравниваются у команд и футболистов между собой, образуя итог в виде сравнения баллов и однозначного исхода той или иной ситуации на поле.
2. Дополнительные факторы и зависимости, которые будут создаваться в виде сценариев и могут достигнуть сотен различных связок. Эти факторы будут влиять на основной каркасный набор. И что самое важное — они будут легко подвергаться дополнениям и модификациям. Можно будет даже работать над созданием новых ветвей совместно с пользователями игры и внедрять их пачками без трудозатрат.
Пример связки: Если команда играет в пас верхом, и у неё есть левый защитник, и установлена функция подключения защитников, а игроку менее 30 лет, при этом скоростные навыки и навыки навеса выше 90%, а у соперника правый полузащитник имеет на текущий момент матча физ форму не выше 80, то данный игрок получив мяч, получает +20% к баллам, относящимся к точному пасу, а также при первом проходе получает 100%ный шанс навеса на нападающего своей команды.
И что самое интересное — такие связки будут синхронизироваться с 2д-режимом, на порядок разнообразив футбольный менеджер.
3. Бонусные карточки турбо-влияний, которые будут ограничены в количестве и временных интервалах. Такие карточки смогут влиять на события в матче на короткий промежуток времени.
Примеры:
— карточка «Гипер-концентрация». После активации — все отборы в течение 10 минут выигрываются своей командой.
— карточка «Ни шагу назад». После активации — гарантия непропуска мяча в течение 3х ближайших ударов соперника.
Ремарка: Многие знают, что в FBM нет премиум-аккаунтов, супер-футболистов и золотых статусов. Мы следуем своей идеологии и не допустим ситуаций, когда у одной команды мало таких карточек, а у другой — много. При этом некоторое превосходство (за счет 5-ти звездных футболистов, либо тренеров мирового класса), всё же может иметь место быть. Но привилегии будут строго в разумных мерках.
Сроки реализации данной симуляции займут довольно продолжительное время — минимум — от 2х месяцев до полугода до полной её реализации. Более того, наши программисты примутся за работу никак не раньше, чем закончат ряд глобальных обновлений по редизайну игры.
Но работа уже начата. И мы в скором времени поделимся с вами подробностями и более детализированной информацией.
Тем временем, мы уже в самые ближайшие дни внесем в симуляцию игры одно небольшое, но очень важное обновление, которое сделает результаты матчей более честными. Обновление основано на концепции xG (ожидаемых голов в матче). Изменению подвергнется самый последний шаг исхода ударов по воротам.
И основной его смысл — если команда реально сильнее оппонента, полностью подготовленная тактически, прокаченная и грамотно сбалансирована по расстановке, много бьет по воротам — она будет забивать больше, чем играющий против неё аутсайдер матча.
Предположительное время внедрения — межсезонка к 39му сезону. Даем короткое и более глубокое описания, как xG будет работать в игре:
КОРОТКОЕ ОПИСАНИЕ
1. Первый удар команды в матче = теоретический шанс на гол / 100 * практический шанс на гол / 100
Если полученное число меньше чем константа 0,5, гола нет. Если больше – гол есть.
Данное полученное число в случае НЕ ГОЛА записываем в буфер и ждем следующего удара.
2. Следующий удар рассчитывается также = теоретический шанс на гол / 100 * практический шанс на гол / 100
Полученное число складываем с числом, которое было записано в буфер и сравниваем с константой 0,5. Если полученное число меньше чем константа 0,5, гола нет. Если больше – гол есть.
3. В случае, если гол есть, мы полученное число в полном объеме записываем в буфер и ждем следующего удара.
4. С каждым забитым голом константа увеличивается на +1. Т.е. если команда забила один гол, следующий порог константы станет 1,5.
Пример:
Есть факт удара: мы считаем произведение ТШГ и ПШГ удара
SHOOT :: Result:[1]. shootStrength change:[86, failed attempt factor:89], teamAverageStrength:[72], shootReduction:[59->59], PileOn:[0], pileOnGoalMaximum:[50], GoalProbabilities:[{ «1»: 30, «0»: 70 }], Player (Mіhna Beavers), Position:(CFL), Team:[Exeter], PlayerShootAverageStrength (base):[99.75->99.75], shootStrengthPerPosition:[100], matchHomeAdvantageInfluence:[0], rateOfPlay_influence:[0], speedOfPlay_influence:[0], playerLeg_influence:[0]; previous with a ball:[Audzej Semeniuk]. Shoot result probabilities:[{ «1»: 30, «0»: 70 }].
SCORED SHOOT :: Evaluate goal probalility :: Result: [1]. Player [Mіhna Beavers] AVG skills:[82.1] avgShootStrength:[99.75], AVG Opponent [Francis Espinha] skills:[97.3] avgShootStrength:[98.5] => GoalProbabilities:[{ «1»: 62.5, «0»: 37.5 }]
Для этого удара:
0.3*0.625=0.1875
После каждого удара проверка:
1й удар сумма=0.1875. — 0.1875 больше 0.5? Нет. Счет остается прежним.
2й удар: 0.375 больше 0.5? Нет. Счет остается прежним.
3й удар: 0.5625 больше 0.5? Да. Голы команды больше 0? Нет. Счет меняется, удар становится голевым
БОЛЕЕ ПОДРОБНОЕ ОПИСАНИЕ
Расчет xG (ожидаемый гол)
1. Константный барьер
Константа 1го уровня (К1) = 0,5
К2 = 1,5
К3 = 2,5
К4 = 3,5
К5 = 4,5
К6 = 5,5
К7 = 6,5
К8 = 7,5
К9 = 8,5
Константа поднимается уровнем с каждым забитым голом команды.
2. Объединенный шанс на гол (ОШГ)
ОШГ = теоретический шанс на гол / 100 * практический шанс на гол / 100
Первый удар команды в матче – это ОШГ1, второй удар – ОШГ2, и т.д.
3. Формула расчета xG
xG = ОШГ сравнивается с К.
Первый удар в матче:
Если ОШГ1 >= К1, то ГОЛ
Если ОШГ1 <= К1, то НЕ ГОЛ (промах по воротам или не промах, система считает по текущему алгоритму теоретического шанса на гол)
4. Если после первого удара был НЕ ГОЛ, то
К останется К1, а ОШГ1 запишется в буфер (Б) и при следующем ударе:
Если Б +ОШГ2 >= К1, то ГОЛ
5. Если после первого удара был гол
Если после первого удара был ГОЛ, то остаток от (ОШГ1 — К1) запишется в буфер, а также к формуле прибавляется пройденная константа К1 и при следующем ударе:
Второй удар в матче:
Если Б + К1+ОШГ2 >= К2, то ГОЛ
Если Б + К1+ОШГ2 <= К2, то НЕ ГОЛ (промах по воротам или не промах, система считает по текущему алгоритму теоретического шанса на гол)
Ниже будет пример, там тебе станет более понятно как оно работает всё.
Пример:
играет команда, у которой предположим, что всегда теор. шанс на гол 60, а практ. шанс 100.
Первый удар (К2 = 0,5):
ОШГ1: 0.6 (60/100*100/100): итог – гол.
В буфер падает 0.1 и сам барьер К1 (0,5) = 0,6 в буфере
Второй удар (К3 = 1,5):
0.6 (ОШГ2) + 0,6 (буфер) = 1,2. Это меньше чем 1,5: итог – нет гола
В буфер падает 1.2
Третий удар (остался К3 = 1,5, так как этот барьер не был пройден прошлым ударом):
0.6 (ОШГ3) + 1.2 (буфер) = 1,8: итог — гол
В буфер падает 0.3 и сам барьер К2 (1,5) = 1,8 в буфере
Четвертый удар (К3 = 2,5):
0,6 (ОШГ4) + 1,8 (буфер) = 2,4: итог – нет гола
В буфер падает 2.4
Пятый удар (остался К3 = 1,5, так как этот барьер не был пройден прошлым ударом):
2,4, счет 2:0 константа 2.5
0,6 (ОШГ4) + 2,4 (буфер) = 3: итог – гол
В буфер падает 3
….. И т.д.