Материал разбирает практические подходы к переносу Unity‑игры на Steam Deck с упором на UI/UX, ввод и производительность.
UI/UX под маленький экран
Команда столкнулась с типичной проблемой десктопных UI на портативных устройствах — слишком мелкие элементы и неудобная навигация. В ответ они:
- увеличили часть интерфейсных элементов;
- ввели строгие правила: минимальный размер текста, минимальный размер кнопок и т.п.;
- ориентируются на единый опыт для ПК и Steam Deck, а не отдельные версии UI.
Обработка ввода и переключение устройств
В Unity реализована собственная система определения активного устройства ввода и смены режима управления:
- каждый кадр опрашиваются все устройства;
- для клавиатуры используется anyKey, для геймпада — ручной опрос всех кнопок;
- при смене устройства динамически обновляются режим ввода и глифы кнопок в UI;
- если устройство не обнаружено, на ПК используется клавиатура+мышь, на Steam Deck — Steam Controller по умолчанию;
- при отключении контроллера игра ставится на паузу — это требование Steam для маркировки поддержки геймпада.
Профилирование и производительность
Профилирование делается через:
- загрузку dev‑сборки в внутреннюю ветку Steam;
- сбор фрейм‑данных Unity Profiler’ом по сети.
Так как целевая платформа — слабые ПК, разница между ними и Steam Deck по «сырой» производительности невелика. Главный фокус — не FPS, а батарея и термальный режим, что сближает подход с мобильными устройствами.
Энергопотребление и качество графики
Ключевые рычаги под Steam Deck:
- понижение разрешения и особенно ограничение FPS — самый простой способ продлить жизнь батареи;
- планируется отдельный пресет «Steam Deck» для комфортного старта без ручной настройки;
- будет добавлен режим экономии батареи с жёстким лимитом 30 FPS и пониженным разрешением;
- планируется использование Unity Dynamic Resolution для временного понижения разрешения при просадках FPS — на маленьком экране падение чёткости менее заметно.
UI под контроллер: глифы и навигация
Поддержка геймпада не ограничилась ремапом кнопок:
- реализованы разные типы глифов для контроллера;
- все кнопки меню обновлены, чтобы показывать актуальные глифы;
- добавлены контекстные панели с подсказками навигации по меню;
- часть глифов встраивается прямо в текст через динамически назначаемый TextMeshPro Spritesheet.
Выводы
- Для Steam Deck критичны минимальные размеры текста и кнопок и единые UI‑правила для всех платформ.
- Нужна система автодетекта ввода с динамической сменой режима и глифов, плюс пауза при отключении контроллера.
- Основная проблема Deck — не мощность, а батарея и нагрев, как у мобильных устройств.
- Разрешение, FPS‑кап и отдельные пресеты (включая «battery saver») — базовые инструменты оптимизации.
- Глифы, контекстные подсказки и интеграция с TextMeshPro обязательны для внятного UI под контроллер.
Факт-чекинг
- Утверждение: «Since we're targeting pretty low-end PCs, the difference between a Steam Deck and a PC in terms of performance is negligible, instead, the main difference is battery life and thermals, making it similar to a mobile device.» — сформулировано слишком обобщённо. Производительность Steam Deck по отношению к «низкоконфигурационным ПК» сильно зависит от конкретного железа, настроек и сценариев использования; для части пользователей разница в FPS и стабильности будет вовсе не «незначительной». Корректнее говорить, что в их целевом диапазоне конфигураций производительность *сопоставима*, а не «незначительно отличается».
- Утверждение: «Lower resolutions and especially frame capping are absolutely the easiest way to increase battery life.» — чрезмерное обобщение. Снижение разрешения и ограничение FPS действительно часто дают заметный выигрыш по энергопотреблению в играх, но назвать это «абсолютно самым простым» способом нельзя универсально: на разных устройствах и движках значимый вклад могут давать и другие меры (ограничение фоновых задач, снижение сложных шейдеров, отключение тяжёлых эффектов и т.п.). Формулировка звучит как универсальный закон, хотя это скорее практическое наблюдение автора.
- Утверждение: «it's by far the biggest limiter on graphics fidelity on mobile devices at the moment» (о батарее и тепловых ограничениях) — слишком сильное и недоказанное обобщение. На мобильных устройствах на качество графики влияют и другие факторы: производительность GPU/CPU, объём памяти, пропускная способность, требования к размеру клиента, особенности чипсетов и т.д. Энергопотребление и термальные лимиты действительно очень важны, но утверждение «by far the biggest» не подтверждено исследованиями и не является общепринятым фактом для всех мобильных платформ и жанров.