Разработка игр для ПК
ПК — самая разнородная платформа. Игра должна работать на офисном ноутбуке с интегрированной графикой и на игровой станции с RTX 5090. Один и тот же исполняемый файл, разный hardware. Это архитектурная задача, а не только задача оптимизации.
Специфика PC-разработки
Scalable quality settings
Профили качества в 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.
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.
Управление вводом
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 — для AA/AAA с требованиями к рейтрейсингу (DXR), volumetric fog высокого качества, SubSurface Scattering. HDRP требует DirectX 11/12 — это нормально для PC, но закрывает путь на консоли/мобайл.
Физика: 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 в релиз.
Сроки разработки
| Тип проекта | Масштаб | Сроки |
|---|---|---|
| Гипер-казуальный PC | 1-3 механики | 1-4 недели |
| Инди, одиночная кампания | 2-5 часов контента | 3-6 месяцев |
| Инди с мультиплеером | PvP или кооп | 4-8 месяцев |
| AA проект | Открытый мир / глубокий сюжет | 8-18 месяцев |
Стоимость рассчитывается после анализа технического задания, целевых платформ и требований к онлайн-инфраструктуре.





