Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Способы избавиться от экранов загрузки в играх?

#разработка_игр


Ну или хотя бы минимизировать их количество.
    


Ответы

Ответ 1



Один из способов -- сделать загрузку неявной на примере реализации из серии игр Tomb Raider. Если присмотреться к игре, то там время от времени попадаются условные разделения локаций в достаточно открытом мире. В таких переходах сам персонаж замедляется и делает некое действие. В случае с TR это медленное и аккуратное прохождение через узкий проход/дырку в стене или через просто узкую расщелину. (в такие моменты даже теряется управление. То есть нельзя остановиться и пойти обратно, она обязательно перейдет на "следующий уровень" ) В таких случаях можно сделать анимацию из нескольких частей. При помощи этих частей на медленных компьютерах можно останавливать анимацию в достаточно "природных" местах и это будет выглядеть нормально и не резать глаз. Это прохождение долгой канатной дорожки. Иногда это прохождение по "луже" грязи. (искать примеры в игре и делать гифки было уже влом) В данных двух примерах можно остановиться и пойти обратно, но это займет продолжительное время, за которое мы успеем выгрузить кусок одного уровня и подгрузить кусок другого. Явные же экраны загрузки в TR используются только если никак нельзя сделать по-другому. Например, если подойти к костру и выбрать локацию для перемещения. Хотя при большом желании, даже здесь можно было бы сделать анимацию как Лара уходит "в закат" с одного уровня, а потом затемнение экрана и появление Лариски на новой территории где она приходит в какую-то начальную точку к костру. Но, видимо, это было сделать сложнее и разработчики решили не запариваться с этим :) Если вооружиться данным принципом, можно минимизировать количество загрузок в вашей игре и подумать как в вашем случае возможно проделать то же самое. На практике это можно сделать асинхронной подгрузкой сцены в ту, где мы сейчас находимся. Для реализации этого понадобятся знания из статей: https://docs.unity3d.com/Manual/MultiSceneEditing.html https://docs.unity3d.com/ScriptReference/SceneManagement.LoadSceneMode.html мы делаем цепочку из сцен. 2 переходные сцены между уровней мы грузим в любом случае. Это нужно, что бы мы могли из одного уровня через расщелину заглядывать в другой :) На практике это выглядит приблизительно так: Но не нужно воспринимать слишком буквально в данном случае переходную сцену. Это может быть буквально всего 2 сцены, просто которые залезают одна в другую объектами.

Комментариев нет:

Отправить комментарий