Vlad Ivanov

Карта, Ландшафт,
Дорожная карта - Часть 2
На данной странице я расскажу о создании оптимизированной
безграничной и живой карты
Основа левел дизана - карта, ландшафт с размещенными на нем объектами, на основе которого создается атмосфера окружения и происходят все события. Карта в нашем Игровом Мире отличается двумя особенностями - она живая и она безгранична!

Это 2-я Часть рассказа о генерации безграничной живой карты.

Чтобы перейти на предыдущую 1-ю Часть, нажмите кнопку ниже.

Безграничная карта
система процедурной модульной генерации
1 - карта больших размеров. Размер карты должен быть достаточно крупным, чтобы локации на разных концах карты были совершенно оторваны друг от друга, имели бы совершенно разные свойства, например: природные ресурсы, разные биомы (жаркие песчаные пляжи, заснеженные горы, непролазные джунгли). Все эти противоположные по свойствам биомы должны одновременно находиться на карте, но зайдя на возвышенность одного биома, в далеке вы не увидите даже намека на другой биом.
Карта должна быть многоуровневая (вертикальный геймплей), наложение нескольких уровней систем навигации (navmesh) для ботов один над другим. Например: есть асфальтовая дорога (с навигацией для ботов), под ней под землей проходит туннель (с навигацией для ботов), а над ней висячий мост между скалами (с навигацией для ботов).
2 - Максимальная оптимизация. Вся наша карта собирается из однотипных модульных кусков, по разному повернутых и несущих на себе разные дорожные маршруты, локации и объекты. Таких кусков карты всего 8 и они идеально стыкуются друг с другом рельефом, текстурой и дорогами. Из этих 8-ми квадратов, как из конструктора Lego, собирается карта размером в 729 (27*27) квадратов. При этом в оперативной памяти хранится всего 8 квадратов.
Определенные куски карты идеально подходят друг другу, стыкуясь изгибами рельефа, так называемыми "Рельефными замками".
Вот как карта выглядит в собранном виде.
Ниже схематично представлена карта с текстурой, объектами и растительностью.
Иерархия безграничной карты
Как же выглядит система подразделений нашей карты?
Если посмотреть карту любого государства, то вы увидите, что оно делится на области, в каждой из которых находится несколько городов. Каждый город делится на районы, в каждов районе есть несколько дворов, образованных домами.

ИТАК: Все наше игровое пространство по типу Области состоит из 9-ти Регионов (Городов). За каждый регион отвечает отдельный сервер, следовательно игровое пространство будут обслуживать 9 серверов.

Каждый сервер будет иметь свои особенности:

  • если это выживание, то на каждом сервере будут свои уникальные животные и ресурсы
  • если военный симулятор, то каждый сервер будет являться отдельным госудорством, стратегически уникальным и состоящим в политических отношениях с другими государствами
  • если это Role Play игра, то каждый сервер - это отдельный остров со своими законами и порядками.
Главная особенность в том, что все эти сервера являются частью одного игрового пространства, сделаны в одном сеттинге и подчиняются одному пакету игровых механик.
Преходы между серверами осуществляются посредством дорожных порталов, проходя через которые отгружается один сервер и подгружается другой. Про переходе на новый сервер, старый сервер запоминает ваши достижения (между вайпами) и вернувшись назад вы увидите на месте ваш домик, построенный пару дней назад.
Существует понятие "Чанк" - это радиус вокруг игрока, в который подгружается или отгружается информация об объектах и событиях, происходящих в этом радиусе. Например: захватив одну точку на карте, солдаты покидают ее локацию и пробегают через поле ко второй точке. В это время информация о первой точке плавно отгружается, а о второй точке - подгружается. Таким образом подбегая ко второй точке, вы постепенно начинаете слышать взрывы и видеть мечущихся по ней людей. Этот переход можно сделать максимально плавным, без рывков и лагов (есть идеи).
Дорожные замки
На рисунке ниже показана дорожная карта одного из кластеров.
В названии зашифрована конфигурация кластера.
За скопками информация о том, что дорога зашла в портал 1 и вышла в портал 6.
В скопках информация том, что дорога прошла через 1-4-5-6-9 районы прохождения.
Заголовок 1-6(1-4-5-6-9) станет именем переменной в таблице кластеров.
Моделируем и скульптурируем наш кластер.
Каждый кластер имеет 12 дорожных порталов.
Делаем микроскульптинг и текстурируем наш ландшафт.
Как генерируется дорожная сеть
Преходы между серверами осуществляются посредством дорожных порталов, проходя через которые отгружается один сервер и подгружается другой. Про переходе на новый сервер, старый сервер запоминает ваши достижения (между вайпами) и вернувшись назад вы увидите на месте ваш домик, построенный пару дней назад.
На рисунке ниже показан пример применения дорожной карты к ландшафту.
На рисунке ниже представлены некоторые локации нашей карты.
Все собиралось в Blender.

Это 2-я Часть рассказа о генерации безграничной живой карты.

Чтобы перейти на предыдущую 1-ю Часть, нажмите кнопку ниже.

This site was made on Tilda — a website builder that helps to create a website without any code
Create a website