Игра на настоящей карте города или района: как сделать в 2026 году
Как собрать браузерную игру на карте настоящего города, района или села: OpenStreetMap и обязательная атрибуция по ODbL, рельеф Copernicus и снимки Sentinel-2, погода из открытого API и его ограничения для коммерции, вход через MAX и Telegram, нагрузка на сервер, сроки и честные ограничения. На примере моей игры НЮТАГ.
Коротко (TL;DR)
- Игра на настоящей карте города или района собирается из открытых данных: дома, улицы и реки из OpenStreetMap, рельеф из модели высот Copernicus, земля из снимков Sentinel-2, погода из открытого API.
- У каждого источника своя лицензия. Для OpenStreetMap это ODbL: подпись на карте обязательна, а изменённую базу можно раздавать только под той же лицензией.
- Вход через MAX или Telegram без установки: игра открывается как мини-приложение из кнопки бота, личность игрока сервер проверяет сам.
- Ориентиры по моему прайсу: бот в мессенджере от 30 000 ₽, PWA-приложение от 150 000 ₽, поддержка от 20 000 ₽/мес. Игру целиком считаю по объёму механик.
Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.
Разработка игрИгра на реальной карте это браузерная игра, где поле повторяет настоящий город, район или село: те же улицы, дома, река и рельеф. Игрок узнаёт своё место, поэтому играет дольше и охотнее зовёт соседей. Собрать такую карту можно целиком из открытых источников, если соблюдать их лицензии, а войти в игру можно через MAX или Telegram, без установки приложения. Ниже разбираю, откуда берутся данные, что делает игрок, как держать нагрузку и где честные ограничения.
Кому нужна игра на карте настоящего места
Узнаваемая карта работает там, где людям важно своё место. Я вижу четыре типичных заказчика.
- Администрация района или поселения. Жители знакомятся с планами благоустройства, голосуют за двор или сквер, отмечают на карте ямы и тёмные улицы.
- Бренд или сеть точек. Маршрут по своим магазинам с заданиями и призами. Про механику с партнёрами есть отдельный разбор: квест по городу с партнёрами.
- Туризм. Гость ещё дома проходит маршрут по селу или парку, а на месте открывает задания у настоящих объектов.
- Школа или музей. Краеведение на карте своего района: где стояла старая школа, как текла река сто лет назад, кто жил на этой улице.
Свою игру такого типа я сделал сам: НЮТАГ, симулятор жизни села на 3D-карте. Это карта настоящего села в Забайкалье, где жители работают сменами, получают зарплату из бюджета села и ремонтируют свой дом. Дальше опираюсь на то, что проверил в этом проекте.
Откуда берутся данные для карты
Карту я собираю скриптом из четырёх слоёв.
- Дома, улицы, вода, границы. Из OpenStreetMap. В НЮТАГ я перевёл данные в сетку 204 на 235 клеток по 16 метров. В малых населённых пунктах OSM бывает неполным: у того села было около 300 домов и ни одной подписанной улицы. Названия восьми улиц я поставил сам, а недостающие дома жители отмечают прямо в игре, заявку подтверждает администратор.
- Рельеф. Открытая модель высот Copernicus DEM. Вариант GLO-30 даёт сетку около 30 метров, на холмы и долины вокруг города этого хватает. Отдельные здания в нём не разглядеть.
- Земля под картой. Снимки Sentinel-2. По описанию миссии у части каналов разрешение 10 метров, а пара спутников проходит над одним местом примерно раз в 5 дней. Я беру снимки под каждый сезон: зимой снег, осенью жёлтая трава.
- Погода. Из открытого API, например Open-Meteo. В игре идёт тот же дождь или снег, что за окном.
Коммерческие карты брать нельзя: их условия обычно запрещают переносить данные в свой продукт. В НЮТАГ я это проверял, и дома дорисовывались только через OSM и самих жителей.
Лицензии и атрибуция: что обязательно
OpenStreetMap. Данные распространяются по лицензии ODbL. На странице об авторских правах сказано: нужно указать OpenStreetMap как источник и дать понять, что данные доступны по ODbL; в интернете достаточно ссылки на эту страницу. Если вы изменили данные или построили на них свою базу, распространять результат можно только под той же лицензией. Подпись я ставлю в угол карты и в раздел «О проекте».
Тайлы OSM. Готовые картинки карты с серверов OSM для игры не годятся. По правилам использования тайлов нельзя заранее скачивать районы и делать офлайн-режим, доступ могут закрыть без предупреждения, гарантий работы нет. Поэтому я беру сырые данные и рисую карту у себя.
Copernicus DEM. Лицензия бесплатная, но при публичном использовании нужна строка об авторских правах. Точный текст дан на странице набора данных, его я копирую в раздел «О проекте» без изменений.
Sentinel-2. В условиях Copernicus Data Space доступ к данным Sentinel описан как бесплатный, полный и открытый, а детали регулирует отдельное правовое уведомление. Перед запуском коммерческого проекта сверяю его актуальную редакцию.
Погода. Здесь есть ловушка. В условиях Open-Meteo бесплатный API разрешён только для некоммерческого использования, для коммерческого проекта нужен платный тариф. Данные идут по лицензии CC BY 4.0, то есть с указанием источника. Если игра для бренда, закладываю тариф в смету или беру другой источник.
Вход через MAX или Telegram
Игроку не нужно ничего ставить. Игра открывается как мини-приложение из кнопки бота или по прямой ссылке.
В Telegram мини-приложение получает данные игрока в строке initData. В документации Telegram прямо сказано, что эти данные надо проверять на сервере по подписи с токеном бота и отбрасывать устаревшие. Ссылка вида t.me/имя_бота?startapp=метка передаёт в игру параметр: так я отличаю игрока с плаката у администрации от игрока из рассылки.
В MAX, по документации платформы, мини-приложения работают только внутри чат-ботов. Прямая ссылка строится как max.ru/имя_бота?startapp с параметром до 512 символов, кнопка запуска настраивается в кабинете бота. Подключиться к платформе могут юрлица, ИП и самозанятые, резиденты РФ, поэтому бота регистрирует заказчик на себя. Как один код обслуживает оба мессенджера, я разбирал в статье про игру в Telegram и MAX для бизнеса.
В НЮТАГ вход через MAX работает двумя способами: мини-приложение из кнопки бота или код через бота, если игра открыта в обычном браузере. Гостям карта видна без входа.
Что игрок делает на карте
Карта сама по себе быстро надоедает. Нужно действие, привязанное к месту. Варианты под разные задачи:
- найти свой дом и обустроить его, а недостающий дом отметить на карте;
- пройти маршрут по точкам и открыть задание у каждой: вопрос, фото, мини-игра;
- выйти на смену или выполнить поручение и получить игровую валюту;
- проголосовать за проект благоустройства или выбрать лучший двор;
- сыграть в сезонное событие по датам местного календаря.
Если среди игроков будут школьники, это меняет правила по данным и по фото. В НЮТАГ фото на аватар загружает только взрослый и только с согласием, детям доступны нарисованные аватары. Подробнее в статьях про игры для детской аудитории и какие данные собирать в игре.
Как не уронить сервер
Падает обычно первый экран и общий мир, и то и другое лечится заранее.
- Первый кадр. На первом показе НЮТАГ жалоба была «тормозит, карта белая»: первый кадр ждал 13,6 секунды. Я заменил тысячи мелких операций одной маской, собрал шейдеры заранее и стал показывать карту по слоям. Первый вход стал 6,3 секунды, повторный 2,4.
- Слабые телефоны. Если средний кадр дольше 22 мс, игра сама включает лёгкий режим. Без WebGL открывается плоская карта.
- Общий мир. Сервер держит мир в памяти и рассылает только изменения по WebSocket, данные лежат в SQLite. На стенде 150 игроков онлайн заняли 3% ядра, 400 игроков 20%, предел я оцениваю в 600-700.
- Сторож и самолечение. Раз в минуту проверка здоровья, перезапуск после двух промахов. Раз в 10 минут сканер чинит данные: отрицательные монеты, зависшие смены.
- Размер входа. Сейчас на вход уходит 476 КБ стартовых данных, перед ростом до сотен игроков их нужно сжимать.
Если запуск совпадает с рассылкой администрации или постом бренда, я заранее прогоняю нагрузочный тест и сквозной тест двумя браузерами. Подробно про общий мир писал в статье о мультиплеере в браузере.
Сроки и честные ограничения
Первая играбельная версия НЮТАГ появилась за несколько дней, но доводка скорости и экономики заняла больше, чем сами функции. Под заказ я планирую так: неделя на карту и проверку данных, дальше механики по одной, каждая с тестом.
Ограничения, о которых говорю заранее:
- Карта точна настолько, насколько полон OSM в вашем месте. В маленьких сёлах дома и улицы придётся дорисовывать.
- Рельеф 30 метров сглаживает овраги и обрывы.
- Снимки бывают с облаками, под каждый сезон приходится выбирать дату вручную.
- Работа на очень слабых телефонах по видеокарте в НЮТАГ пока не проверена.
- Аккаунты MAX и Telegram одного человека по умолчанию раздельные, связывание нужно делать отдельно.
- Экономику придётся настраивать по отзывам. Я написал модель на 730 игровых дней и гоняю её после каждой правки цен.
Как я это делаю
- Смотрю место в OpenStreetMap и оцениваю, сколько домов и улиц придётся дорисовать.
- Выписываю все источники и их лицензии, сразу решаю вопрос с погодой для коммерческого проекта.
- Собираю карту скриптом и показываю заказчику 3D-прототип на телефоне.
- Договариваемся об одной главной механике: дом, маршрут, смена или голосование. Остальное добавляем после первых игроков.
- Подключаю вход через MAX и Telegram с проверкой данных игрока на сервере.
- Делаю админку: игроки, рассылка через бота, журнал ошибок, удержание по дням.
- Перед запуском прогоняю нагрузку и сквозной тест, разворачиваю на сервере заказчика.
Как игры вообще стали у меня отдельным направлением, рассказал в заметке о том, как игры стали направлением. Если хотите обсудить свою карту, посмотрите разработку игр.
Сколько стоит игра на карте города
Отдельной строки «игра на карте» в моём прайсе нет, считаю по объёму. Ориентиры из прайса:
- бот в мессенджере для входа и рассылок: от 30 000 ₽, от 1 недели;
- PWA-приложение, к которому ближе всего сама игра: от 150 000 ₽, от 1 месяца;
- доработки по часам: от 3 000 ₽/час;
- поддержка после запуска (исправления, обновления, мониторинг): от 20 000 ₽/мес.
Отдельно закладываются платные тарифы данных, если проект коммерческий, и сервер на стороне заказчика. Подробнее про структуру цены в статье сколько стоит игра для бизнеса.
Частые вопросы
Можно ли сделать карту для любого города или села?
Для любого места, которое есть в OpenStreetMap. Если домов не хватает, их можно дорисовать в OSM по спутниковой подложке или дать игрокам отмечать их в игре с подтверждением.
Нужно ли игроку что-то устанавливать?
Нет. Игра открывается в браузере или как мини-приложение из бота в MAX и Telegram.
Можно ли использовать карты Яндекса или 2ГИС?
Для переноса данных в свою игру обычно нет, условия коммерческих карт это ограничивают. Я работаю с открытыми источниками и соблюдаю их лицензии.
Что будет, если придёт больше игроков, чем ждали?
Я заранее меряю нагрузку на стенде и знаю предел. Ближе к пределу включаю лёгкий режим, сжимаю стартовые данные и расширяю сервер.
Коротко о главном
Игру на настоящей карте держит узнаваемость: свой дом, своя улица, своя река. Данные для неё есть в открытом доступе, но у каждого источника своя лицензия, а бесплатная погода для коммерческого проекта не подходит. Вход через MAX и Telegram снимает установку, проверка данных игрока на сервере обязательна. Больше всего времени уходит на скорость первого экрана и баланс, поэтому их я закладываю в план с первого дня.
Если хотите игру на карте своего района, города или села, напишите мне в Telegram слово «КАРТА». Посмотрю, насколько полон OpenStreetMap в вашем месте, и предложу первую механику.
Всё о мессенджере MAX в одном месте
Эта статья — часть кластера материалов о MAX: разработка ботов и мини-аппов, продвижение канала, воронки, отраслевые сценарии и кейсы с реальными результатами.
Игра на настоящей карте вашего места
Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.
- 3D-карта города, района или села из OpenStreetMap, рельефа и снимков
- Механики: дом, маршрут, смены, голосования, сезонные события
- Вход через MAX и Telegram без установки
- Лицензии и атрибуция данных, нагрузочный тест перед запуском
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


