> Вероятно сэр не слышал о том, что разные карты зачастую используют они
> и те же ресурсы, нет? Очень часто так бывает, знаешь ли. Очень зависит от природы карт, игры и прочая. Тем паче что учет взавимозависимостей и пререквизитов в указанном виде превратит простой как валенок даунлоадер в конкретный брейнфак, сравнимый по сложности с иным пакетным менеджером. Не то чтобы оно нереализуемо, в xonotic или BfW например что-то типа такого есть. Но это все-таки основательно добавляет работы програмерам и заметно повышает риск глюков. В указанных задумка была в том чтобы дать юзерям возможность грузить аддоны с серваков, так что без такой штуки это не вышло. Но там все относительно просто. И опять же полный прелоад до начала игровых процессов. Потому что стыковать даунлоадер с зависимостями с resource manager'ом - вообще вынос мозга, нечто из серии "фантомас в очках на аэроплане".
> Потому скачав одну карту и все ресурсы к ней ты считай скачал ещё несколько
> других процентов на 90%. Обычно соседних.
А это вообще как повезет. А что если чувак телепортнулся через полмира в совсем другую локацию? Он должен ..цать минут курить бамбук? Пропадение чувака из игрового мира на заметное окружающим время - это не только былинный отказ, но и повышенный риск нестандартных глюков. И много интересных вопросов. Например, какой статус у чувака в игровом мире должен быть на этот период? На какой карте он для сервера? На старой? Новой? В вакууме? Можно ли его это время атаковать? В общем получаются костыли, загаживающие игровой процесс техническими моментами. Разбивка мира на карты сама по себе то костыль, только потому что большой мир с кучей объектов вызовет адский жрач ресурсов на обсчет и на такой компромисс идут не от хорошей жизни, а чтобы снизить сложность вычислений + потенциально можно разнести обсчет разных карт на разные сервера.
> Такого не произойдёт только если подавляющее большинство моделек в игре
> будут уникальными, а это крайне редкий случай. Это во-первых.
Зато упомянутые моменты никуда не денутся. Заранее укачать все ресурсы - сильно упрощает resource manager, например. То-есть при этом resource manager в принципе не должен испытывать обломов и заботиться о их навороченной обработке "ой, а давайте это догрузим, и еще 20 зависимостей, а там еще 20, а там .. ну в общем ща я вам тут полмира скачаю".
> Во-вторых при прохождении практически любой игры радикально всегда известно куда может
> направить свои стопы игрок дальше.
А вот это - совсем не факт. На карте может быть вагон телепотеров, NPC или каких там еще объектов, после взаимодействия с которыми может быть переброс на иную карту. У игрока может быть заклинание (или что либо эквивалентное), телепортирующее его там куда еще. Ах, вы об этом не подумали? Так я о том и говорю: RPG-образные игры это не коридорные шутеры, где заранее известно куда дальше пойдет игрок. В таких играх у игрока как правило полная свобода действий на предмет того куда ему валить в игровом мире.
> Количество выходов из локации обычно конечно
Оно, конечно, да, однако см. выше - они могут быть попросту не такими простыми как кажутся. Иногда
> и вовсе не обязательно грузить весь мир сразу. Причём если говорить
> конкретно об RPG, то множество переходов за короткий промежуток обычно подразумевает
> путешествие по уже ранее посещённым картам, а они уже в кэше.
Технологически, обычно, уважающий себя движок MMORPG-like игр может
1) Телепортировать игрока куда угодно. Это позволяет GMам выполнять технические работы (например, вытаскивая незапланированно застрявших из-за бага игроков), мапмейкеры не парятся проблемами resource manager-а, просто реализуя желаемую логику в рамках своей задумки. Скрипты NPC и прочих - могут перебрасывать игрока туда куда и задумано, etc. И все они могут считать эту операцию простой и быстрой. А у вас это будет не так...
2) Спаунить любых монстров в любой локации. Что подразумевает что они все у клиента уже есть. Ибо вгрузка ресурсов для монстра прямо по ходу пьесы - это глюки и тормоза у клиента и брейнфак у програмеров, у которых ресурс-менеджер превратился в глючного монстра.
3) Все эти интерфейсы доступны для относительно высокоуровневого скриптинга и ручного дерга у народа с специальными правами. Что позволяет устраивать некие кастомные массовые эвенты, которые или идут под управлением кастомного скрипта спецом под этот эвент, или вручную оркеструются командой неких ассистентов, реализующих задуманную сцену (все-таки для RPG это весьма логично, да?).
Поэтому в RPG все это в общем случае все это дергается кем угодно и как угодно. Проще всего считать что это именно так. Тогда и реализация упростится, и турбо-костыли, портяшие гибкость в реализации карт, событий и прочая - с самого начала не захочется донавешивать.
> В-третьих загрузить много в оффлайн-хранилище можно. Приложение, представь себе, может
> попросить у пользователя выделить ему больше места. Внезапно, да?
Вот только браузеры на это реагируют уж кто как. Там с этим разброд и шатания. Одни мозг имеют клиенту негуманно. Другие могут выжрать все место на диске. Третьи и так и сяк, а младший - вовсе был дурак...