4446

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

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

Найдены возможные дубликаты

+817

И добавить общественный транспорт, чтобы можно было ехать в игре на работу, пока едешь на работу.

раскрыть ветку 76
+381
И добавить возможность грузить базу фотографий коллег, что бы натягивать их на морды пришельцев
раскрыть ветку 26
+183
И не только на морды
раскрыть ветку 11
+13

Вспоминается один из эпизодов Черного Зеркала, где копии сознания коллег хранились в приватном виртуальном мирке главного разработчика.

раскрыть ветку 5
+22
У моего друга вштало большое предложение - добавить возможность натягивать пришельцев с натянутыми мордами коллег.
раскрыть ветку 1
0

И оружие разнообразить.

раскрыть ветку 5
+72

И посадить туда теток, которым вечно холодно и когда они начнут закрывать окна, их можно будет отпиздить).

раскрыть ветку 17
+6
Как же жизненно про вечно мерзнущих тёток, выключающих кондиционер, в то время, как большинство умерает от жары
раскрыть ветку 16
+21

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

раскрыть ветку 2
+1

Убивая тупящих бабок особо изощренным способом.

раскрыть ветку 1
+19
"Глубина-глубина,я не твой"..
раскрыть ветку 5
+8

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

раскрыть ветку 3
+8
отпусти меня, глубина... Эхх, хорошая книга, надо перечитать)
+34
Давно хотел такое в игре - приезжаешь на работу, перебил там всех, сжёг нахрен, попрыгал на развалинах... И пошел блин на работу.
раскрыть ветку 1
+33
Главное не перепутать.
+67

А ты хорош =)

ещё комментарии
+11
Не только ехать в игре, а ещё работать в игре и получать внутриигррвую валюту.
раскрыть ветку 4
+25
А потом на внутриигровую валюту покупать внутриигровую еду. И есть ее внутри игры.
раскрыть ветку 1
+4

Ипотеку добавить обязательно!

раскрыть ветку 1
+7

И сделать симулятор работы

раскрыть ветку 1
+30
Чтобы симулировать работу пока симулируешь работу?
Иллюстрация к комментарию
+4
Авто тоже
+3
как же будет обидно если в игре заведешь девушку, а в жизни ты председатель лиги магов
+2

Что так мелочно?
Сразу пихаем тайкун, чтоб можно было строить себе дороги и жд пути по которым и будем ехать на работу, пока работаем на работе и получаем деньги которые уходят на работу работы.
А потом добавляем производства на которые будем работать для того чтобы работала логистика на которой работаем чтоб работали производства, которые будут производить производство для работы производства.

Иллюстрация к комментарию
+1
И добавить в транспорт бабку, которой всегда душно.
+1

Или чтоб можно было стоять в пробке пока стоишь в пробке.

0
Вы случаем не сценарист тачки на прокачку ?)))
0
Если бы он прокачку и ко-оп с друзьями завёз, эх...
0
А то апокалипсис уже наступил, а пенсия - еще нет.
-1
Приходиш с роботы и такой говоришь "ща отдохну" и едешь на свою роботу в игре
+74

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

раскрыть ветку 26
+40

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

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

раскрыть ветку 6
+1

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

раскрыть ветку 5
+56

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

раскрыть ветку 17
+28

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

раскрыть ветку 11
+12
автор добавь бабок на лавки, в бонусный уровень, и звук добавь:"наркоманы, опять инопланетян лупят, со своими наркотиками обнаглели совсем"
раскрыть ветку 2
+2
А данные с Гугл карты? Там и цвет и высота
раскрыть ветку 1
+1
ЕвроТракСимулятор. Там помоему есть карты россии
+34

Сука, Кинель-Черкассы особенно хорошо получились!

раскрыть ветку 14
+29

Для Сталкера.

раскрыть ветку 2
+7

Срисовали нас! Шухер!

раскрыть ветку 1
+22

Для человека который тут живет я аж дважды ахуел,от того что про тут кто то знает,и от того,что нарисовали такую глушь. Хотя если автор скажет что это за улица я ведь проверю

раскрыть ветку 10
+45
Я не знаю, сарказм ли это, но суть в том, что вау-эффект действительно есть, но только для того, кто знает местность. Я когда сделал первую версию и загрузил свой город, достаточно долго просто летал по нему и рассматривал места. "О, а тут моя школа. О, а вот по этой тропинке я на велике на набережную ездил." Незнакомые города таких эмоций не вызывают.


Конкретно про улицу в Кинель-Черкассах, это улица ведущая к старому аэродрому. Белые дома слева - ул. Хальзова.


Кстати, на всех скриншотах в правом нижнем углу написаны координаты места, где они были сняты.

раскрыть ветку 8
-9

Вернее, смотреть могут не только лишь все, мало кто может это делать ©

ещё комментарий
+28
А я подпишусь) помню как во времена ГТА мечтал чтобы в игре был мой маленький северный город и я мог бы по нему ходить и чё то делать) технологии из каминг) жду продолжения
раскрыть ветку 75
+23

Воооо, вот ради этого всё и создавалось. Дайте, кстати, ссылку на ваш маленький северный город, посмотрим, насколько он детализирован.

раскрыть ветку 74
+2

Киров!

раскрыть ветку 8
+1
Посмотри на Йошкар-Олу
раскрыть ветку 33
0

Можно посмотреть на станицу Староминскую (Староминский район, Краснодарский край)

раскрыть ветку 2
0

А овраг в Воркуте есть?

Кстати, а зима будет? Можно же при загрузке карты обращаться к какому-нибудь api погоды, и, в соответствии с этим, симулировать снег/дождь/Град и п.р. С отключением в настройках, конечно. Короче, ТС, щаламывай цену в 2к, я куплю! И уже хочу разработать пару модов :)

раскрыть ветку 7
0
Город Ноябрьск, ЯНАО
раскрыть ветку 3
0

Автор, а на Баку можно посмотреть ?

раскрыть ветку 2
0

А можно на Днепропетровск (Днепр), Украина глянуть? Любое место 😊

раскрыть ветку 9
0

Советская Гавань и Ванино

раскрыть ветку 2
+203

Хз че накинулись, идея интересная, только инопланетян наверно нафиг а просто войс чат для общения...
Зазвечто миниигры какиенить добавить, или в будущем различные занятия...стоять там хотдоги парить прохожим)

раскрыть ветку 74
+106
Я бы на зомбей поменял, интереснее же
раскрыть ветку 18
+91

Дваждую за зомбей, гораздо лучше будет.

раскрыть ветку 11
+16

Лучше на единоросов. С удовольствием бы их отстреливал.

раскрыть ветку 4
+1

Ну тут уж кому как.

+44
Я всегда мечтал о чём-то вроде GTA или Дальнобойщиков на реальных картах и машинах
раскрыть ветку 37
+25