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

Чтобы способствовать этому делу, я отложил игру и обдумал ее целостно. В этой отсрочке мы упростили правила, остановились на актуальной теме и сформулировали план решения проблемы масштабирования игроков. Чтобы сделать игру как можно более играбельной, мы решили установить фиксированное количество ходов и просто варьировать начальные ресурсы в зависимости от количества игроков. Балансировка игры невозможна, если нет цели, как на самом деле выглядит баланс. Моя цель при балансировке состояла в том, чтобы добиться примерно (50–60)% винрейта для людей при любом количестве игроков. Это хорошо и хорошо, что должно быть ровно 50% при подсчете каждого игрока, но в реальном мире, где совершенство — враг хорошего, лучше иметь план борьбы с отклонениями, чем планировать устранение их всех. Я решил попытаться изолировать отклонения в небольшое преимущество для людей.

Это было сделано по двум основным причинам. Поскольку игроки-люди обычно превосходят гигантов численностью, если бы у людей было небольшое преимущество, количество игроков-победителей было бы максимальным; а кто не любит выигрывать? Это также делает победу гиганта настоящим достижением и идеально соответствует теме. Окруженный со всех сторон нескончаемым потоком людей, великан должен использовать в равной степени хитрость и интриги, чтобы перехитрить тех, кто превосходит его численностью.

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

Настоящую программу для игры в «Друзья Джека» я написал на C++. Сейчас я ни в коем случае не настоящий программист, но демократизация вычислений привела к появлению множества любителей, и это хорошо. Лучше всего его можно описать как один класс, который делает все. Объектно-ориентированный код делает наилучшее впечатление от процедурной программы. Просто код, который написал бы любитель, но и именно тот инструмент, который мне нужен, чтобы сузить разумные начальные ресурсы.

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

Без дальнейших церемоний вы можете найти рассматриваемый код по этой ссылке на github. https://github.com/piggybankgames/jacksfriends