Добавлен Hellfim,
опубликован
Это небольшая запись в дневник разработки без каких-то глубоких технических подробностей.
Информацию по актуальной версии игры вы всегда можете получить на главной странице проекта
Информацию по актуальной версии игры вы всегда можете получить на главной странице проекта
Так как игра разрабатывается на движке Unity, то встречи с какими-то серьёзными сложностями при создании браузерной версии я не ожидал - ну, максимум нужно будет временно отключить сервисы авторизации, оплаты, рекламы, да пару настроек где-то подкрутить. Однако, реальность оказалась чуть более суровой…
Мне уже давно хотелось поковырять новомодный UI Toolkit в Unity, и вот, в начале разработки игры именно этим я и решил этим заняться. В UI Toolkit’e интерфейс собирается не из компонентов и игровых объектов, как это привычно каждому Unity-разработчику, а из файлов разметки - по сути очень похоже на вёрстку простейших сайтов-визиток и страничек в интернете. Какое-то базовое представление у меня, конечно есть, но ранее как-то особо не приходилось с этим сталкиваться, и я с головой погрузился в новый интересный мир.
В целом, каких-то особых сложностей в изучении технологии действительно не возникло, но оказалось, что «новомодный» UI Toolkit, доступный для использования уже 2 года как - всё ещё неимоверно сырой (количество зарепорченных багов лично мной составляет около 30 штук), поэтому разработка интерфейсной части игры превратилась в какую-то постоянную борьбу с ветряными мельницами. Хотя, стоит отметить, что с каждой новой версией UI Toolkit прямо на глазах становился всё лучше удобнее. В итоге, в процессе разработки мы переехали на альфа-версию Unity 2023, которую я обновлял минимум один раза в месяц, чтобы быть на острие технологий! Но, все возникающие сложности героически преодолевались, разработка шла полным ходом, а проект успешно собирался и под Android, и под iOS.
В целом, каких-то особых сложностей в изучении технологии действительно не возникло, но оказалось, что «новомодный» UI Toolkit, доступный для использования уже 2 года как - всё ещё неимоверно сырой (количество зарепорченных багов лично мной составляет около 30 штук), поэтому разработка интерфейсной части игры превратилась в какую-то постоянную борьбу с ветряными мельницами. Хотя, стоит отметить, что с каждой новой версией UI Toolkit прямо на глазах становился всё лучше удобнее. В итоге, в процессе разработки мы переехали на альфа-версию Unity 2023, которую я обновлял минимум один раза в месяц, чтобы быть на острие технологий! Но, все возникающие сложности героически преодолевались, разработка шла полным ходом, а проект успешно собирался и под Android, и под iOS.
NB: Нормальные люди при разработке игры, фиксируют версию движка, и обновляется только при исправлении какой-то ошибки или появление долгожданной фичи, затрагивающей разрабатываемую игру.
Дойдя до этапа с готовыми к показу версиями для GooglePlay/AppStore я подумал, что можно попробовать собрать веб-версию на HTML5. Да и движок, казалось бы, позволяет - вроде бы, надо просто нажать Switch Platform, потом Build, и радоваться работающей игре на кросс-платформенном Unity.
И если свичнуть платформу и собрать билд я ещё смог (отключив некоторые чисто мобильные сервисы), то вот порадоваться работающей игре не получилось - она вылетала сразу после прохождения первого этапа в туторе. Это меня несколько смутило, ведь в игре не используется какого-то нестандартного кода, который мог бы приводить к такому поведению. Пока я пытался разобраться в причинах происходящего, мой мозг ехидно напоминал, что использование любой нестабильной версии чего-либо в готовом к релизу проекте (например, альфа-версии игрового движка) - сомнительная затея. Собственно говоря, так и оказалось - в процессе дебага я пришёл к тому, что с моей стороны действительно нет косяков, а падает именно UI Toolkit в своих внутренностях при работе с веб-версией.
И если свичнуть платформу и собрать билд я ещё смог (отключив некоторые чисто мобильные сервисы), то вот порадоваться работающей игре не получилось - она вылетала сразу после прохождения первого этапа в туторе. Это меня несколько смутило, ведь в игре не используется какого-то нестандартного кода, который мог бы приводить к такому поведению. Пока я пытался разобраться в причинах происходящего, мой мозг ехидно напоминал, что использование любой нестабильной версии чего-либо в готовом к релизу проекте (например, альфа-версии игрового движка) - сомнительная затея. Собственно говоря, так и оказалось - в процессе дебага я пришёл к тому, что с моей стороны действительно нет косяков, а падает именно UI Toolkit в своих внутренностях при работе с веб-версией.
Ну, падает и падает. Мне-то билд на HTML5 нужен! Поискав информацию о вышеупомянутой ошибке в интернете, я пришёл к тому, что ничего вменяемого сделать нельзя, и ошибка была привнесена в код Unity с какой-то из версий 2023. Жёстко откатываться до версии без бага - не очень хотелось, всё-таки когда-нибудь юнитехи исправят баг, и можно будет продолжить пользоваться классными фичами из Unity2023.
Решил, что для веб-версий проекта буду использовать Unity2022 (в ней нет бага), а для мобилок - Unity2023. Немного пошаманив, удалось всё совместить. Сейчас при переключении версии просто происходит реимпорт проекта, и отваливается одна из нестандартных рендер-фичей, которая исправляется вручную за 1 минуту. Но, думаю, что и авто-починку этой рендер-фичи я чуть позже тоже добавлю.
Решил, что для веб-версий проекта буду использовать Unity2022 (в ней нет бага), а для мобилок - Unity2023. Немного пошаманив, удалось всё совместить. Сейчас при переключении версии просто происходит реимпорт проекта, и отваливается одна из нестандартных рендер-фичей, которая исправляется вручную за 1 минуту. Но, думаю, что и авто-починку этой рендер-фичи я чуть позже тоже добавлю.
В общем, моё первое знакомство с HTML5 вышло несколько жестковатым, но в целом, все проблемы удалось разрулить, и теперь занимаюсь интеграцией SDK от Яндекса, чтоб выложить игру на Яндекс.Игры. Возможно, в следующем дневнике разработки даже напишу об этом!
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
nazarpunk
4 месяца назад
0
Я так понимаю, что при компиляции там будет не только слой canvas но и некий html?
0
Hellfim
4 месяца назад
0
По итогу билда создаётся 2 папки (Build и StreamingAssets), а также файл index.html со следующим содержимым.
index.html
То есть, как я понимаю, слой канвас тут только один, и в нём с помощью js рисуется игра.
0
ScorpioT1000
4 месяца назад
0
Обожаю такие тесты типа айфон и андроид. На винду с тачем, смарт тиви, хром ос и другие ос насрать) так держать! 👍
0
Hellfim
4 месяца назад
0
ScorpioT1000:
На самом деле я уже давно неиронично хочу пильнуть что-нибудь для смарт-тв. Тут проект вроде простой, поэтому можно портировать везде куда получится (в основном, полагаю, без коммерческого выхлопа). Так что, когда-нибудь в следующем году можете и на вашей микроволновке ожидать!
1
Феникс
4 месяца назад
1
Hellfim, о, мы тоже пойдем этим путём скоро) Планируем выкатить веббилд на яндекс, вк, itch и пару мелких)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.