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

Наверное, каждый мечтал загрузить в любимую игру свой родной город и побегать по знакомым улицам. Скоро у вас появится такая возможность. Встречаем: 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.5K постов22K подписчик

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

ЗАПРЕЩЕНО:

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

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

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


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

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

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

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

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

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

мне б в "дальнобойщики" такую карту

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

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

@romanshuvalov ты молодец! Я верил, что рано или поздно, появится редактор карт, который можно привязать к цифровым картам реального мира.

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

В ets2 есть все, что нужно для построения карт россиянской действительности. Очень годно.

раскрыть ветку (5)
1
DELETED
Автор поста оценил этот комментарий
Вот только в отличие от дальнобойщиков там нет, например, ментов:(
раскрыть ветку (3)
2
Автор поста оценил этот комментарий

Так-то есть, ввели с одним из обновлений, но кроме нежданчика на трассе и завышенного штрафа они ничего больше не делают, увы.

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

Можно пойти в МП, там на кредитожоповозку (Шкода Актавиа (в игре называется Скаут)) можно поставить мигалку, матюгальник и раскраску. Уёбки на этих жоповозках очень неадекватны (машина не тормозит и имеет физику управления фуры (если купить эту жоповозку в МП и зайти в одиночный режим, то она поменяется на Сканию, от неё и физика). Матюгаться можно через войс чат, он как раз работает в определённом радиусе (имитация рации, там даже звуки начала и конца передачи есть)

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

Да там со следующим ДЛС уже Калининград и Питер выходят.

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

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

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

Автор, а могу ли я, как житель Тольятти, добавлять дома в проект?

раскрыть ветку (11)
26
Автор поста оценил этот комментарий
Можете, причем уже сейчас: http://www.openstreetmap.org (учиться здесь: http://josm.ru и задавать вопросы на форуме https://forum.openstreetmap.org/viewforum.php?id=21)
раскрыть ветку (10)
7
Автор поста оценил этот комментарий
Автор, а можно ли будет самому натягивать текстуры и корректировать высоту объектов? А то, например, Останкинская телебашня высотой с трехэтажку и с натянутой текстурой панелей с окнами будет довольно плохо смотреться.
раскрыть ветку (2)
7
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ви таки очень хитрый. Если выстрелит в осм энтузиасты даже сортиры в чистом поле прорисуют.
6
Автор поста оценил этот комментарий

Отлично!

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

Начните отсюда https://wiki.openstreetmap.org/wiki/RU:FAQ и обратите особое внимание на пункт 1.2

раскрыть ветку (5)
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (4)
3
Автор поста оценил этот комментарий

В целом нормально, местами излишне подробно (тропы там, где их нет), страшного ничего нет

landuse=recreation_ground - в России таких мест единицы, тем более в рамках одного города. У нас это в лучшем случае landuse=grass

Дома по крыше отрисованы и не подвинуты на основание, из-за этого пересечения с дорогами, а кое-где просто грубо отрисованы, как и дороги

Проходы/проезды в домах это tunnel=building_passage, а не covered=yes (это для проезда под крышей, типа как на заправках, т.е. где-то сверху над дорогой должен быть building=roof). И ставится только на той части дороги, которая под домом, соответственно у неё должны быть общие точки с домом. И это свойство дороги, а не дома. Кое-где дороги просто сквозь дом проведены без всяких разрезаний и тегов

"Гаражный кооператив" - неправильный name, такого быть не должно. Из этого названия можно определить что это landuse=garages. А name у него может быть что-то типа Автомобилист, Светофор или что-то подобное. На крайний случай ГСК №42, и то это ref=42 без name. Если имя неизвестно, то не надо его выдумывать. Здесь же Хоккейная коробка, Аптека, Парикмахерская (причём вообще без тегов shop=hairdresser), Монетка вход (это вообще что такое?), Торговый комплекс, Карусели (это парк аттракционов?), Супермаркет Холди (они ещё живы? это просто Холди с shop=supermarket, а не mall)

Улица Плодовая вполне может оказаться Плодовая улица (надо смотреть по документам) - в OSM используется натуральный порядок слов

Детский сад №59, общеразвивающего вида с приоритетным осуществлением социально-личностного развития детей; Бизнес-инкубатор №2, Муниципальный фонд поддержки малого предпринимательства г. Киселёвска - это больше похоже на official_name, для name обычно используется только до номера

public_transport=stop_position должна стоять на дороге, в месте остановки автобусов, а не на остановочном павильоне. Но по общественному транспорту всё мутно даже с учётом назреваемой реформы https://wiki.openstreetmap.org/wiki/Proposed_features/Public_Transport_v3

Нашёл power=generator, но по виду это power=substation. Если это не так, то нужно указать generator:source

Местами два об'екта имеют общие точки, хотя по факту не должно быть. Типа: тротуар подсоединён к ЛЭП, дорога касается дома, забор поверх дома.

Излишние тротуары. Во дворах обычно не любят строить отдельные тротуары и там где их нет, не должно быть параллельно дороге hightway=footway. Для этого можно на highway=service добавлять foot=yes, а service=living_street это уже подразумевает. Из-за этого куча пересечений тропинок с дорогами, которые почему-то без общих точек

Под'езды обозначаются entrance=staircase, а не main. Ну и access=private на них это как-то мутно, но это личное. И есть входы просто с именами, но больше ничего: ни магазина, ни каких-то услуг

Ё обязательно к применению, как в википедии. Киселевск - нет такого города, ну и addr:city=Киселёвск внутри города можно не указывать, равно как и addr:country - это всё можно из границ получить. Левушка - тем более странное имя для д/с

В JOSM есть внутренний валидатор, с его помощью можно многое из этого отловить. Рисовать этот район можно по bing'у без смещения

Часть исправил, Зайцу привет

раскрыть ветку (3)
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (2)
Автор поста оценил этот комментарий

Я там снёс гараж какого-то Зайца

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

Наверное, Заяй был наследием непросвещенных пользователей Мапс.ми.

13
Автор поста оценил этот комментарий
автор добавь бабок на лавки, в бонусный уровень, и звук добавь:"наркоманы, опять инопланетян лупят, со своими наркотиками обнаглели совсем"
раскрыть ветку (2)
7
Автор поста оценил этот комментарий
Обколються спайсами и лупят инопланетян в жопы
1
Автор поста оценил этот комментарий
Жиза
2
Автор поста оценил этот комментарий
А данные с Гугл карты? Там и цвет и высота
раскрыть ветку (1)
9
Автор поста оценил этот комментарий

и юристы и авторское право

1
Автор поста оценил этот комментарий
ЕвроТракСимулятор. Там помоему есть карты россии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку