4448

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

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

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

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

4.4K постов19K подписчиков

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

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

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

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

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

- Не употребляйте мат без необходимости


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

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

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

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

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

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

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

- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры, для этих целей больше подойдёт Discord-сервер сообщества

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

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

ЗАПРЕЩЕНО:

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

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

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


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

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

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

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

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

Подробнее
Лучшие посты за сегодня
10666

Такие времена

8834

Не опять, а снова

Не опять, а снова
7134

Что делать, если оказался на рельсах в метро?

5586

Расписка

5488

Человек человеку зомби

5277

Конечно, дорогая

Конечно, дорогая
5053

Я не то имел в виду

Я не то имел в виду Мозговой штурм, Мемы, Мат, Работа
Показать полностью
preview
5004

Ответ на пост «Совсем уже обнаглели» 

Показать полностью
4713

Не Моргенштерном единым живет молодежь

4650

Дети легли стрелкой на поле, чтобы указать на преступников. Реальные и удивительные истории из жизни

Дети легли стрелкой на поле, чтобы указать на преступников. Реальные и удивительные истории из жизни Истории из жизни, Находчивость, Смекалка, Дети, Гифка, Длиннопост
Дети легли стрелкой на поле, чтобы указать на преступников. Реальные и удивительные истории из жизни Истории из жизни, Находчивость, Смекалка, Дети, Гифка, Длиннопост
Дети легли стрелкой на поле, чтобы указать на преступников. Реальные и удивительные истории из жизни Истории из жизни, Находчивость, Смекалка, Дети, Гифка, Длиннопост
Показать полностью
preview
preview
4628

Выгорает

Выгорает
4437

Времена

Времена Джеймс Бонд, Самокат, Времена, Было-Стало, Юмор, Картинка с текстом
Показать полностью
preview
3896

Ответ на пост «Причины вымирания» 

3886

Кайф, временно не раб)

3837

Коварный план

Коварный план Комментарии на Пикабу, Скриншот, Коллектив
Показать полностью
preview
3831

Минтранс предложил увеличить стоимость за проезд по платным дорогам до Европейского уровня

3543

Депрессия

Депрессия Грустный юмор, Скриншот, Twitter, Депрессия
Показать полностью
preview
2995

Ответ на пост «Сам виноват» 

2929

Аптечный маркетинг

2789

Отличный план

Отличный план Комментарии, Комментарии на Пикабу, Дети, Скриншот
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: