Мне просто нужно создавать экземпляры всей моей графики в память, которые загружаются из файла? Каков наилучший способ справиться с этим? Нужен ли мне какой-то менеджер ресурсов, который создает эти графические экземпляры во время экрана загрузки, а затем обращается к ним позже?
Каковы общие вещи, которые должны быть предварительно загружены в играх? Сколько я должен предварительно загрузить?
Стоит ли показывать какой-то индикатор прогресса? Как я могу сократить время загрузки? Как должен выглядеть экран загрузки?
Каковы хорошие примеры загрузки экранов? Есть примеры кода?
В частности, моя игра для Andriod (Java / Mobile), но не стесняйтесь сделать ваши ответы общими.
Ответы:
Типичные вещи для предварительной загрузки - это все, что вам нужно в режиме реального времени. За исключением таких понятий, как клип-карты и мегатекстуры (где идея состоит в том, чтобы загружать нужные вам части и итеративно обновлять их по мере перемещения по миру), вы захотите сохранить все необходимое для своего уровня / области / чего бы то ни было в памяти, а не на диске. IO - sloooow, и вы не хотите загружать свои текстуры, когда вы поворачиваете за угол, и он собирается отображаться. И под всем, я имею в виду текстуры, звуки, сетки, метаданные ... все.
Если вы можете показать индикатор выполнения (т. Е. У вас есть точное отображение шагов загрузки в процентах), то непременно покажите его. Если нет, то хотя бы покажите что-нибудь, например, короткое текстовое сообщение или индикатор загрузки, который обновляется после каждого шага, чтобы вы могли хотя бы сказать, что что-то происходит.
Если есть что-то, что, как вы знаете, понадобится, но не сразу, вы можете загрузить это в фоновом режиме и остановить игру (не здорово, но убедитесь, что это случается редко), если это необходимо слишком рано. Это поможет вам сократить время загрузки. Я не очень разбираюсь в разработке для Android, и не слишком ли много устройство будет обрабатывать вместе с игрой, но, как правило, оно довольно слабое на процессоре, поэтому там не должно быть больших проблем.
источник
Вы должны быть "Сетчатые сплайны"
источник
Зависит от того, хотите ли вы использовать один экран загрузки и мгновенные переходы уровней или несколько загрузок.
Я бы сказал, что последний будет лучше по памяти.
Что-то вроде:
//First loading screen
Load menu layouts or whatever
Load GUI assets
Show something to pass the time
Switch to menu
//In between levels
Remove any graphics specific to the last level - get rid of something that isn't going to reappear like a boss.
Load level graphics that haven't already been loaded
Again, show progress or something to pass the time
И когда вы загружаете, убедитесь, что у вас нет черного экрана. Или в этом отношении статический экран. Много раз я некоторое время видел статическое изображение при запуске приложения и сразу думал, что оно сломалось.
Хороший способ вовлечь игрока в игру - это хорошо нарисованный фон сцены в игре или какой-нибудь сюжетный справочник; полоса загрузки с / без процентов, если она не является статической «Загрузка»; а затем, возможно, некоторая информация.
источник
На платформах iphone и Android вы должны загрузить все текстуры и звуки. Загрузка текстур и звуков очень медленная на старых телефонах, таких как iphone 2G, 3G или G1. Вы не можете сделать это в игре.
источник
Как уже говорили другие, если вы сможете загрузить все данные уровня до того, как начнете его воспроизводить, то у вас будет намного лучшая производительность. Это распространенный источник проблем во время кадра для загрузки ресурсов во время игры.
Обычные вещи во время загрузки экрана - это статическое фоновое изображение, очень простой уровень, несколько советов и подсказок о том, как играть, быстрая анимация и т. Д.
Вот экран загрузки для APB. Довольно круто. :) http://www.youtube.com/watch?v=p5STix1t_1E&feature=related
Вот некоторый псевдокод для отображения индикатора выполнения на экране загрузки:
Тьфу, вынужден использовать! = Потому что он прервал рендеринг кода, когда я использовал <
источник
Загрузочные экраны могут быть использованы, чтобы скрыть почти все; загрузка ресурсов, любых необходимых соединений (tcp и т. д.), заполнение карт игровыми объектами и инициализация.
У меня есть тенденция к тому, чтобы иметь дело с каким-то менеджером активов (или, может быть, менеджером для каждого типа активов - звуков, графики и т. Д.) И заставлять их загружать то, что будет использоваться в память. Тогда просто сделайте так, чтобы ваша игра вытащила ссылки из менеджеров.
Отображение индикатора выполнения, определение того, что предварительно загружать и т. Д., Кажется, зависит от вашего проекта, времени загрузки и ваших вкусов. Индикаторы прогресса хороши, если они точны и долго загружаются (приятно знать, как долго нужно ждать).
С учетом сказанного, на моем телефоне с Android я предпочитаю приложения, которые имеют свой собственный, со вкусом сделанный экран загрузки. Ему не нужна полоса, но анимация сообщает пользователю о работе программ. Я полагаю, что у Android есть панель по умолчанию, которую вы можете использовать, которая отлично работает.
Вот такой вопрос, который может вас заинтересовать.
источник
Стоит отметить, что платформы с требованиями к контролю качества (например, X360, PS3, DS и т. Д.) Требуют, чтобы у вас на экране загрузки была анимация (или фактически любой экран, который остается статичным в течение более нескольких секунд). ).
Это связано с тем, что в противном случае пользователь может подумать, что ваша игра потерпела крах, хотя на самом деле загрузка занимает много времени. Даже там, где это не является обязательным требованием, я бы, конечно, посоветовал это.
Любая форма анимации хороша, но простой индикатор выполнения может быть не лучшим, так как любые большие шаги в загрузке могут привести к тому, что индикатор выполнения не будет двигаться вообще какое-то время, то есть экран будет таким же статичным, как если бы нет бара вообще. Лучше показывать какое-то постоянно движущееся изображение, например вращающийся значок, в дополнение к индикатору прогресса.
источник
Для экранов загрузки в Conquest , я пошел с небольшим описанием миссии (какой тип игры это было, а также немного сюжетной линии для миссии) и некоторой базовой справкой по командам.
На заднем плане я загружал звуки. Графика была загружена по требованию, и это, казалось, работало довольно хорошо для нашей игры, но звуки были медвежьим, поэтому я предварительно загрузил все звуки, необходимые для миссии. Кнопка Загрузка / Пуск отключена, пока все не загружено, но у меня нет анимации какого-либо типа (что было бы неплохо добавить).
Это наша первая игра, поэтому мы все еще многому учимся, но пока у нас все получилось.
источник