Добавить в корзинуПозвонить
Найти в Дзене

Оптимизация в играх и небольшая болталка

В этой статье хочу поговорить об оптимизации, как следует из заголовка. Не удивляйтесь что я вернулся.. у меня появилась мотивация когда я увидел что у меня теперь СЕМЬ подписчиков! три подписчика до 10! на десятку запущу эвент, будьте уверены. LOD - уровни детализации. В зависимости от расстояния качество объекта изменяется - но для игрока разница абсолютно нулевая - а видеокарте рендерить меньше. Используется чаще всего в играх с большим миром/открытым миром (разница есть, и она огромна). Впрочем, для маленьких миров LOD почти не нужен - только если этот мир не супер-ультра-дупер реалистичный... либо-же чтобы игра летала даже на слабых устройствах. Кстати... вот ещё одна тема насчёт этого: старые добрые чанки которые есть во многих играх... в легендарной subnautica и Minecraft о котором не слышали только пещерные люди, Vintage story и многие другие используют ЧАНКИ которые позволяют не превратить ваш компьютер в свеженького Т-1000. Как работают чанки: существует чанк с ограниченны
Оглавление

В этой статье хочу поговорить об оптимизации, как следует из заголовка. Не удивляйтесь что я вернулся.. у меня появилась мотивация когда я увидел что у меня теперь СЕМЬ подписчиков! три подписчика до 10! на десятку запущу эвент, будьте уверены.

1. LOD

LOD - уровни детализации. В зависимости от расстояния качество объекта изменяется - но для игрока разница абсолютно нулевая - а видеокарте рендерить меньше. Используется чаще всего в играх с большим миром/открытым миром (разница есть, и она огромна).

Взято из интернета
Взято из интернета

Впрочем, для маленьких миров LOD почти не нужен - только если этот мир не супер-ультра-дупер реалистичный... либо-же чтобы игра летала даже на слабых устройствах. Кстати... вот ещё одна тема насчёт этого:

2. ЧАНКОВАЯ СИСТЕМА

старые добрые чанки которые есть во многих играх... в легендарной subnautica и Minecraft о котором не слышали только пещерные люди, Vintage story и многие другие используют ЧАНКИ которые позволяют не превратить ваш компьютер в свеженького Т-1000.

взято из интернета
взято из интернета

Как работают чанки: существует чанк с ограниченными размерами (например 32*32*32 как в Vintage story). Если игрок находится на этом чанке или видит его - чанк активен. если игрок подходит к несуществующему чанку он генерируется по правилам генерации.

3. Отбрасывание невидимого и загрузка видимого.

Система похожа на систему чанков но в тех играх где чанков просто нету! Суть в том что если камера игрока чего то не видит - этот объект невидим. Т.е если за холмом башня со 12450455 полигонами, но камера её не видит - видеокарте норм, т.к эта башня не рендерится.

4. Пул объектов

Vampire survivors, братан! Шутеры, братан!

Вы когда-нибудь задумывались, как при игре в Vampire survivors Ваш компьютер не превращается в систему отопления? ведь на экране же 100500 врагов, 100500 цифр и 100500 лута? такое может поставить на колени даже хороший компьютер, ведь враг - физический объект (надо высчитывать его скрипт и траекторию, физику)

Почему именно там это важно?

Управление памятью в JS реализовано через Сборщик Мусора
(Garbage Collector). Если каждую секунду вы создаете 100 новых врагов и
удаляете 100 старых, сборщик мусора вынужден постоянно "подметать"
память. В браузере это вызывает характерные
микрофризы (статтеры) — кадр замирает на 50-100 мс, пока чистка памяти не завершится. Для жанра survivor-like это смертельно, так как один такой фриз гарантирует получение урона от толпы.

взято из интернета
взято из интернета

Лука Галанте (разработчик) пошёл таким путём, что если хп врага равняется 0... он не удаляется из памяти, а лишь становится неактивным (невидимый и не исполняющий скриптов) и его координаты сбрасываются на -1000 -1000 за пределы карты. Когда скрипт "волны" решает заспавнить врага, Он становится активным, ему задаётся здоровье и он телепортируется к краю карты.

Болталка

Да... неожиданно я вернулся. подписчики мотивируют сильнее чем что-либо!) Про эвент... это тот самый эвент с космическими кораблями и физикой (кто видел старые статьи тот знает) который я так и не запустил. Сейчас я работаю над своей игрой 3 из списка 1... могу скоро запустить рубрику девлога.

Всем пока и спасибо за просмотр!