Найти тему
Дмитрий Манакин

Геймдев на коленке dev#7. Открытый мир на Unity 3d с помощью Google Maps 3D Tiles.

CESIUM классный инструмент для разработчиков в Unity.
CESIUM классный инструмент для разработчиков в Unity.

Приветствую, друзья!

Хочу сегодня рассказать вам про очень классную фишку для движка Unity. Так как я все время в поиске вариантов и методов как мне реализовать, все-таки, идею полноценного открытого игрового мира в своем проекте "Шмурдяк". Чтобы игрок мог попасть в абсолютно любую точку планеты с реальным ландшафтом.

Безусловно, что было понимание, что реализовать данную фичу можно только в тандеме с каким-нибудь онлайн сервисом спутниковых карт или подобных ресурсов, который неплохо было бы соединить сразу с игровым движком. Подобные разработки сейчас, например, активно происходят в Японии где есть свой сервис для построения виртуальных мегаполисов. Отчасти вопрос можно решить используя утилиты, например для 3д моделирования в Blender, наподобие OSM, когда можно в 3д пакет перенести кусок карты из Google Maps с данными высот и ландшафта, а потом перетащить все в Unity, что в плане эксперимента я делал и сам. В частности моделировал городской район Хибия в Токио с высотными зданиями, дорогами, растительностью и подземной станцией метро. К сожалению год работы отлетел в вакуум небытия из за умершего рабочего ноутбука. Да-да, знаю... gihub, сейвить проекты в облаках и все такое... Но вот так вышло, может поленился и не научен еще был горьким опытом. Теперь я все это знаю.

Жуткая демотивация, когда куча труда просто отлетает ко всем чертям без возможности что то реанимировать. Берегите свои работы!
Жуткая демотивация, когда куча труда просто отлетает ко всем чертям без возможности что то реанимировать. Берегите свои работы!

Я не спец в геймдеве и, тем более в технология Unity, потому многие понимающие и знающие, скорее всего знают много интересных и простых вариантов выполнения моей задачи. Но я нуб и у меня свой особый путь, а подсказывать и учить меня пока некому - все на своем опыте, как есть.

Да, я знаю про процедурную генерацию, про систему чанков и все такое, но, первоочередное, что мне нужно от игрового мира - это реализм ландшафта и простота его создания. Чтобы игрок просто офигел попав, например, в свою родную деревню и пройдя по улице увидел свой дом с занавесками на окнах, которые сшила его жена, и кучей кирпичей у забора, которые он ленится сложить уже второй год, и открыл рот с возгласом "до чего дошел прогресс!" Для местностей России, впрочем, с этим могут быть проблемы, так как для карт Гугл наша страна это на 90% темное пятно терра-инкогнита, и увидим мы только те места куда добралась их машинка с панорамной камерой.

Недавно, вроде в мае, Google анонсировала довольно интересную фишку с фотореалистичными 3д тайлами своих спутниковых карт для создания виртуальных иммерсивных миров с помощью своего API. Подробно об этом вы можете почитать непосредственно от Google здесь.

Возможности нового инструмента в интеграции с Unity и UE5 открывают новые возможности.
Возможности нового инструмента в интеграции с Unity и UE5 открывают новые возможности.

При помощи платформы 3д-геопространственных данных CESIUM и ключа API от Google вы интегрируете в Unity пакет инструментов, с помощью которых получаете рабочую 3д модель планеты Земля прямо в свой игровой движок и можете работать с ней по своему усмотрению.

В частности, создав подсцену при помощи пакета Cesium вы получаете сферическую область в желаемой точке карты и можете добавлять в нее игровые объекты и т.д создавая свою локацию как при обычном процессе создания игровой локации, быстро накидать левелаут, блокаут и тд. Карта имеет свою сетку и добавив персонажа с контроллером вы получаете уже своего главного героя, который способен исследовать и перемещаться в 3д визуализации. При этом здания и препятствия тоже будут иметь свои сетки и коллайдеры создавая преграду для передвижения игрока.

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

Визуально окружение всё, конечно, пока еще так себе.
Визуально окружение всё, конечно, пока еще так себе.

Функциональность, например, личного транспорта для игрока в игре переходит на абсолютно новый уровень и не будет похожа на симуляторы дальнобойщиков и прочие автопокатушки с огромными пространствами, но тоже ограниченными только асфальтом трасс и заданием попасть из пункта А в пункт Б. Теперь игрок может ехать куда угодно и как угодно.

Единственная проблема таких игровых миров - это безжизненность и нарративная пустота, когда ничего не происходит. Однако для нашего "Шмурдяка" это не является острой проблемой, так как много геймплея будет происходить на пространствах безжизненных и малонаселенных - поля, леса и т.д. Крупные города и мегаполисы в игре не нужны и интерес в них могут представлять только исторические объекты в которых можно производить различные изыскания или придумать другой функционал - раскопки в Троице-Сергиевой Лавре или Александровской Слободе, виртуализация какого то музея и возможность его посетить - разве это не круто? Или переместиться в Гизу к пирамидам и пройтись по окружающей пустыне и обследовать завалы в Долине Царей? Вот такие пироги...

На этом разрешите раскланяться и до связи!

Если вы хотите наблюдать за моим проектом в Trello и видеть все правки и изменения в концепте игры, быть в курсе всех событий (в статьях будет не всё), то вы можете получить доступ к проекту "Шмурдяк" и получить статус участника со своей ролью в проекте - Наблюдатель. Заодно этим шагом вы окажете проекту посильную материальную помощь.

Стоимость доступа для участия в качестве Наблюдателя по индивидуальной ссылке - 500 рублей. (Если что, пишем заявку на почту с пометкой "Шмурдяк": dmitriymanakin1980@gmail.com).

Буду весьма благодарен за любую финансовую поддержку моему игровому проекту "Шмурдяк":

Через сервис Qiwi на никнейм: EVENN230

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