Нужно определиться, в каком направлении пойти, а для этого хочу все четко разложить по полочкам. Но чтобы это сделать, мне не хватает знаний и опыта. Поиск и изучение нужной информации занимает много времени, поэтому прошу помочь ускорить процесс и подправить меня в том, что выкладываю ниже.
Задумал сделать фронт, отдельный для мобильных устройств, с применением современных супер-пупер технологий. Раньше у меня был выбор только между версткой для мобильных браузеров и разработкой мобильных приложений. Т.к. фронт нужен для браузерной игры, то выбор был очевиден. Но когда стал углубляться в тему, выяснил, что между этими двумя подходами есть еще два промежуточных. Для облегчения дальнейшего изложения условно назову браузерную верстку буквой А, а мобильные приложения буквой D, тогда:
A - браузерная верстка, использую Javascript, React
B - веб-приложения, имитирующие нативные (PWA), использую Ionic React
C - кроссплатформенные приложения, использую React Native
D - нативная разработка с помощью Java/Kotlin/Swift
Некоторые соображения при выборе:
- по javascript/jQuery у меня есть какой-то опыт, по остальному нет, поэтому сейчас нужно выбрать, что изучать, но лучше, чтобы новые знания могли использовать предыдущий опыт;
- смысл браузерной игры в том, что разработчику не нужно создавать специального клиента, который загружается на маркеты. А пользователям не нужно ничего скачивать, достаточно использовать браузеры;
- хотелось бы интерфейса, удобного на мобильных устройствах, например, чтобы при движении пальца на экран выскальзывала навигационная панель сбоку;
- кроссплатформенность предпочтительна, один раз сделал, на обеих платформах использовал
Пока склоняюсь к PWA, но нужно точно выяснить еще некоторые вопросы:
язык разработки javascript:
A - да
B - да
C - да
D - нет
кроссплатформенно:
A - да
B - да
C - да
D - нет
интерфейс, схожий с нативными приложениями:
A - нет
B - да
C - да
D - да
нужно выкладывать в маркеты (и платить за это):
A - нет
B - нет
C - да
D - да
нужно скачивать клиента:
A - нет
B - нет
C - да
D - да
сложность разработки в порядке возрастания
A
B
C
D
производительность в порядке возрастания
?
?
C
D
Все ли я правильно расписал, и верно ли склоняюсь к PWA? Может что-то еще упустил?
Я бы выбрал PWA, если это не 3D игра, или любая другая, использующая мобильный графический ускоритель для освещения, физики и прочего.
Как правило, именно для публикации на различных игровых платформах, браузерка точно не пройдёт по требованиям контроля качества. Здесь я бы предпочёл использовать Unity.
PS: Напишите перечень целевых платформ для публикации и тип игры. Тогда станет более ясно, что посоветовать Вам.
Если Вы знаете ogame.ru, то сразу поймете, что за тип игры. Если нет, то никакой 3D-графики не предполагается. Только таблицы, графики, изображения, и, максимум, 2D-анимация на paper.js чисто для целей иллюстрации. Это многопользовательская стратегия реального времени, где игроки очень активно взаимодействуют с элементами интерфейса - пункты меню, кнопки, переключатели, выпадающие списки и т.д. Платформа - любая, где есть обычные браузеры. Игра использует браузеры в качестве клиентов. Для десктопного варианта делаю классическую верстку htmk/css/js/jquery. Здесь не надо беспокоиться о экранном пространстве. Менюшки, к примеру, могут статично находиться на странице постоянно. Но в мобильной версии потребуются такие фичи, как панели-слайдеры и другие штуки, характерные для мобильных нативных приложений и связанные с решением проблемы экранного пространства. Поэтому смотрю в сторону веб-приложений, которые умеют такие штуки. Тут еще важен момент, чтобы ничего никуда выкладывать не пришлось - публикации и что-то такое. Человек просто открывает браузер, заходит по определенному адресу на сервер, и все, игра уже у него.