Let's talk about...
Привет реактор! Вот и настаёт конец года: обновляются календари, цели на год, у нас планируется не большое обновление, но пост не об этом.
Этот пост я хотел посвятить оптимизации в играх, с чем мы столкнулись и что это вообще такое. В конце поста будет ламповый блок, так что если тебе не интересно что такое оптимизация, а хочется почитать приятности: листай до катка в дрифте не на зимней трассе.
Итак, почему же игры могут тормозить? Неужели разрабы такие криворукие? Ответ и да и нет. Каждый элемент игры разрабатывается отдельно, тестируется на внутренние баги, а когда тот же робот в шапочке чуть ниже готов, его интегрируют в геймплей, смотрят как он вписался, чуть штрихуют и идут дальше.
А что же дальше? А дальше добовляется ещё, ещё и ещё такие элементы, которые рассматривается отдельно для экономии времени, а потом настаёт час Х и всё это запускается одновременно...и вот тут возникают проблемы, ведь отдельно всё работает прекрасно, а в куче начинаются просадки. И это хорошо, если начинаются, ведь разрабы сидят на мощном железе и могут не заметить перегрузки, у нас благо не такой случай, но всё же...
Но что же делается для оптимизации? А тут уже много подходов, но буду краток и поверхностен: Убираются лишние просчёты, добовляются пробелы для вычислений (что бы не каждый кадр следил враг за тобой а через 5 напирмер), убирается лишний функционал и всё в таком духе, грубо говоря всё упращается до некого приемлевоего минимума
Но и это ещё не конец, допустим мы всё упростили, всё работает прекрасно, но у кого то всё равно есть просадки, тут что делаеть? Увы, тут наступает самый противный и нудный этап, прогон профилировщиками, или по простому: смотрим каждый кадр, на что и сколько тратиться времени. Если до этого грубо говоря шла борьба за мили секунды, то на этом этапе начинается борьба за микро и нано секунды. Буду краток: это нереально нудно, но и плоды свои даёт. Сейчас у нас на подходе довольно стабильная сборка, I3 проц начинает тянуть стабильно игру (благо есть на чём тестировать), но пока не уверены когда будет обновление, в этом или следующем году, ибо такая тонкая настройка уже начинает пораждать порой немыслемые баги и мы их стараемся отловить их все.
Фух, надеюсь не очень нудная простыня вышла, тем более старался описать максимально просто, не вдаваясь в подробности про разделения нагрузок на CPU и GPU и всё в таком духе.
И на этой позитивной ноте хотелось бы поздравить всех жителей реактора с наступающим новым годом! Пусть следующий нас удивит не повышением уровня и характеристик главгада, а приятными ламповыми эвентами и упращения игры под названием жизнь (графика 11/10, гейплей все ещё на 3ку) Спасибо всем кто давал советы, критиковал и разносил на начальных этапах демку, без вас не было бы игры в таком виде. Да и всем кто до сих пор пишет и говорит что можно улучшить, тоже огромное спасибо, благодоря вам я думаю в стиме у нас 100% положительных отзывов) Желаю всей реакторской пачке гейдева успехов в создании, реализации и больших продаж с тёплым принятием игроков! Очень жду ваши проекты :3 Так же очень жду новогоднюю ёлку реактора. Будь руки прямее да и фандом побольше, может тоже положил каток под ёлку) Ну и ещё желаю kegeke лично здоровья и сил, и что бы у твоих друзей всё было хорошо! Ну что бы по сторонам смотрел переходя дорогу) Берегите себя! Всех благ!