Игру Quake II перевели на технологии HTML5 и Javascript
2 апреля 2010 года
В рамках проекта GWTQuake несколько разработчиков из компании Google в свободное от работы время портировали игру Quake II на Javascript и технологии HTML5, такие как WebGL и элемент Canvas для рендеринга графики, WebSocket для работы в сети, Storage API для локального хранения данных, тэг "audio" для вывода звука. Игра была представлена вчера под видом шутки, но суть розыгрыша была в том, что проект оказался реальным.
В качестве основы для GWTQuake был использован код проекта Jake2, в рамках которого ранее был создана реализация игры Quake II полностью переписанная на языке Java. Для преобразования Java-кода в web-приложение, разработчики использовали инструментарий Google Web Toolkit (Архивная копия от 5 марта 2012 на Wayback Machine) (GWT), предназначенный для разработки динамических web-приложений на языке Java, которые затем при помощи специального транслятора преобразуются в представление на базе JavaScript и HTML (GWT использован при разработке таких сервисов, как Google Maps и Gmail).
Для организации вывода 3D-графики OpenGL-вызовы преобразованы в поддерживаемое некоторыми браузерами WebGL-представление, что дает возможность организовать рендеринг аппаратно ускоренного 3D контента без привлечения сторонних плагинов, используя только HTML5-конструкцию "Canvas" и специальный JavaScript API. Для организации многопользовательской сетевой игры, базирующийся на UDP протокол Quake реализован при помощи разработанного в Google JavaScript API WebSocket, позволяющего организовать двунаправленный обмен данными между wеб-приложением и сервером. Для сохранения настроек и записи текущего состояния игры была сэмулирована файловая система при помощи Storage API, который поддерживает хранение данных на локальной системе в формате ключ/значение.
В настоящий момент запустить игру можно только в тестовых версиях web-браузера Chromium, запущенного с опцией "--no-sandbox" (модель безопасности Chromium ощутимо замедляет вывод графики) и одной из последних ночных сборок Webkit. Что касается поддержки Firefox, то разработчики сообщают, что принципиальных проблем нет, в тестовых версиях Firefox поддерживается Canvas 3D и WebGL, но производительность JavaScript-движка Firefox в настоящее время не может обеспечить приемлемую для игры частоту кадров (в WebKit на MacBook и MacBook Pro удалось достичь 20-25 и 40-45 FPS).
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.