Как Untitled Goose Game устроена за кадром

Нетипичной игре — нетипичные решения.

244244

Кстати, а почему в играх постоянно держат все предметы под сценой, а не спавнят их на ходу? Неужели держать все под сценой дешевле чем спавнить на ходу, или спавн вызывает кратковременные микрофризы?

8

Проще подгрузить всё сразу, нежели по частям во время самого геймплея

52

часто да. Спавн объекта может быть связан с подгрузкой моделей  и текстур с диска, а это долго по меркам фрейма

10

Комментарий недоступен

9

Комментарий недоступен

3

Это pooling. Создается все заранее и запихивается в память/видеопамять. В т.ч. чтобы уменьшить возможные обращения к жесткому диску.Микрофризы из-за этого и возможны, да. 

Также очень часто обьекты реюзабельны. Не удаляются-создаются заново. А "прячутся" и "достаются заново"

Все это в целом очень способствует а)уменьшению утечки памяти 

б)контролю общего обьема памяти.

2

Касательно текстовухи - тут вероятно внизу отдельная камера которая рендерит поверх основной то что внизу расположено.

1

или спавн вызывает кратковременные микрофризы

YEP! 

для чего и существуют загрузочные экраны, где и происходят все самые жирные процессы для подготовки игрового мира

1

После спауна нужно удаление, а оно засоряет память. Поэтому по возможности лучше что бы предмет телепортировался по сцене.

1

В данном конкретном случае программист криворукий. Можно было их просто скрыть чтобы понизить нагрузку на проц и видео.

1

Очевидно, потому, что игры давно не пишутся с нуля, а используют готовые движки. С точки зрения картины в целом это алогично. С точки зрения разработки в рамках конкретного движка это самый простой способ. Один из многих слоёв абстракции, за которую приходится платить.

про Unity не знаю, а в случае с GameMaker удаление может вызвать неожиданные ошибки. порой игра крашится, когда вылезает непредусмотренное обращение к параметрам удаленного обекта, даже если есть проверки на его существование.

Комментарий недоступен