3 мин.
0

Как я строил пирамиду лиг для футбольного менеджера — и чуть не сделал её высотой в 37 этажей

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

Условие простое: все игроки играют в одной общей лиге. Новичок берёт клуб внизу и тащит его наверх. Наверху — Высшая лига, восемь клубов. А вот что делать, когда людей становится больше?

Как я строил пирамиду лиг для футбольного менеджера — и чуть не сделал её высотой в 37 этажей

Первая версия: лестница

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

Для 50 клубов это работает отлично. Но я посчитал, что будет при тысяче, — и получилась лестница высотой в 37 лиг. Новичку, чтобы добраться до Высшей, нужно было бы подниматься 36 сезонов подряд, ни разу не оступившись. Сезон длится два дня, то есть это почти два с половиной месяца идеальной игры. Никто столько не выдержит.

Вторая версия: группы

В настоящем футболе нижние дивизионы делятся на зоны: Север, Юг и так далее. Я сделал так же: чем ниже уровень, тем больше на нём параллельных групп. Четыре верхних уровня — по одной лиге. Следующие четыре — по две группы. Дальше — по четыре, потом по восемь, по шестнадцать. Каждые четыре уровня ширина удваивается.

Тысяча клубов теперь умещается в 20 уровней вместо 37. А самое приятное — эта схема растёт сама. Когда свободных клубов внизу становится мало, игра создаёт новую группу, и новичкам всегда есть куда прийти.

Самое сложное: кто вылетает

С группами возникла неочевидная проблема. Допустим, наверху одна лига, а под ней две группы. Из каждой группы поднимаются двое лучших — итого четверо. Значит, сверху должны вылететь тоже четверо, иначе лиги разъедутся по размеру. А если наверху две группы, а внизу четыре? Поднимаются восемь клубов, и вылетать должны восемь — но из двух разных групп. Кого выбирать?

Я сделал так: сравниваются места. Сначала вылетают последние из всех групп, потом предпоследние, и так далее. При равных местах решают очки и разница мячей. И последний штрих — раскладка по группам. Если просто раскидать клубы как попало, одна группа может оказаться заметно сильнее другой.

Поэтому перед сезоном клубы сортируются по силе и раздаются «змейкой»: первый — в группу А, второй — в Б, третий — снова в Б, четвёртый — в А. Как капитаны во дворе выбирают игроков в команды. Группы получаются ровными.

Что делать с теми, кто ушёл

В любой онлайн-игре люди пропадают. Если менеджер не заходит больше суток, его командой управляет автопилот: сам ставит состав и не даёт клубу развалиться. Вернулся — продолжаешь с того же места. Это оказалось важнее, чем я думал: люди пропускают день-два, и потерять клуб из-за этого было бы обидно.

Что я понял: Любую схему надо пересчитывать на рост в десять и сто раз. То, что красиво работает для пятидесяти человек, может развалиться на тысяче. Готовые решения из реального мира — зоны, змейка при жеребьёвке — часто лучше придуманных с нуля. Их уже обкатали миллионы людей. Правила должны быть простыми для игрока.

Сложная логика вылета живёт внутри — а игрок видит одно: «двое лучших поднимаются». Если интересно, в следующий раз могу рассказать про трансферный рынок — как сделать так, чтобы богатые клубы не скупили всех лучших игроков.

Поиграть: mliga.su