Soft Crunch Games: Проектирование Foxy Dumplings для единообразия на всех платформах
Public- 16 Oct, 2026

Студия Soft Crunch Games, насчитывающая четыре человека, столкнулась с серьезным вызовом: выпустить Foxy Dumplings одновременно на Windows, macOS, Linux, Nintendo Switch 2, PlayStation 4 и 5, Xbox Series X|S, iOS и Android. Чтобы справиться с этой сложностью, команда установила ключевое архитектурное правило: каждая платформа получает абсолютно одинаковую игру из одного и того же коммита. Такой подход исключил использование отдельных веток, задержки мобильных версий или релизы с ограниченным контентом. Единственный программист, Grzegorz Wątroba, спроектировал систему так, чтобы не делать никаких компромиссов в паритете функций. Это гарантирует, что игроки на любом устройстве получают полный опыт уютной кулинарной и управленческой симуляции, не ожидая платформенно-специфичных обновлений и не сталкиваясь с неполным набором контента.
Техническая основа строится на едином проекте Unity и одной ветке, где игровая логика строго отделена от платформенно-специфичного кода. Взаимодействие с платформами вынесено на периферию системы и занимается задачами вроде сохранений, пользовательских аккаунтов, достижений, облачной синхронизации и системных диалогов. Паттерн «фасад» предоставляет единую точку входа для игровой логики, а фабрика выбирает правильный платформенный провайдер при запуске. Например, когда игра запрашивает разблокировку достижения, она не знает, направляется ли вызов в Steam, PlayStation Network или игнорируется полностью. Эта абстракция позволяет ядру игры оставаться независимым от аппаратного обеспечения, что обеспечивает возможность добавления новой платформы без переписывания центральной игровой механики или потоков логики.
Обработка ввода спроектирована так, чтобы быть полностью независимой для каждой схемы управления. Это позволяет игрокам пройти игру, используя только геймпад, сенсорный экран или мышь, без необходимости в клавиатуре. Команда использовала Unity Input System с одним набором действий и тремя различными схемами управления: геймпад, клавиатура и мышь, а также сенсорное управление. Игра переключает схемы в реальном времени на основе последнего использованного ввода, а пользовательский интерфейс адаптируется автоматически. Один Prefab с подсказками кнопок используется почти в 200 местах, динамически отображая правильную иконку для активного метода ввода. Этот подход, основанный на возможностях, а не на определении устройства, оказался критически важным для совместимости с устройствами вроде Steam Deck, где сенсорный экран может эмулировать мышь, а также со старым Android-оборудованием с различными возможностями ввода.
Оптимизация производительности была критически важна для 2D-игры, использующей персонажей Spine и материалы без освещения, особенно на слабом оборудовании. Команда выявила, что рендеринг эффектов в текстуры рендеринга 4K не нужен для дисплеев 1080p или 720p. Настроив текстуры рендеринга под фактическое разрешение экрана и отключив неиспользуемые HDR- и текстуры глубины, они значительно снизили скорость заполнения пикселей на устройствах вроде Steam Deck, уменьшив память текстур рендеринга с 32 МБ до 4 МБ. Кроме того, всплески памяти, вызванные локализацией, были решены путем регенерации запасных атласов шрифтов со страниц 4096x4096 до 2048x2048, что сократило использование памяти для таких языков, как японский, с 48 МБ до 4-8 МБ на шрифт. Эти оптимизации обеспечили плавную работу на широком спектре поддерживаемых устройств.
Кроссплатформенный прогресс управляется через переносимую систему сохранений, где прогресс хранится в виде одного зашифрованного бинарного файла с идентичным форматом на всех платформах. Это позволяет сохранению, созданному на мобильном устройстве, читаться напрямую на ПК без конвертации. Синхронизация работает на двух уровнях: нативное облачное сохранение платформы и Unity Cloud Save, которое обрабатывает прогресс между экосистемами. Логика слияния сравнивает слоты сохранений по временной метке, при этом удаленные слоты помечаются, чтобы предотвратить их «воскрешение» из облака. Код связывания Unity Authentication соединяет аккаунты консолей и ПК, делая кросспрогресс опциональным, но сохраняя игру полностью играбельной в автономном режиме. Команда подчеркнула, что хотя хранение данных просто, управление идентичностью сложно и требует отдельных механизмов доверия для тикетов Steam, токенов PlayStation и токенов Xbox.
Процесс разработки был сильно автоматизирован, чтобы управлять нагрузкой небольшой команды. Центральное меню сборки с более чем 70 пунктами обрабатывает все конфигурации, включая типы сборки, демо-версии и настройки вывода, устраняя необходимость в ручных настройках Project Settings. Проверки компиляции запускаются примерно для 40 платформенных и магазинных конфигураций, чтобы ловить ошибки до этапа QA. Управление объемом работ включало отказ от функций, которые бы умножали работу по платформам, таких как поля ввода текста, онлайн-мультиплеер и внутриигровые покупки. Команда также использовала Unity 6.3 LTS, которая предлагала улучшенную стабильность, исправления Vulkan для старых Android-устройств и ускорение времени сборки IL2CPP на 10-15%. Этот структурированный подход позволил команде поддерживать высокое качество и единообразие на всех платформах, при этом внешний QA фокусировался на платформенно-специфичных слоях, таких как сертификация и поведение при приостановке/возобновлении.