Професійна розробка комп'ютерних ігор
Гальмує гра на GTX 1060, але літає на RTX 4090? Різниця у FPS більш ніж у 10 разів — і це не тільки через залізо. Архітектура профілів якості вирішує, як гра виглядатиме на кожній конфігурації. Якщо профілі налаштовано неправильно, гравці на слабких ПК отримають слайд-шоу, а на потужних — недовикористаний потенціал. Ми займаємося створенням ігор на Unity та Unreal Engine понад 5 років, випустили 15 проєктів у Steam та Epic Games Store. Наш досвід підтверджується сертифікацією Unity Certified Developer та гарантією якості на всі етапи.
Як забезпечити однаковий 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 на середньому залізі порівняно з універсальним пресетом. У геймдеві така оптимізація починається з архітектури, а не з постобробки. Наприклад, використання кастомного ігрового двигуна може бути в 2-3 рази ефективнішим за готові рішення для специфічних завдань.
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 (проти 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






