Anton MaynikAnton Maynik
Разработка · Геймдев

Night Shift Hotel — хоррор-игра на Godot

2D-хоррор с дедукцией про ночного администратора старого отеля: проверяешь гостей, сверяешь документы, следишь за камерами и решаешь, кого впустить, — среди людей прячутся существа, которые умеют притворяться.

15

Night Shift Hotel — хоррор-игра на Godot

Проект
Night Shift Hotel — хоррор-игра на Godot
Тип проекта
Разработка · Геймдев
Компания
Другое
Год
2026
Моя роль
Автор игры: геймдизайн, сюжет, арт-дирекшн и разработка
Задача

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

Мой вклад
Моя рольАвтор игры: геймдизайн, сюжет, арт-дирекшн и разработка
Я отвечал за
  • Придумал концепцию, механику улик и сюжет кампании на семь ночей с несколькими концовками
  • Разработал игру на Godot 4 в паре с ИИ-ассистентами (Codex, Claude Code): стойка, камеры, компьютер, журнал, телефон, двери, электросеть
  • Спроектировал живую симуляцию отеля: жильцы, пять типов существ, доверие, тревоги, служба ликвидации
  • Собрал единую арт-концепцию и вёл генерацию графики по ней
  • Озвучка: голос под каждого персонажа в ElevenLabs и голоса гостей через локальный синтез речи
Ограничения
  • Главный принцип: у игрока не должно быть 100% надёжного способа понять, кто монстр
  • Сотни взаимосвязанных систем — любая правка может сломать другую
  • Баланс нужно часто менять, не трогая код
Решение

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

Production

~31 000 строк GDScript в 132 скриптах, 80 тестовых сценариев, 42 файла данных, 7 ночей кампании и бесконечный режим, ~480 озвученных реплик и ~150 звуков.

Итог

Играбельная версия с полной кампанией, концовками и озвучкой. Игра в активной разработке и ещё не выпущена.

ToolsGodot 4 · GDScript · Codex · Claude Code · ElevenLabs · Python
Как это устроено
31 000
строк GDScript
80
автотестов: полные ночи, атаки, улики
7
ночей кампании и бесконечный режим
~480
озвученных реплик
Инженерные решения
01Сомнение как механикаНи одна улика ничего не доказывает. Сухая одежда в ливень — подозрительно, но гостя могло довезти такси. Номер документа отличается от брони на одну цифру — подделка или опечатка дневной смены. С четвёртой ночи у существ появляются чужие приметы, а с пятой у людей — приметы существ.
02Отель живёт самЗаселённые гости ходят по графу секторов, раздражаются от тревог и звонков и могут уехать. Существа выбирают цели, ломают двери и копируют внешность. Электросеть греется от замков и света и может отключить камеры в самый плохой момент.
03Баланс без кодаДлительность ночей, поведение существ, доверие, электрика и подсчёт очков лежат в 42 JSON-файлах. Сложность и темп меняются правкой данных, а не скриптов.
04Тесты для игрыGodot запускается без графики и прогоняет полные ночи с разными стратегиями игрока: осторожно заселять, впускать всех, ничего не делать. Так правка в одной системе не ломает остальные незаметно.
СтекGodot 4.5GDScriptJSON-данныеШейдерыHeadless-тестыElevenLabsChatterbox TTSPython-инструменты
Результат
Главное меню: отель ночью под дождём
Главное меню: отель ночью под дождём
Стойка администратора: мониторы, журнал, телефон, ключи
Стойка администратора: мониторы, журнал, телефон, ключи
Гость у входа: впустить, отказать или проверить камеры
Гость у входа: впустить, отказать или проверить камеры
Видеопульт на 10 каналов со схемой отеля и управлением светом, тревогой и замками
Видеопульт на 10 каналов со схемой отеля и управлением светом, тревогой и замками
Система регистрации: номера и статусы
Система регистрации: номера и статусы
База гостей: карточка и документы
База гостей: карточка и документы
Журнал наблюдений с флажками подозрений
Журнал наблюдений с флажками подозрений
Внутренний телефон: звонки в номера и вызов службы
Внутренний телефон: звонки в номера и вызов службы
Жилой коридор: дверь можно запереть на ключ
Жилой коридор: дверь можно запереть на ключ
Отчёт о смене в 06:00
Отчёт о смене в 06:00

Нужен похожий проект?