Hold’em, love’em, squeeze’em
Сегодня поговорим о свободе воли. Есть ли она, и что с ней делать. Эй, стойте, не разбегайтесь. Про геймдизайн.
С тех пор, пока я в последний раз играл в покер (было это лет 20 назад), появилась его новая разновидность: техаский hold’em. Я играл в вариацию «каждому раздается по 5 карт, он может менять до трех». В «техаском» все проще: раздается по 2 карты, их менять нельзя, раздается сначала 3 общие карты, потом к ним добавляются по одной еще две.
Из этих 5+2 надо составить выигрышную комбинацию. Вернее даже так: кто дожил до конца (не спасовал), и у кого на руках лучшая комбинация из своих и общих карт — тот победил.
Хотя вы наверняка все знаете, это просто я на 20 лет отстал.
Главный подвох все тот же: «победитель» известен в тот момент, когда была перетасована колода.
Я специально взял «победитель» в кавычки, потому что правильней было бы сказать, что человек с самой сильной комбинацией становится «известен» сразу после того, как колода перетасована.
«Известен» тоже в кавычках, вы только посмотрите! Кому известен? Ну, не знаю, «миру». Или «колоде». Ладно, чтобы не водить вас за ногу: тот, кто раздает карты (и смотрит в них), уже после тасования колоды знает, кто мог бы победить, если бы держался до конца и не пасовал.
Помимо всего прочего, это — прекрасная иллюстрация «свободы воли» и так называемой «судьбы»: вы можете победить в партии даже не с самой сильной комбинацией — для этого надо, чтобы остальные вышли. Изменить же саму комбинацию («судьбу») вы не можете. Аналогично, владея самой сильной рукой, но не зная об этом, можно испугаться и продуть.
Но вернемся к геймдизайну.
Я слышал, что какие-то люди, писавшие свой «техасский покер», долго мучилась написанием к нему ботов, чтобы игрокам было, с кем играть. Тяжелая задача на алгоритмы, искусственный интеллект и прочее. Сотни, тысячи человеко-часов, все дела. Имитация игрока. Ну, вы понимаете.
Ошибка классическая: «AI в играх не должен быть правдивым, а всего-навсего должен выглядеть правдоподобным». Что должен делать бот?
1. С разным успехом надирать игроку задницу.
2. Изображать разные стили игры (агрессивный/дефенсивный).
3. Время от времени лажаться.
Самый простой способ написания бота? Правильно! Поделиться с ним знанием о колоде. После этого бот подчинается коротенькому алгоритмы, а его поведение можно описать несколькими цифрами:
1. Как часто он должен побеждать, если знает, что победит.
2. Как резко он должен пытаться урвать деньги, если знает, что победит.
3. Как часто он должен глупо проигрывать, если знает, что проиграет.
3. Как резко он должен проигрывать деньги, если знает, что проиграет.
Тут из зала кричат, что это шулерство. Все верно. Это шулерство!
Шулеры в поездах так и делают: обладая знаниями о колоде, они разыгрывают перед «лохом» спектакль. С целью лоха раздеть.
Ровно такой же спектакль — но с благородной целью повеселить лоха — могут делать и боты.
That’s what bots are made for!
Монстры
Нельзя не похвастаться. Старший сын (5 лет) сделал собственную коллекционную карточную игру. Нарисовал монстров (и маму тоже заставил), каждому монстру написал силу, у каждого монстра уникальное имя и картинка. Отдельно нарисовал способности, типа «+2 силы». (На картинке слева: монстр с 10 силы и на нем способность +5).
Монстры выставляются напротив друг друга, применяются способности, у кого выше сила — тот победил.
Все признаки игры налицо: набор правил, условия выигрыша, даже какая-то стратегия есть, что-то типа «выставлять монстров с большой силой». Также надо обладать навыками сложения.
Побеждал, естественно, сын. Стал разбираться, что за мухлёж и почему у Кати на картах сила меньше. Оказывается, все по-честному: ну нарисовала мама не страшных монстров — он им поэтому маленькую силу и написал. У него тоже есть два монстра с маленькой силой, «но они девочки».
Любимая игра ребенка (сам не играет, смотрит) — Starcraft II, говорит, что папины игры («лутерсы») не интересные, потому что там только кликать надо, а когда станет большим, будет делать что-то типа Старкрафта, а не тот кал, который папа делает.
Я на такое даже не обижаюсь: папа и правда кал делает, в котором только кликать и надо, даже пятилетний ребенок это понимает.
Геймдизайн в России
Oglaf.com наконец-то нарисовал комикс про геймдизайнера в России.
Прокачка в RPG для чайников
Так вот, про игры.
Представьте себе хорошую RPG. Можно даже сингплеерную — так смешнее. В начале герою можно выбрать характеристики. Не самым лучшим образом, типа «Сила: 5» — почему 5? Нет, ну понятно, что 5 из 20, то есть 25% от эталона, но тем не менее. («Там степенное распределение!», — кричат мне из зала, — «У 99% людей на Земле сила на троечку!»).
Еще можно выбрать внешность, там дела обстоят получше.
Есть 50 вариантов носов, 50 вариантов причесок и 50 вариантов глаз, их них можно составить много (50*50*50) смешных комбинаций, но все равно вместо носа нельзя запихнуть, скажем, пятку или задницу. Если к этому добавить ползунки, цвета и прочее — получим очень многовариантный конструктор с буквально миллиардами комбинаций, но это все равно будет человеческое лицо.
А теперь представьте, что вместо «Сила: 5» для характеристик есть подобный «аналоговый» конструктор. (В духе «удлинил ноги — повысилась ловкость, но понизилась устойчивость»).
Еще можно выбрать, например, умение «взлом замков» и «подрывник», после чего никогда не пользоваться взломом замков, потому что подрывать двери в сто раз веселее!
Эта начальное распределение характеристик влияет на будущее! На будущее прохождение игры, то есть. Если у вас мало интеллекта, то ближе к середине вы добудете «хроматическую накидку ума (+5)», а то перед людьми стыдно. А если вы встретите на своем пути запертую дверь, то у вас будет три выбора: подобрать замок, взорвать ее или отвернуться и пойти в другую сторону.
То есть, это как-то влияет на стиль прохождения, в остальном — свобода выбора!
Ну, вы уже понимаете, к чему я клоню?
То, что называется «натальной картой» или «гороскопом» и является таким отпечатком стартовых характеристик на момент начала игры — то есть на момент рождения. Шутка про то, что «астрология работает как часы» — не шутка, а раскрытая метафора, слово «гороскоп» происходит от древнегреческого ὥρα, промежуток времени, период и σκοπός, — наблюдатель.
Вопрос о том, влияют ли планеты на людей, подобен вопросу «Влияют ли стрелки часов на то, что за окном ночь?».
Планеты в данном случае — это такие рычажки, определяющие (или показывающие?) стартовые характеристики. Рычаг это или индикатор — не столь важно.
Другой вопрос — «почему это совпадает с реальностью?». Ну, скажем, просто документация разработчиков (астрология) утекла и попала к пользователям (людишкам). Что не столь страшно — подделать судьбу и родится еще раз в другом месте и в другое время еще ни у кого из тех, кто не верит в реинкарнацию, не получалось.
Планеты обеспечивают «случайный» разброс характеристик к популяции.
Тут к месту будет рассказать одну историю.
Когда мы делали коллекционную карточную игру «Небожители», была задача из 200 уникальных типов карт собрать бустера по 15 случайных карт в каждом. Этим занимались бабушки, и просто дать им указания «ну, вы соберите десять тысяч пачек по 15 карт в каждой и так, чтобы они были случайными и не повторялись» было бы нельзя.
Неправильным выходом из ситуации было бы написать скрипт, генерирующий случайные бустера и распечатку его работы отдать бабушкам. Типа, «сложите вместе карты номер 23,56,93,146...» и так десять тысяч строчек случайных чисел. Бабушки бы сошли с ума.
Конечное решение было примерно таким:
Создаем 15 стопок карт (примерно таким же способом, который сейчас будет описан), в каждой стопке карты повторяются по кругу. В первой стопке 20 карт повторяются по кругу, во второй — 19 (но других), в третьей — 18, и так далее.
После чего алгоритм сборки бустера сводится к «бери по одной карте из каждой стопки и складывай их вместе». Даже бабушка поймет!
Если бы в каждой стопке 20 карт повторялось бы по кругу, то было бы всего 20 видов разных бустеров, а так же — когда в первой стопке проходит круг, во второй стопке проходит круг плюс одна карта, во второй — круг плюс две (18+2), и так далее. Ситуация, когда все карты повторились по кругу и «догнали» друг друга одновременно случалась очень редко.
На выходе имеем много разных бустеров, для внешнего наблюдателя кажущихся абсолютно случайными (а на самом деле — равномерно «случайными», что даже лучше).
Несколько циклов разной длинны, наложенные друг на друга. Ничего не напоминает? Ну, конечно же!
Периоды обращения планет вокруг Солнца:
Меркурий 87,97 суток;
Венера 224,70 суток;
Земля 365,26 суток;
Марс 1 год 322 дня;
Юпитер 11 лет 315 дней;
Сатурн 29 лет 167 дней;
Уран 84 года 8 дней;
Нептун 164 года 282 дня;
Плутон 247 лет 305 дней;
Состояние Солнечной системы относительно Земли в каждый момент времени не уникально, но, скажем так, «очень богато».
Проекция этого состояния на момент и место рождения и называется гороскопом. Мне лень считать точную цифру, для простоты отбросим место рождения и возьмем точность в 1 градус, каждая планета может занимать в гороскопе один из 360 градусов, а планет десять. Итого имеем 360 в 10 степени. То есть 36561584400629760000000000 вариантов.
Ты уникален, чувак!
Выглядит эта, простите, мандала (а гороскоп — это, несомненно, мандала) примерно так:
(Этого человека назвали бы «Близнецы», вы не поверите!)
На вопрос, «каким боком положение планет соотносится с моим характером?» я отвечал выше. (То есть «хрен пойми, каким, но если бы я поставил бабушек присматривать за людишками, я бы снабдил их как минимум часами». И еще с десяток вариантов, желающие могут додумать согласно уровню прокачки собственного Меркурия или даже Урана).
«Газетная» и прочая мещанская астрология — это проекция одной планеты — Солнце — на 12 знаков зодиака, то есть положение одной стрелки часов из 12-и на часах (а не минутах).
Что дает нам не 36010, а всего 12 вариантов. С соответствующей же точностью. Эти варианты показывают положение Солнце в гороскопе, поэтому «для простоты» говорят «ты Овен», а не «у тебя Солнце в Овне».
Чтобы составить вообще самое первое впечатление о человеке, надо посмотреть, где находится в его гороскопе асцендент (а для этого надо знать время рождения с точностью до минут), Солнца и Луна. А это уже 123=1728 комбинаций.
Как я уже писал, «Любой игровой дизайнер должен верить в бога хотя бы потому, что это выигрышная стратегия». Остальное тоже прекрасно укладывается: Таро — мать всех карточных игр, астрология — мать всех RPG!
Например, я могу взять планеты и расписать их «значения» по популярным характеристикам из RPG.
Солнце — намерение (willpower)
Луна — подсознание (perception)
Меркурий — ум (intellect)
Венера — харизма (charisma)
Марс — сила (strength)
Юпитер — удача (luck)
Сатурн — мудрость (wisdom)
Уран — ловкость (agility)
Нептун — скрытность (stealth)
Плутон — выносливость (endurance)
И даже почти не погрешу против «истины», так как «значения» планет несколько шире (Венера — это больше, чем просто харизма, но харизма — это определенно Венера).
(Очевидно, что надо делать игру, на старте которой ты вводишь дату своего рождения и больше ничего).
Так вот, если отбросить все эти «Фу, мистика — это стыдно! Газета „Оракул“ и „Битва экстрасенсов“! Докатился!», то это, оказывается, так весело!
Жалко, что многим этой радости не передать.