Коротко: «оптимізувати в кінці». Так проєкти гинуть на сертифікації. Бюджет продуктивності, стелі кадрового часу й пам'яті, узгоджені до того, як контент побудовано, перетворює оптимізацію з кризи на рутинну перевірку. Бюджетуйте мілісекунди, а не полігони, діліть кадр як пиріг, вимірюйте на трьох фіксованих камерах, робіть числа видимими там, де йде робота, і тягніть важелі в порядку рентабельності, коли сцена червоніє. Ця стаття дає всю систему, зі стартовими числами, які можна адаптувати.
Віста завжди означає рахунок: максимальна дальність відмальовування, кожна система на екрані разом, кожне LOD-кільце активне. Бюджетуйте під цей вид: коридор подбає про себе сам.
Бюджетуйте кадровий час, а не полігони
Полігонні бюджети — це релікт; сучасні GPU задихаються на draw call'ах, овердро, тінях і пропускній здатності пам'яті задовго до сирих трикутників. Бюджетуйте те, що реально вимірюєте: мілісекунди на систему, на вид.
Гра в 60 fps володіє 16,6 мс на кадр; при 30 fps, 33,3 мс. Це весь бюджет, ділений усім: геймплеєм, фізикою, ШІ, VFX, UI та оточенням. Частка оточення, переговори з рендерингом і геймплеєм, але вона має бути числом, узгодженим і записаним, інакше всяка дискусія про те, чи сцена «надто дорога», схлопується у смак і старшинство. Поряд із кадровим часом задайте стелі величинам, що його зв'язують:
- draw call'и на вид (зв'язують CPU задовго до насичення GPU),
- пам'ять текстур і мешів на зону стримінгу (число, що вирішує, стримите ви чи заїкаєтеся),
- тінекидні джерела світла у виду,
- гарячі точки овердро, рослинність і VFX суть звичні підозрювані.
Точні стелі залежать від платформи й рушія; дисципліна мати стелі, те, що переноситься на кожен проєкт, який ви колись випустите. Число, у якому можна помилитися, б'є вайб, про який можна лише сперечатися.
Діліть кадр як пиріг, у мілісекундах
Дайте кожному відділу частку, геймплей, VFX, UI, оточення, тоді поділіть частку оточення знову: рельєф, рослинність, пропи, вода. «Чи надто дорогий цей ліс?» стає об'єктивним питанням.
Робочий стартовий поділ для тайтла в 60 fps, переглядуваний за проєктом: оточення всього 6–8 мс, з них рельєф ~1,5, рослинність ~2–2,5, пропи й структури ~1,5, вода й атмосфера ~1. Суть не в цих точних числах, а в тому, що коли ліс мірить 4 мс проти частки в 2,5 мс, розмова стає «який важіль тягнемо» замість «чия вина».
Частки також захищають від переоптимізації, реального й дорогого провалу. Система, що сидить добре під своєю часткою, — це запрошення витратити запас на якість, а не трофей для захисту. Команди без часток схильні оптимізувати те, що помітив найгучніший інженер, що рідко є справжнім вузьким місцем, кругова діаграма каже, куди мілісекунди насправді пішли.
Вимірюйте на трьох фіксованих камерах
Бюджетуйте під найгірший реалістичний вид, не середній, оберіть три фіксовані «бюджетні камери» на карту (найгірша віста, найщільніший бойовий простір, найнасиченіший інтер'єр) і мірте рівно там, щоразу.
Випадкові прольоти дають випадкові числа й нефальсифіковні аргументи. Фіксовані камери дають лінії тренду: той самий вид, вимірюваний щотижня, показує рівно, коли й де приземлилася регресія і кого про неї питати. Найгірша віста заслуговує головну роль, бо складає все разом, максимальну дальність відмальовування, кожне LOD-кільце, рельєф, воду й небо одночасно. Карта, що тримає бюджет на своїй вісті, тримає його майже всюди; коридори вам лестять, а вісти кажуть правду.
Збережіть позиції камер у карті, щоб кожен відтворив точний кадр. «На моїй машині під якимось кутом іде нормально» не є даними; «бюджетна камера 2 мірить 9,2 мс на мінімальній специфікації, вгору з 7,8 минулого тижня» — це баг-репорт із підозрюваним.
Зробіть бюджет видимим там, де йде робота
Бюджет у вікі мертвий. Він живе як оверлеї статів під час дрессингу, перевірка проти стель перед мержами контенту й попередження, коли бейк вискочить за число інстансів.
Художники охоче потрапляють у бюджети, коли зворотний зв'язок миттєвий, і сердяться на них, коли ті приходять баг-тикетом через три місяці після випуску роботи. Інструментальний бік тут важливий тихо, але вирішально: коли scatter і блендинг запікають у нативні примітиви рушія, звичайні інстансовані меші й foliage, як робить Numivo, ваш наявний профайлер каже про них неприкрашену правду, без плагінного рантайму, що мутить числа, і кожен стандартний важіль (дистанції відсікання, LOD'и, число інстансів) застосовується без змін. Бюджет, що його можна виміряти лише через чорну скриньку, — це бюджет, якому ви тихо перестанете довіряти.
Ритм рев'ю, що приживається
Щотижневі знімки трьох бюджетних камер (п'ять хвилин), автоматизована перевірка стель на мержах контенту й щомісячне рев'ю самих стель, бюджети суть оцінки, і чесний перегляд б'є мовчазне порушення.
- Щотижня: скриньте три камери з увімкненими статами; логуйте кадровий час і пам'ять у спільну таблицю. Тренди з'являються за місяць, а сплеск указує на роботу конкретного тижня.
- На мержі: автоматизована перевірка порівнює сцену зі стелями. Червоні числа відкривають розмову, а не зламаний білд, мета усвідомлення, не бюрократія, а жорстке блокування вчить людей обманювати перевірку.
- Щомісяця: перегляньте самі частки. Реальність усередині проєкту завжди відрізняється від препродакшн-здогадок; відкрите коригування бюджету тримає його достовірним. Бюджет, що всі тихо ігнорують, гірший за жоден, бо вчить команду, що стелі — це театр.
Коли числа червоніють
Тягніть важелі в порядку рентабельності, дистанції відсікання й налаштування тіней спершу (хвилини, величезні виграші), тоді LOD'и й імпостори, тоді число інстансів, і лише останнім сам арт.
Оптимізація: тріаж, не знесення. Ламайте арт останнім: більшість перебюджетних віст повертаються зеленими від невидимих змін налаштувань задовго до того, як доведеться видаляти щось, що гравець може побачити.
Дорога помилка, стрибати одразу до «видали половину дерев». Щільність, найвидиміший важіль і зазвичай не найдешевший, віста, що перебрала на 2 мс, зазвичай повертається зеленою від самого лише налаштування дистанції тіней і відсікання, обидві невидимі гравцям. Видалення контенту, крайній засіб саме тому, що це єдиний важіль, який гравці можуть бачити; кожен щабель над ним на драбині безкоштовний з погляду арту. Ідіть униз драбиною, і збережете вид, відіграючи мілісекунди; ідіть знизу вгору, і зробите гру потворнішою, перш ніж спробуєте безкоштовні виграші.
Польові цифри, які варто вкрасти
- Кадр у 60 fps: 16,6 мс, оточення зазвичай виторговують 6–8 мс
- Робочий підподіл оточення: рельєф 1,5 / рослинність 2–2,5 / пропи 1,5 / вода й атмосфера 1 (мс)
- Бюджетних камер на карту: 3, віста, бій, інтер'єр, збережені в карті
- Вартість щотижневого заміру: ~5 хвилин; цінність: лінії тренду замість суперечок
- Порядок важелів на червоному: відсікання → тіні → LOD'и → інстанси → арт
Міні-FAQ
Кому належить бюджет оточення? Одній названій людині (зазвичай тех-артисту) належить вимірювання; стелі у володінні спільно з рендерингом. Бюджети без власника за місяць вироджуються у фольклор, бо «всі відповідальні» означає, ніхто не мірить.
Як бюджети працюють із динамічним часом доби? Мірте найгіршу умову освітлення на кожній камері, не найгарнішу. Світанок із довгими ковзними тінями часто вдвічі дорожчий за полудень; бюджет, що тримає лише в полудень, — це пів бюджету, і гравці знайдуть дорогу годину.
Чи потрібно все це для маленького інді-проєкту? Масштабуйте вниз, не геть. Одна бюджетна камера, одна стеля (кадровий час на вашій мінімальній машині), перевірювана щотижня. П'ятихвилинна звичка, те, що рятує останній місяць незалежно від розміру команди режим збою ідентичний: виявити вартість, коли її дорого чинити.
А пам'ять проти кадрового часу? Це різні бюджети з різними режимами збою, кадровий час роняє FPS, пам'ять роняє стримінг у заїкання чи крахи. Бюджетуйте обидва; на консолі пам'ять часто твердіша стеля, і саме вона провалює сертифікацію, а не просто погано відчувається.
Бюджет — це не межа мистецтву; це причина, чому гарна сцена все ще виглядає гарно в 60 fps на залізі, яким гравці справді володіють. Команди, що ставляться до продуктивності як до спільного дизайн-обмеження, випускають ігри гарніші за команди, що ставляться до неї як до фінального боса.