Игра на основе карты реального мира

Наверное, каждый мечтал загрузить в любимую игру свой родной город и побегать по знакомым улицам. Скоро у вас появится такая возможность. Встречаем: Generation Streets, игра на основе OpenStreetMap. Суть такова: берём карту, превращаем домики в трёхмерные, натягиваем текстуры, расставляем деревья, уличные фонари, опоры ЛЭП и прочий визуальный мусор. Получается примерно так:

Игра на основе карты реального мира Gamedev, Игры, Компьютерные игры, Карта мира, Openstreetmap, Длиннопост
Загрузить можно практически любую точку планеты, кроме Северного полюса и Антарктиды. Я уже прошел регистрацию в Steam и готовлю игру к публикации, первая версия выйдет в ближайшие 2-3 недели. А пока вот еще скриншоты.


Москва:

Игра на основе карты реального мира Gamedev, Игры, Компьютерные игры, Карта мира, Openstreetmap, Длиннопост

Тольятти:

Игра на основе карты реального мира Gamedev, Игры, Компьютерные игры, Карта мира, Openstreetmap, Длиннопост

Кинель-Черкассы, село в Самарской области:

Игра на основе карты реального мира Gamedev, Игры, Компьютерные игры, Карта мира, Openstreetmap, Длиннопост

Ну и так далее.

Игра на основе карты реального мира Gamedev, Игры, Компьютерные игры, Карта мира, Openstreetmap, Длиннопост

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

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

Между прочим, псевдо-постапокалиптический сеттинг выбран именно из-за недостатка данных, с его помощью маскируются неизвестные параметры. А еще он позволил рисовать все мосты и эстакады полуразрушенными (это гораздо проще, чем анализировать плоскую карту и пытаться понять, где и как идут съезды с эстакад; и все равно не факт, что угадаю).

Игра на основе карты реального мира Gamedev, Игры, Компьютерные игры, Карта мира, Openstreetmap, Длиннопост

Вид от третьего лица с отдаленной камерой также выбран из-за низкой детализации. На самом деле визуального мусора можно было нагенерировать и побольше, но я уже упёрся в возможности своего самописного движка, который и так не особо блещет производительностью.

# Про геймплей

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

# Про OpenStreetMap

OpenStreetMap - открытая карта, которую рисуют сами пользователи. Как Википедия, но в мире географических карт. Главное отличие OpenStreetMap от, например, народной карты Яндекса в том, что геоданные распространяются под свободной лицензией ODbL, а это значит, что можно скачать исходник всей планеты (около 50 Гб сжатых данных) и делать с этими данными что угодно. Например, вот такую игру.

На основе OSM работают многие сервисы. Вы, возможно, сами пользуетесь каким-нибудь сервисом на основе OSM и даже не знаете этого.

Детализация и точность данных варьируется на разной местности. Некоторые населенные пункты прорисованы с точностью до каждого дерева, на некоторых висит только пара центральных дорог. Крупные города, как правило, прорисованы более детально мелких деревень и сёл, но есть и исключения. Самую знаменитую историю про картографирование села Краснохолм можно почитать на Хабре: https://habr.com/post/211430/

# Про рельеф

OSM не хранит данные о рельефе, поэтому за картой высот пришлось обращаться к другим источникам. В глобальном масштабе планеты данные весьма детальные, но при приближении всплывает много неточностей и смещений. Например, в Тольятти у Комсомольского района есть крутой склон к Волге. Возвышение на карте высот смещено к югу, из-за чего вода затекает прямо на склон. Такие нестыковки приходится ретушировать при помощи шейдера:

Игра на основе карты реального мира Gamedev, Игры, Компьютерные игры, Карта мира, Openstreetmap, Длиннопост
Желтая полоса - это пляж. Все, что ниже него, это уже как бы Волга (формально вода по-прежнему на склоне, просто шейдер ее не прорисовывает). Но это скорее исключение из правил, в целом все более-менее прилично.

На этом пока всё, как только игра будет опубликована в Steam, напишу пост с анонсом.
Игра на основе карты реального мира Gamedev, Игры, Компьютерные игры, Карта мира, Openstreetmap, Длиннопост

Лига Разработчиков Видеоигр

6.7K постов22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Вы смотрите срез комментариев. Показать все
1
DELETED
Автор поста оценил этот комментарий

а где ты карту высот брал?

если на террейн.парти, то там только большие площади. а где взять маленькие, более точные?

раскрыть ветку (8)
2
Автор поста оценил этот комментарий

viewfinderpanoramas, там сборка из SRTM и ASTER GDEM. Лицензия несвободная, но позволяет распространять данные при условии невозможности получения исходной высоты (я делал перепроецирование в проекцию Меркатора).

раскрыть ветку (7)
Автор поста оценил этот комментарий
С того же Google earth можно брать данные по высоте, строить путь, и получать в каждой точке значение. Не знаю, на чем базируется это, может на том же srtm, и потом интерполируется для каждого пиксела, но попробовать можно
раскрыть ветку (3)
Автор поста оценил этот комментарий

На первый вопрос: нельзя

раскрыть ветку (2)
Автор поста оценил этот комментарий

что нельзя? брать высотные данные? тогда отвечаю - можно. нарисовать путь, сохранить его, перегнать kmz в txt и все отправить в arcgis - будет 3d поверхность.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Про лицензию не забыли?

Автор поста оценил этот комментарий

viewfinderpanoramas ещё частично с генштаба срисован, так что с лицензией там всё сложно, вплоть теоретически до проблем с ФСБ :-)  И те данные неплохо дополнялись доработанными самими NASA/USGS данными SRTM, сейчас они по этому адресу лежат: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/ — насколько помню, в разрешении 1 секунда там получше покрытие.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Спасибо за ссылку. Лицензию на использование еще бы найти. И да, SRTM же только до широты 60 градусов, не?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Лицензия там Public Domain, скорее всего. SRTM да, только до шестидесяти, зато разрешение втрое лучше, отдельные опоры ЛЭП видны :-)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку