Как игрок, я вижу, что все больше и больше компаний, ориентированных на игры, используют веб-технологии для создания своих приложений, даже для своих собственных приложений. Сегодня я хочу показать, как они это делают и в чем могут быть преимущества.
Дискорд-приложение
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 для использования веб-технологий на рабочем столе, но каковы преимущества?
- Больше гибкости
- Более легкая разработка
Больше гибкости: поскольку мы используем веб-технологии, мы можем воспользоваться преимуществами платформы. Это включает в себя механизм рендеринга, сценарии и даже «автоматические обновления». Как мы видели, Discord и Parsec загружают удаленные сайты. Это потому, что они могут затем отправить обновление на веб-сайт, и клиенты будут автоматически обновляться при следующем запуске приложения, точно так же, как веб-страница, без необходимости обновлять само приложение.
Легкая разработка. Поскольку веб-технологии не зависят от платформы, вам не нужно будет создавать одну версию для каждой платформы. Вместо того, чтобы писать один для Windows, один для Mac и один для Linux, Electron позаботится об этом за вас. Также многие сложные вещи типа автообновления делаются за вас.
Почему бы НЕ использовать веб-технологии на рабочем столе?
Поскольку мы используем полноценный браузер, производительность может быть не такой, как у родного настольного приложения, хотя браузеры становятся все более и более оптимизированными.
Кроме того, поскольку мы поставляем полноценный браузер с нашим приложением, размер пакета может иметь значение.
В конце концов, все сводится к тому, хотите ли вы большей гибкости или большей производительности, всегда лучше сначала попробовать.
Как вы видели, многие игровые компании используют веб-технологии из-за их гибкости и всех преимуществ, которые мы видели. Обратите внимание, что для тяжелых рабочих нагрузок Интернет может (пока) не быть решением.