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

Дискорд-приложение

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

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

Под капотом находится React, инфраструктура javascript, созданная Facebook, которая позволяет создавать сложные пользовательские интерфейсы. Обращения к серверам выполняются через запросы AJAX к конечной точке API. Этот API даже задокументирован на сайте разработчика.

Для своего настольного приложения они используют Электрон (как и многие другие), который сделан GitHub и является бесплатным и с открытым исходным кодом. Electron выполняет обработку между рендерингом веб-приложения и интеграцией со средой рабочего стола в Windows, Mac и Linux. Он может загружать локальные страницы, а также удаленные веб-сайты, как это делает Discord: само приложение размещено на discordapp.com. Он также позволяет использовать модули NodeJS, в том числе надстройки C++, которые позволяют запускать скомпилированный код на клиенте. Discord использует это для своего улучшенного голосового модуля, а теперь и для своего игрового магазина.

дергаться

У Twitch, известного своим сервисом прямой трансляции видеоигр, также есть настольное приложение. По сравнению с Discord интерфейс загружается с клиента, а не с удаленного сайта.

Он обеспечивает ту же функциональность, что и Discord, с, конечно же, непосредственно включенным решением для потоковой передачи.

Облако Парсека

Облако Parsec — это служба потоковой передачи игр, то есть потоковая передача игр с другого компьютера или сервера непосредственно клиенту. Для своего настольного приложения интерфейс снова использует Electron, снова загружая удаленный веб-сайт (у которого есть много преимуществ, которые мы обсудим позже) и дальнейшую интеграцию с системой с собственными надстройками C++.

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

Зачем использовать веб-технологии на десктопе?

Как мы видели, все эти компании используют платформу Electron для использования веб-технологий на рабочем столе, но каковы преимущества?

  1. Больше гибкости
  2. Более легкая разработка

Больше гибкости: поскольку мы используем веб-технологии, мы можем воспользоваться преимуществами платформы. Это включает в себя механизм рендеринга, сценарии и даже «автоматические обновления». Как мы видели, Discord и Parsec загружают удаленные сайты. Это потому, что они могут затем отправить обновление на веб-сайт, и клиенты будут автоматически обновляться при следующем запуске приложения, точно так же, как веб-страница, без необходимости обновлять само приложение.

Легкая разработка. Поскольку веб-технологии не зависят от платформы, вам не нужно будет создавать одну версию для каждой платформы. Вместо того, чтобы писать один для Windows, один для Mac и один для Linux, Electron позаботится об этом за вас. Также многие сложные вещи типа автообновления делаются за вас.

Почему бы НЕ использовать веб-технологии на рабочем столе?

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

Кроме того, поскольку мы поставляем полноценный браузер с нашим приложением, размер пакета может иметь значение.

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

Как вы видели, многие игровые компании используют веб-технологии из-за их гибкости и всех преимуществ, которые мы видели. Обратите внимание, что для тяжелых рабочих нагрузок Интернет может (пока) не быть решением.