Apexs Solutions
Издательство TooSmartGamesВ разработкеЧерновик кейса

Container Life

Симулятор выкупа складских контейнеров

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

Открыть витрину холстов

Три вещи, вокруг которых собрана игра

Не менеджмент склада и не кликер. Ближе к работе оценщика, который каждый раз ставит свои деньги на собственный глазомер.

Лот покупается вслепую

Склад вскрывает ворота на минуту. Внутрь заходить нельзя, трогать нельзя, светить фонарём можно. Ставка делается по силуэтам коробок и по тому, как хозяин их складывал: аккуратная стопка одинаковых ящиков и куча мусора стоят разного.

Вещь узнаётся руками

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

Цену выводит игрок, а не интерфейс

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

Генератор картин

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

Нужен был набор, в котором ценность читается глазом. Мы замерили по геометрии моделей, полотна каких пропорций ждут четыре рамы в игре, написали таблицу из 351 промта — от бархатных клоунов и раскрасок по номерам до голландского золотого века — и прогнали её через текстовую модель.

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

Слащавая печать с котёнком в корзине
Котёнок в корзине, печать
Комическая картина: собаки в жилетах играют в карты
Собаки играют в покер
Пародия на знаменитый портрет, где вместо модели кот
Пародия на музейный портрет
Импрессионистское маковое поле с двумя фигурами под зонтами
Маковое поле, импрессионизм
Девушка у окна с письмом в голландском интерьере
Голландский интерьер
Автопортрет художника у мольберта в мастерской
Автопортрет у мольберта
Прижизненный портрет государственного деятеля восемнадцатого века
Прижизненный портрет
Романтическая панорама дикой природы с водопадом
Панорама с водопадом
351
холст в наборе
220 с
весь прогон целиком
$1.97
стоимость набора
5
классов ценности

По чему игрок учится читать цену

Классов ценности пять, и разведены они не подписью, а тем, что видно на холсте. Сначала эти различия называет платный эксперт, потом игрок начинает замечать их сам.

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

Что выяснилось на живом прогоне

Промты писались заранее и на бумаге выглядели правильными. Первая же партия показала три вещи, которые из документации модели не следуют.

У модели нет отрицательного промта

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

Слово «фотография картины» дорисовывает паспарту

Первая редакция обёртки начиналась со «square-on photograph of a painting» и дала белое поле у шести кадров из восьми: снимок картины бывает с полями, и модель их добавляла. Помогло убрать само слово и описать кадр тем, что в нём есть.

Имени человека в промте недостаточно

У знаменитого лица бывает знаменитое исполнение, и генератор идёт к нему: имя пирата дало узнаваемого актёра в роли из фильма. А метафора «львиная грива волос» была прочитана буквально, и вместо портрета вышел лев. Внешность теперь описана словами, метафор в промтах нет.

Все 351 холст одной страницей

Витрина с фильтрами по классу ценности и по раме. У каждого холста открывается крупная версия, оценка, признаки и промт, которым он сделан. Исходники весят 583 МБ; страница пережата в 25 МБ, и сетка миниатюр из них — пять.

Открыть витрину холстов

Музыка: пластинка на девять треков

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

Мест у музыки нет, и это тоже решение. Сначала трек выбирала сцена — четыре темы и таблица «сцена — тема», — но игрок ездит между сценами десятки раз за сессию, и песня, обрывавшаяся наплывом на каждом въезде, ни разу не доигрывала до второго куплета. Теперь пластинка одна и играет везде: список идёт по кругу со случайного места, а в углу на семь секунд появляются титры — Cargo Waves и название трека.

Оригинальный саундтрек9 треков · 19:30
  • Песни
  • Инструментал

Смена трека — наплыв

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

Паузы между повторами

Трек доигрывает и умолкает на полторы минуты. Игра медитативная, сессия долгая, и непрерывная музыка надоедает в ней первой.

Чтение с диска

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

Под капотом

Движок

Unity 6, URP, C#

Платформы

PC и PC VR из одной сборки

Генерация картин

fal.ai z-image/turbo

Музыка

ElevenLabs Music

Модели и текстуры

Poly Haven, Meshy, Blender

Черновик кейса: страница доступна только по прямой ссылке и в списке проектов не показана.

Container Life | Apex Solutions