В эти дни я, как всегда, заглядывал в сабреддит /r/gamedev, и мое внимание привлек вопрос: Почему браузерное 3D не стало невероятно популярным?
Ну, вот что я написал в ответ, что выражает мои чувства по поводу моих любимых и ненавистных технологий HTML5 (много разглагольствований HTML5 в эти дни :)):
Технология потрясающая и более чем способная. «Проблема» — это платформа. Браузер подходит не для любого контента, как думали раньше.
То, что мы наблюдаем сейчас, — это разделение между веб-технологиями в браузере и вне браузера или без браузера. Люди выпускают простые и несложные приложения/игры и веб-страницы в браузере, а суперсовременные, сложные игры и приложения — на платформах вне браузера на основе HTML5, таких как NW.js и Electron, которые предназначены для настольных компьютеров. Конечно, есть похожие вещи и для мобильных устройств.
Браузер сегодняшнего и будущего это просто хост, оболочка для огромного движка (вся технология HTML5), который может работать где угодно. В качестве примера игр можно привести несколько высококлассных HTML5-игр, которые вы можете купить в Steam и запустить на своем ПК в любой ОС. Но только там. Они недоступны в браузере.
У HTML5 как платформы так много возможностей. Все может быть успешным или неудачным. Все зависит от исполнения. Настольный клиент Steam создан с использованием технологии HTML5. Уже одно это иллюстрирует упадок (или стагнацию? или стабилизацию? или переход?) нативных фреймворков графического интерфейса, таких как WPF, Qt, и огромный успех создания сверхнастраиваемых и динамических интерфейсов, которые работают везде (хотя и не всегда достаточно быстро, но это уже другая история). ) с HTML5.
Проблема сейчас с HTML5 заключается в том, что в нем нет стандартизированного способа что-либо сделать. Что-то достаточно низкоуровневое, чтобы быть гибким и не самоуверенным, чтобы вы могли основывать свой код на этом, и достаточно высокоуровневое, чтобы его было легко освоить и сложно освоить :)
Каждый использует свои собственные фреймворки и собственный код для создания десктопных приложений, дам и т. д. Как и все, что хорошо с одной стороны, но очень плохо с другой, так как это делает экосистему HTML5 слишком фрагментированной и хаотичной. Существует множество фреймворков, делающих одни и те же вещи разными способами. Если я хочу сегодня сделать десктопное приложение на HTML5, у меня есть десятки вариантов. Но ни один из них не является зрелым и постоянно меняется. Нет ничего надежного, мощного и стабильного. Но потенциал есть.
Мы находимся в переходном состоянии, все быстро меняется, в основном к лучшему. Скорее всего, нас ждет будущее, в котором все на каждой платформе будет работать на одном и том же базовом движке. Этот движок, вероятно, будет чем-то вроде HTML5, но намного лучше.
Одна из самых больших проблем с платформой заключается в том, что если вы хотите выпустить игру для настольных платформ в HTML5, вам нужно связать с ней весь веб-движок (~ 80, 120 МБ). HTML5 нуждается в большей развязке. Я должен иметь возможность выбирать, что использовать: например, только WebGL, Audio, File Api/IO и Input, и ничего больше.
Это был не просто треп :) Это был обнадеживающий крик разработчика, который всем интересуется и слишком много думает. Не стесняйтесь игнорировать все как ложь, конечно. Но кто знает, какие удивительные вещи ждут нас впереди (и на наших лицах)?
Посмотрим.