Как я сделал кооп-игру детектив , где каждое дело придумывает ИИ, а подозреваемые врут тебе в лицо (ВЕЗДЕ ИИ...АААААА)
Привет. Меня зовут Алим, 29 лет, программист, 8 лет в профессии. Последнее время у меня была сплошная полоса невезения: из банка, где я работал, уволили, дальше одно за другим не клеилось. И вот в один из таких «прекрасных» периодов я, вместо того чтобы страдать, сел и сделал игру. Про детективов. С нейросетью. В которую играешь не один, а с друзьями. Называется CASE ZERO. Сейчас расскажу, как дошёл до этого, что там внутри и почему полтора суток я хотел выкинуть сервер в окно.
Мне всегда заходили игры, где ты не рубишься против других, а действуешь вместе: обсуждаешь, споришь, строишь версии. Мафия, кооперативы, настолки-детективы — вот это всё. А идея пришла банально. Утром смотрел ролик про детективный жанр, и параллельно трепался о чём-то с нейронкой. И меня как током: а что если сделать кооперативный детектив, где подозреваемых отыгрывает ИИ? Заходишь с друзьями в браузер, вместе осматриваете локации, находите улики, а потом голосом или в чате спорите, кто врёт — и идёте допрашивать почти живого подозреваемого, за которого думает нейросеть.
Почему именно так: кооператив — потому что я реально люблю, когда играют вместе, а не «кто кого»; ИИ — потому что допрос с ним это не выбор из трёх реплик, а живой разговор, где можно давить, блефовать, ловить на противоречиях; браузер — потому что мне надо было быстро проверить, интересно это только мне или ещё кому-то. Ставку делал на уникальность: каждое дело нейросеть пишет с нуля — сюжет, локации, улики, подозреваемых и саму разгадку. Дважды одинаковых не бывает.
Дальше меня понесло добавлять механики.
Подозреваемые живые
У каждого NPC есть настроение и отношение к следствию, и оно копится по ходу допроса. Будешь давить — занервничает и либо замкнётся, либо проговорится (особенно если против него уже есть улики). Поговоришь по-хорошему — пойдёт навстречу. Обвинишь в лицо — если виновен, начнёт паниковать или переводить стрелки. Врёт, уходит от ответа, реагирует на предъявленную улику. У него можно попросить телефон и полистать фотографии или обыскать карманы.
И вот тут — то, чего мне самому не хватало в детективах: можно предъявить улику И задать вопрос одновременно, а не «либо-либо». Показываешь фотографию с места преступления и тут же спрашиваешь «где ты был, когда это случилось?» — и смотришь, как он выкручивается прямо под давлением этой улики. Это меняет весь ритм допроса: ты не просто листаешь реплики, ты строишь давление. А поскольку у каждого NPC своя память и характер, один и тот же вопрос двум свидетелям даёт два совершенно разных разговора.
Улики прячутся прямо НА фото
Фото и видео улик тоже генерирует нейросеть. И вот тут мне самому нравится: улика может быть спрятана прямо НА фотографии — мелкая деталь, которую надо разглядеть под лупой, а не просто «вау, картинка». С записями камер так же: зацепка в кадре, а не эффект ради эффекта. Ты реально водишь лупой по снимку и всматриваешься, как настоящий следователь над уликой.
Голос по локациям
В расследовании ты слышишь только тех, кто рядом с тобой на локации, а на общем обсуждении — всю команду. Получается настоящая атмосфера: все разбежались по комнатам осматривать, каждый что-то нашёл, а потом сходятся в одном месте и с жаром спорят, кто из свидетелей врёт. Разделение по голосу — это не техническая деталь, а часть геймплея: оно заставляет команду делиться находками словами, а не молча смотреть в один экран.
«Живой мир» — место преступления живёт само по себе
Иногда прямо посреди расследования вырубается свет. Весь дом в темноте, и на всю команду — один фонарь: кто-то водит лучом, остальные подсказывают, куда светить. А под лучом в темноте можно вскрыть улику, которую при обычном свете вообще не видно. Это один из моих любимых моментов — вся команда в напряжении столпилась вокруг одного луча и координируется голосом.
Часть улик — временные: мокрые следы под дождём размывает, проворонил — и всё. Свидетели и подозреваемые могут просто уйти, если про них надолго забыть, — как в жизни. Виновный тоже может свалить (но обвинить его всё равно можно).
«Режиссёр» — невидимый ведущий, который держит темп
И отдельная моя гордость — «режиссёр». Это вторая нейросеть, которая в самой партии не участвует и даже не знает, кто виновный (я её специально изолировал, чтобы она случайно не спалила разгадку). Она просто наблюдает за темпом со стороны: как быстро вы находите улики, много ли спорите, не застряли ли, кого игнорите. И если игра провисает — сама подкидывает движуху: анонимный звонок, нового свидетеля, ЧП в локации. Невидимый ведущий, как живой мастер в настолке, который чувствует, когда за столом заскучали. Разгадку он никогда не трогает — только держит ритм. А хочешь хардкора — его можно выключить.
Главная боль детективов: слишком легко «угадать»
Вот это грызло меня всё время. Ткнул в подозреваемого наугад, попал — и как будто раскрыл дело. А хотелось, чтобы игра награждала за настоящую дедукцию. И последнюю большую итерацию я делал целый слой механик именно про это — как вычислять виновного, а не гадать.
Хронология событий. Раньше это была просто головоломка «расставь по порядку» в конце. Теперь это сердце расследования. Дело состоит из деталей: «кто-то в тёмном пальто вошёл в кабинет в антракт», «со стойки пропала статуэтка» и так далее. Но игра не выдаёт их просто так. Деталь открывается, только когда ты задаёшь нужному свидетелю вопрос ПО СУЩЕСТВУ — не «привет, как дела», а именно про то событие. Причём необязательно слово в слово: за смыслом вопроса следит отдельная нейросеть-судья.
Открыл деталь — всей команде прилетает «такой-то восстановил деталь хронологии, 2 из 5», и висит счётчик, сколько ещё копать. На сложных уровнях одного вопроса мало — надо ещё и предъявить свидетелю нужную улику, чтобы он раскололся по этому событию.
Нестыковки алиби. Когда команда набрала деталей хронологии, на обсуждении всплывает: показания вот этого свидетеля расходятся с тем, что было на самом деле. Логика честная: чем больше деталей вы собрали, тем яснее картина и тем виднее, кто врёт. Но бесплатно я это не даю. Во-первых, нестыковка — это не приговор, а повод присмотреться: у невиновного может быть честное объяснение. Во-вторых, на сложных уровнях в деле есть ЛИШНИЕ, ложные события — и они дают ложные нестыковки на невиновных. Пока не распознаешь лишнее событие и не пометишь его — оно уводит вас не туда.
Сложность реально меняет игру. На лёгком картина читается понятно, на среднем уже надо думать, а на сложном и невозможном даже с полной хронологией попотеешь — там и ложных событий больше, и одних вопросов мало. Это не просто «врагам +10% ХП», а разный уровень детективной работы.
Полнота хронологии влияет на исход. Собрал мало деталей, ткнул в виновного и попал — игра честно засчитает «скорее угадали», очков меньше. Собрал картину целиком и назвал с доказательствами — «раскрыто», полная награда. И чем выше сложность, тем больше деталей нужно собрать, чтобы это считалось раскрытием, а не везением.
Того самого «режиссёра» я под это тоже докрутил: если команда застряла, он подкидывает косвенную наводку — мол, ходят слухи, что со свидетелем таким-то стоит поговорить про тот вечер подробнее. Убийцу он по-прежнему никогда не называет, только подсказывает, куда копать, и наводит вразнобой. Плюс везде висит индикатор «ясность картины» в процентах — насколько команда близка к уверенному выводу.
Дело нельзя пройти «на отвали»
Объектов для осмотра куча, а улик мало: иголка в стоге сена, приходится реально искать, а не тыкать во всё подряд. Ложные следы убедительные — находишь улику и споришь: это зацепка или ловушка? Осматривать можно только один объект за раз, поэтому команда сама расходится по локациям и делится находками (вот тут голос по комнатам и выстреливает). И подрезал читерство: нельзя завалить всех уликами и по реакции вычислить виновного — подсказки платные и не называют имя, а обвинять без доказательств нельзя.
А после обвинения — разбор: игра раскрывает, как всё было на самом деле, вы по кусочкам собираете хронологию, и за дело капают достижения. За раскрытые дела растут звания, и чем сложнее дело — тем быстрее прокачка. И немного социалки поверх всего: друзья по коду, онлайн-статус, приглашение в лобби, личные сообщения и общий рейтинг — чтобы собираться компанией было проще.
Как я это делал
Писал один — ну кто согласится тратить время на проверку теории, кроме самого одержимого. Собирал MVP с помощью нейросети, а где она затыкалась — а затыкалась регулярно — доправлял руками. Спасибо восьми годам за плечами, без них бы утонул. Боли было три: логика (чем сложнее игра, тем хуже нейронка ловила, что мне нужно — приходилось вести ей отдельный «файл-память»), оплата (ЮKassa, самозанятый, чеки — с нуля, наощупь) и мой персональный ад — сервер (первый хостинг оказался наглухо отрезан от внешней сети: полтора суток бился, потом просто пересоздал на другом — и всё встало).
Где я сейчас
Игра запущена, в неё реально можно играть. Это прототип, косяков хватает: нейросеть-судья иногда ошибается — бывает, вопрос зашёл по теме, а она не засчитала, или наоборот; промты я до сих пор докручиваю, это самое хрупкое место. Меня честно смущают две вещи: после регистрации, чтобы сыграть своё дело, надо сразу заплатить (мне это самому не нравится, поэтому есть бесплатное демо без регистрации — готовое дело с настоящими фото и видео), и генерация видео стоит конских денег, так что я оставил её опцией.
Зачем я всё это пишу
Мне не нужны лайки ради лайков. Мне нужно понять: эта идея заходит кому-то, кроме меня? Стало ли интереснее вычислять виновного, или я усложнил на ровном месте? Попробуйте хотя бы демо (без регистрации), а потом соберитесь компанией и сыграйте своё дело — и честно скажите, что почувствовали. Поймали баг или кривую наводку — напишите, я правда правлю по фидбеку. А если идея подтвердится — я готов собрать команду из тех, кому откликнется, и довести CASE ZERO из прототипа до полноценного продукта.
Спасибо, что дочитали. А вам в детективе важнее атмосфера или чтобы убийцу реально надо было вычислять? 🕵
Попробовать демо можно тут