Серия «GeoConquest»

31

Я сделал игру, в которой можно захватить собственный двор

Серия GeoConquest

Представьте: вы выходите из дома, обходите соседний квартал и возвращаетесь обратно. Телефон превращает пройденный маршрут в границу, а участок внутри неё становится вашей территорией.

Именно такую игру я начал делать в апреле.

Она называется GeoConquest. В ней реальная карта становится одним большим игровым полем, а вместо виртуальных армий по нему ходят сами игроки.

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

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

Начиналось всё несколько скромнее

11 апреля я впервые открыл работающую версию игры в браузере.

Выглядела она тогда так:

Первый работающий вариант. До нынешней карты ему предстояло пережить несколько больших переделок.

Первый работающий вариант. До нынешней карты ему предстояло пережить несколько больших переделок.

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

Если вернуться на свою территорию и замкнуть маршрут, след превращается в постоянную границу. Всё, что оказалось внутри петли, можно захватить.

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

В плане механики захвата я изначально рефался на paper.io, хотя дальше система претерпела множество изменений.

Базовый захват: игрок выходит со своей земли, прокладывает след и возвращается обратно. Отрезанная область становится территорией.

Базовый захват: игрок выходит со своей земли, прокладывает след и возвращается обратно. Отрезанная область становится территорией.

Но сначала нужно было выйти на улицу

Поначалу я проверял перемещение кнопками разработчика.

Это удобно: сидишь за компьютером, передвигаешь игрока по карте и смотришь, правильно ли создаётся след и закрашивается территория.

Но игра про ходьбу, которую тестируют кнопками, всё-таки остаётся немного теоретической.

26 апреля я наконец нормально запустил её на телефоне и пошёл гулять. Вышел со стартовой территории, прошёл небольшой круг и вернулся обратно. Маршрут замкнулся, а участок действительно закрасился.

Технически на экране появилось всего несколько маленьких многоугольников. Но впервые они возникли не из-за отладочных кнопок, а потому, что я физически прошёл этот маршрут.

Игра внезапно стала настоящей.

Так выглядел один из ранних экранов с результатами захвата. Саму первую прогулку я, увы, нормальным скриншотом не задокументировал.

Так выглядел один из ранних экранов с результатами захвата. Саму первую прогулку я, увы, нормальным скриншотом не задокументировал.

Как неправильно поделить Землю

Вся карта GeoConquest состоит из шестиугольных ячеек — гексов. Но нынешняя система появилась не сразу.

Первую сетку я сделал самостоятельно. В Москве всё выглядело нормально, пока я не поехал в отпуск в Петербург и не обнаружил, что там играть становится проще и выгоднее.

Из-за широты размер ячеек менялся. Чем севернее находился игрок, тем меньше становились гексы (метров на диаметр). За одно и то же пройденное расстояние в Петербурге можно было захватить больше гексов, чем в Москве.

География неожиданно вмешалась в игровой баланс. Я же изначально задумывал worldwide-игру!

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

В итоге мучения закончились одним из самых больших и страшных рефакторингов проекта. Я перевёл игру на географическую систему H3 и фактически заново поделил на гексы весь игровой мир.

Внешне поменялись только шестиугольники (они стали... едва заметно искривлёнными). Внутри пришлось переделывать координаты, движение, маршруты, захваты, хранение территорий и отображение карты на разных масштабах.

После перехода я включил тестовых ботов. Машка и Alex долго ходили по карте, захватывали территории и пересекались, а я наблюдал, как новая сетка ведёт себя без ручного передвижения каждого игрока.

Машка и Alex — тестовые боты. Я оставлял их ходить по карте и смотрел, как они захватывают землю и взаимодействуют друг с другом.

Машка и Alex — тестовые боты. Я оставлял их ходить по карте и смотрел, как они захватывают землю и взаимодействуют друг с другом.

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

Когда появились живые игроки

Постепенно в игре появились уровни и характеристики, задания, колонии, столкновения, недельные события и кланы.

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

Самое интересное началось именно с появлением настоящих людей.

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

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

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

Об этих историях я тоже постепенно расскажу.

GeoConquest уже работает в браузере и устанавливается на телефон как PWA:

Играть: https://geo.juju.ru

Патчноуты и короткие заметки разработки:

Telegram: https://t.me/GeoConquest

Буду рад посмотреть, какие территории построят пикабушники. Особенно те, к которым мой сервер пока морально не готов.

Показать полностью 5
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества