Лагерная игра «Мафия» на 50+ человек

в 7:25, , рубрики: unity3d, Игры в реальном мире, Лагеря, мафия, разработка игр, создание игры

Лагерная игра «Мафия» на 50+ человек - 1
Для понимания статьи стоит знать правила игры «Мафия». Пример правил можно прочесть тут.

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

Всё началось с того, что я приехал готовить детский лагерь в место, где прямо в этот момент проходил уже другой наш лагерь. Вожатые того лагеря мне начали жаловаться на то, что дети не хотят играть ни в какие игры, кроме Мафии. И хоть дети и были довольны, играя постоянно в одну и ту же игру, вожатым она успела осточертеть. А так как у нас в лагерях работают волонтёры, то всегда хочется, чтобы кроме детей и сами вожатые тоже получали удовольствие от происходящего.

Тогда я предложил вожатым как-нибудь видоизменить игру Мафия, чтобы добавить ей жизни. «Но как мы можем изменить игру Мафия?» — спросили меня вожатые. Я задумался…

Ранняя попытка изменить игру Мафия

Какое-то время назад я проводил видоизменённую Мафию на команду из 14-ти человек. Тогда, чтобы закрепить информацию про одну преступную организацию 19-ого векаEN, я внёс в игру довольно маленькое изменение: Я повесил на стену самодельный календарь и перед началом игры объявил, что Мафия не сможет убивать в один определённый день недели, как и некоторые члены той преступной организации.

Сразу скажу, что игра прошла так себе — я зачёркивал на календаре каждый ход по одному дню. Учитывая то, что каждую ночь мафия убивала одного мирного жителя, и каждый день мирные жители убивали одного подозреваемого, то на всю игру уходило меньше недели. А значит день, когда нельзя было убивать, наступал всего один раз за игру. Фишечка не выстрелила, но ребята с удовольствием поиграли в Мафию. Как обычно.

Мафия на 100 человек

Да, это не опечатка, игра действительно изначально планировалась на 100+ человек. Но удалось её провести только на 52, поэтому я пишу в заголовке о том, о чём точно могу говорить.

Придумывание изменений

Первое, от чего я хотел избавиться — вылет из игры. Я считаю, что нелюбовь к играм на вылет, это не моя личная прихоть, а это объективная и важная часть придумывания любой игры, которую должен понимать каждый создатель игр. Как-никак, основная цель любой игры — развлечь людей. А когда человек вылетает из игры, то мы лишаем возможности получать удовольствие человека, который хотел его получить. Он оказывается наравне с человеком, который изначально вообще не хотел играть, и тупо сидел в углу и смотрел, как играют другие.

Вылет из игры

В игре Мафия это особо заметно — в первый же день выбывают 1-2 человека, которые потом вынуждены ждать, пока игра окончится и начнётся занова, чтобы наконец-то поиграть.

Пример частичного решения: Пастер-Пыж (18+)

Давно, когда я ещё играл в местный (Рижский) КВН, мы периодически командой собирались ночью и играли в «Мафию» и «Контакт». Тогда я придумал частично решение полного вылета из игры Мафия. Хоть и не на долго.
Изначально была такая роль — «Пыжик» (насильник). Этот персонаж выбирал ночью (отдельно от мафии), кого «изнасиловать», и этот человек не мог весь следующий день участвовать в обсуждениях и голосовать. Роль довольно забавная, но весь смысл его хода терялся, если мафия решала той же ночью убить того же человека, которого он пыжил. Человек и так молчал, потому что был убит. Тогда я изменил его на похожего персонажа — «Пастер-Пыж». Это тот же самый Пыжик, но который перед изнасилованием отпускает грехи. Если человека убивает мафия в ту же ночь, как над ним поработал Пастер-Пыж, то человек с небес может сказать свою последнюю фразу, и в день своей смерти ещё может голосовать… Но после этого он становится обычным игроком, выбывшим из игры.

Наша команда вообще славилась чёрным юмором, так что не обессудьте из-за шуток с изнасилованием и священниками…

Лагерная игра «Мафия» на 50+ человек - 2
Член нашей команды КВН — Пеня. Думающий о своей молодости в лесу.

Но чем можно заменить смерть? Тем более, когда она является основной механикой игры.
Я подумал о депортации. Это как раз подходит к сеттингу, что группа людей является географической локацией — городом. Дальше нужно просто придумать, чем занять депортированных людей на этой локации, чтобы для них игра продолжалась.

Я собирался проводить игру на pre-camp'е (несколько дней до лагеря, когда идёт подготовка) для вожатых; и посчитал, что вожатых со всем остальным стаффом будет около 100 людей (я ошибся, но об этом ниже)
Так почему бы не провести игру для всех сразу? Я разделю людей на группы, в которых они будут играть в обычную мафию, с обычным числом людей, но вместо того, чтобы убивать людей, они будут депортировать людей в другую группу. Отличный способ избавиться от мафии на своей локации, и в то же самое время усложнить игру другой группе, если в игре будет соревновательный элемент.

Соревновательный элемент

Если никто в Мафии не умирает, то нужно какое-то другое условие победы. Но, чтобы с локации всё ещё нужно было стараться изгнать мафию, а ошибочная депортация мирных жителей ухудшала ситуацию для остальных мирных жителей. Пусть они соревнуются, какая локация соберёт больше денег. Каждый игрок будет проносить в казну локации 100 условных единиц денег каждый день. А мафия, значит, будет их воровать.

Что делать мафии

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

Загадки

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

Сеттинг

Итак, у нас есть основные механики игры. Нужен сеттинг — окраска, в которой всё будет происходить. Темой лагеря была «Америка 20-ого века», и я подумал, что к нашей механике неплохо подойдут колонии Британии. Америка, Ямайка, Нигерия, ЮАР, Индия, Австралия. Темы лагеря вообще не обязательно было придерживаться, ведь игра для вожатых, так что несоответствие временного промежутка не критично. И так, каждая локация — одна из колоний Британии. Ведущие (я и напарница) — сама Британия. Так же, в каждой колонии будет по наместнику Британии — локальному ведущему, который будет вести игру в конкретной колонии — следить за тем, кого и куда депортирует мафия ночью, и кого — мирные жители днём. Так же, эти люди смогут ведущим сообщать важную информацию для подсчёта денег — количество мирных жителей и мафии за конкретный день.

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

$Stolen=Colony_Income * left ( frac{Mafia_Quantity}{Innocents_Quantity} right )$

Формула работает, и её не так уж сложно вычислить игрокам при помощи реверс-инжинеринга.

Эта формула была известна только мафии. Мирным же жителям нужно было дойти до неё логически-математическими рассуждениями.

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

Подготовка

На подготовку не хотелось тратить слишком много времени. Как-никак игра проводится один раз, и для вожатых.

Карты

Нужен способ распределить роли. Играя в маленькой группе, подходят и простые похлопывания игроков, пока у них закрыты глаза… Но это не честно, и нельзя проверить, если кто-то жульничает. По-этому лучше иметь карты с ролями. Конечно можно раздавать и не карты, а просто бумажки… Но согласитесь, что карту держать в руках приятнее. А ещё её можно утащить с игры как сувенир.

Так что я купил колоду карт, подготовил бумажки, и попросил напарницу, и девочку, которая будет при проведении одной из наместников Британии, помочь мне наклеить бумажки на карты. Вышло вполне неплохо:
Лагерная игра «Мафия» на 50+ человек - 4
По законам жанра — вся полезная информация на карте.

Ролей было всего две — мафия и мирный житель. Большее количество ролей бы сильно тормозило такую большую игру. Но для окраски я решил добавить ничего не значащие профессии мирным жителям. Согласитесь, что приятнее быть хоть немного уникальным «Лавочником», чем серой массой «Мирных Жителей».

Клей-карандаш на удивление хорошо держал бумагу на глянцевых картах. Немного раздербанил одну, чтобы вам показать:
Лагерная игра «Мафия» на 50+ человек - 5

Деньги

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

Microsoft Excel

Разумеется, первое что приходит в голову: Сделать всё в Microsoft Excel. Он уже умеет делать различные вычисления, и можно сделать так, чтобы их результат красиво отображался на экране. Но так как вычисления происходят раз в день, должны храниться промежуточные результаты вычислений (чтобы показывать сумму за все дни), и входная информация постоянно меняется (количество мирных и мафии), то всё равно придётся использовать VBA.
Конечно это вариант, который даже будет работать. Но есть вариант получше.

Unity3D

У меня уже был опыт в использовании Unity3D для отображения состояния игры на проекторе. И хоть с Юнити придётся писать большее количество математики вручную, у Юнити есть одна килер-фича, из-за которой я буду всегда использовать именно Unity3D для подобных проектов: Поддержка двух мониторов, с отображением разной информации на каждом мониторе. Это значит, что пока игроки будут видеть только общее число денег каждой колонии, и общее количество игроков каждой колонии, я на своём ноутбуке смогу видеть информацию, которая им не должна быть известна — количество мафий в колонии, и количество украденных денег. А так же, кнопки управления, которые бы только ухудшали внешний вид игрового экрана.

Так это выглядит в редакторе:
Лагерная игра «Мафия» на 50+ человек - 6
Слева — экран ноутбука. Справа — проектор.

Лагерная игра «Мафия» на 50+ человек - 7
Отдельно экран ноутбука

Как отображать на двух мониторах разную информацию при помощи Unity3D

Не буду вдаваться в совсем технические аспекты, которые и без меня можно нагуглить. Основной смысл в том, что создаётся две камеры, смотрящие на одну и ту же сцену. Но они привязываются к разным мониторам в настройках камеры:
Лагерная игра «Мафия» на 50+ человек - 8

Дальше в Culling Mask выбираете, какие слои вы хотите, чтобы эта камера отображала:
Лагерная игра «Мафия» на 50+ человек - 9

И кладёте интересующие вас объекты на нужные слои.

Не забудьте активировать оба монитора при включении программы вот таким скприптом:

	void Start()
	{
		if (Display.displays.Length > 1)
			Display.displays[1].Activate();
		if (Display.displays.Length > 2)
			Display.displays[2].Activate();
	}

Правила Австралии

Как я писал выше, в Австралии лежит листик, с более подробными правилами. Игрокам же в начале игры объясняется минимум, и обращается их внимание на то, что Австралия в начале игры пустая.

Лист с правилами Австралии

Лагерная игра «Мафия» на 50+ человек - 10

Проведение

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

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

Итог

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

Автор: Константин Давыденко

Источник


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js