Разработка игр для ПК
Игра тормозит на GTX 1060, но летает на RTX 4090? Разница в FPS более чем в 10 раз — и это не только из-за железа. Архитектура профилей качества решает, как игра будет выглядеть на каждой конфигурации. Если профили настроены неправильно, игроки на слабых ПК получат слайд-шоу, а на мощных — недоиспользованный потенциал. Мы занимаемся созданием игр на Unity и Unreal Engine более пяти лет, выпустили 15 проектов в Steam и Epic Games Store.
Как обеспечить одинаковый FPS на слабых и мощных ПК?
Профили качества в Unity (Quality Settings) — базовый инструмент, но недостаточный. Игрок с GTX 1060 и игрок с RX 6800 XT попадают в разные buckets не по названию профиля, а по реальным GPU capabilities.
Правильный подход — динамический выбор настроек на основе GPU benchmark при первом запуске. SystemInfo.graphicsMemorySize, SystemInfo.graphicsDeviceVendor, SystemInfo.maxTextureSize дают базовое представление о железе. Для точного benchmark — короткий синтетический тест с замером GPU time через FrameTimingManager.
Для URP: отдельные URP Asset для каждого уровня качества. Shadow Distance, Shadow Cascades, MSAA, Post-Processing эффекты — всё это управляется через QualitySettings.renderPipeline в рантайме. HDRP — аналогично через FrameSettings.
Почему динамическое управление качеством графики лучше статичных пресетов?
Статичные пресеты (низкий/средний/высокий) не учитывают конкретный GPU. Например, игрок с RX 580 может комфортно играть на высоких настройках с отключёнными тенями. Динамический профиль подбирает каждый параметр отдельно, что даёт до 30% прироста FPS на среднем железе по сравнению с универсальным пресетом. В геймдеве такая оптимизация начинается с архитектуры, а не с постобработки.
Steam и platform integration
Steam — основная дистрибуция для PC-игр. Интеграция через Steamworks.NET (C# wrapper) или FacePunch.Steamworks:
- Steam Achievements —
SteamUserStats.SetAchievement(), синхронизируются автоматически с облаком - Steam Cloud — сохранения через
ISteamRemoteStorage. Работает как файловая система, 100 МБ квота по умолчанию - Steam Leaderboards —
ISteamUserStats.FindOrCreateLeaderboard() - Steam Input — унифицированный API для геймпадов. Один код для Xbox, DualSense, Switch Pro Controller, Steam Deck. Критично для PC-игр, которые хотят поддерживать геймпады нормально
Steam Workshop — если игра поддерживает пользовательский контент. Требует отдельной инфраструктуры: контент-валидация, версионирование, скачивание через ISteamUGC.
Детали интеграции Steam Input
Steam Input позволяет маппить любые геймпады под единый профиль. Для Unity используем пакет Steamworks.NET, который включает обёртку для `ISteamInput`. Рекомендуется настраивать конфигурации через Steamworks API, а не через Input Manager.Управление вводом
PC — единственная платформа, где игрок одновременно может использовать клавиатуру, мышь и геймпад. Unity Input System (новый) обрабатывает это через Action Maps: один Action с несколькими Binding (WASD + стик геймпада + стрелки клавиатуры). При переключении устройства во время игры — автоматический ребайнд.
Remapping клавиш — требование для PC. InputActionRebindingExtensions.RebindingOperation — встроенный API. Сохранение биндингов: inputAction.SaveBindingOverridesAsJson() в PlayerPrefs или файл.
Мышь требует отдельного внимания в 3D-играх: rawInput для камеры (убираем ускорение мыши OS через Mouse.current.delta.ReadUnprocessedValue()), отдельная чувствительность для геймпада и мыши, инверсия осей Y.
Технический стек для PC
| Компонент | Инструмент | Примечание |
|---|---|---|
| Рендер | URP / HDRP | URP для большинства, HDRP для AAA с рейтрейсингом |
| Физика | PhysX / Havok | Havok через DOTS для точных симуляций |
| Рейтрейсинг | RayTracingShader (HDRP) | Требует RTX-совместимую карту |
| Апскейлинг | DLSS / FSR / XeSS | Единая интеграция через пакеты |
| Локализация | Unity Localization + Google Sheets | Для озвучки Addressable Audio Assets |
Физика: PhysX через встроенный Unity Physics. Для точных симуляций (транспорт, физические пазлы) — Havok Physics for Unity (доступен через DOTS). Для 2D — Box2D (встроен).
Графика высокого уровня:
- Ray Tracing через
UnityEngine.Rendering.RayTracingShader(HDRP, DX12, требует RTX-совместимую карту) - DLSS/FSR/XeSS через Unity DLSS, AMD FSR Package — апскейлинг для повышения производительности при сохранении качества
- Volumetric clouds, GlobalIllumination — HDRP Lit Shader + Adaptive Probe Volumes
Локализация: PC-игры часто имеют больший языковой охват. Unity Localization пакет + Google Sheets как источник строк через импортёр. Для озвучки — Addressable Audio Assets с локальной версией.
Anti-cheat и безопасность
Для онлайн PC-игр читы — серьёзная проблема. Easy Anti-Cheat (Epic) и BattlEye — решения уровня AAA, интегрируются на уровне лаунчера. Для инди — минимум: server-side validation всех критичных действий (урон, лут, прогрессия), обфускация кода через IL2CPP (значительно сложнее реверсировать, чем Mono).
Читерство в офлайн-игре — другой вопрос. Cheat Engine — это часть PC-культуры для одиночных игр. Защита имеет смысл только если читерство разрушает чужой опыт (онлайн) или монетизацию.
Дистрибуция и запуск
Steam — основной канал. Пайплайн: SteamPipe для загрузки билдов, SteamCMD для автоматизации через CI/CD. Early Access — распространённая стратегия для инди: монетизация до релиза + community feedback.
GOG — DRM-free аудитория, меньше размером, но лояльная.
Epic Games Store — 88% revshare (vs 70% на Steam), но меньше аудитория.
itch.io — подходит для Game Jam, экспериментальных проектов, indie showcase.
Автоматические релизы через GitHub Actions + Butler (itch.io) или SteamCMD. Каждый merge в main → автоматический билд → загрузка в beta branch → manual promote в релиз.
Этапы разработки игр для ПК
- Анализ целевого железа — изучение конфигураций игроков, выбор референсных GPU.
- Создание профилей качества — настройка URP/HDRP Asset, динамический бенчмарк.
- Интеграция платформы — Steamworks, GOG, EGS — облака, достижения, мультиплеер.
- Оптимизация — профилирование draw calls, батчинг, LOD, ассет-стриминг.
- Тестирование на референсных конфигурациях — проверка на бюджетных картах и энтузиастских.
Что входит в работу
- Документация: архитектурная схема, описание профилей качества, руководство по сборке.
- Исходный код и доступ к репозиторию (Git).
- Интеграция выбранных платформ (Steam, GOG, EGS).
- Сборка под Windows (standalone) и macOS/Linux при необходимости.
- Обучение команды: настройка пайплайна, работа с бенчмарком.
- Поддержка после релиза: 3 месяца баг-фиксов и обновлений.
Сроки разработки
| Тип проекта | Масштаб | Сроки |
|---|---|---|
| Гипер-казуальный PC | 1-3 механики | 1-4 недели |
| Инди, одиночная кампания | 2-5 часов контента | 3-6 месяцев |
| Инди с мультиплеером | PvP или кооп | 4-8 месяцев |
| AA проект | Открытый мир / глубокий сюжет | 8-18 месяцев |
Стоимость рассчитывается после анализа технического задания, целевых платформ и требований к онлайн-инфраструктуре. Свяжитесь с нами, чтобы обсудить ваш проект. Мы оценим его в течение 2 рабочих дней. Закажите консультацию по оптимизации PC-игр — это поможет сократить бюджет на железо.
Подробнее об интеграции Steam: Steamworks Documentation






