Разработать навигатор для игры? Смотрите! (часть 1)
Игры всё ещё вдохновляют
Захотелось мне тут тряхнуть стариной, отвлечься от дел насущных и купить новую гоночную игру Forza Horizon 6. Подкупила она меня Японией, культовыми машинами, да и собранный когда-то комп так и требовал запустить на нём что-то "тяжелое".
Если смотреть на игру с точки зрения "вечернего расслабления", и не пытаться найти изъяны физики - студия проделала, на самом деле, колоссальную работу по гармоничному совмещению множества слоёв. И иммерсивности здесь достаточно, смотрите на фотку (играл в кокпите с рулём).
Но я был бы не я, если бы мои руки не зачесались для доработки этой игры: загорелся идеей полностью отключить экранный HUD в игре, но при этом не потерять доступ к карте и навигации в игре.
Так и появилась идея разработать внутриигровой навигатор для игры, который будет работать на смартфоне как обычное любое навигационное приложение, которое мы используем в реальной жизни. На словах звучит как баловство. Но на практике это быстро превратилось в небольшой технический проект.
Для себя я разложил разработку примерно на такие шаги:
1. Понять, можно ли вообще получать данные из игры Первым делом нужно было разобраться, отдаёт ли Forza какие-нибудь данные наружу: скорость, координаты, направление движения, передачу и прочую телеметрию. 2. Научиться показывать машину на карте Просто получить координаты мало. Нужно было ещё понять, как связать игровые координаты с картой, чтобы машина отображалась именно там, где она едет в игровом мире. 3. Найти/Создать карту мира игры отдельно Это оказался отдельный большой квест. Нужно было найти подходящую карту игрового мира, понять, можно ли её использовать на телефоне, сохранить тайлы, разобраться с масштабом и координатами и треками для дальнейшего построения маршрутов. 4. Сделать локальное приложение для телефона Хотелось без облаков, регистраций и лишней возни. Игра работает на ПК, там же запускается локальный сервер, а телефон в локалке открывает карту в браузере (так она работает сразу на всех платформах, где есть браузер и Wi-Fi). 5. Добавить точки интереса и маршруты Если на карте есть только точка машины - это ещё не навигатор. Поэтому дальше пошли точки интереса, поиск, ближайшие объекты и попытки построить маршрут по дорогам. 6.Довести всё до состояния "этим реально можно пользоваться" Важно было не просто вывести карту на экран, а сделать так, чтобы во время езды это было удобно: режим следования за машиной, поворот карты по направлению движения, расстояние до цели, компактные блоки информации и нормальный вид на экране смартфона.
Вот так идея из разряда “а было бы прикольно” постепенно превратилась в рабочий прототип навигатора для игры.
Если ты дочитал до конца - ты большой молодец! Подписывайся, реагируй на пост, комментируй - и я выложу следующие части.