План развития в Firefox технологий, необходимых для разработки компьютерных игр

3 июля 2015 года

Проект Mozilla опубликовал план развития технологий, нацеленных на превращение Firefox в платформу для создания современных браузерных игр, обеспечивающий высокую производительность и работающих без необходимости установки внешних плагинов. Из наиболее значительных достижений в области создания высокопроизводительных браузерных приложений отмечается WebAssembly. В представленном плане рассматривается какие ещё технологии необходимы для разработки первоклассных игр. По мнению Mozilla, компьютерные игры являются отличным катализатором для продвижения новых технологий, которые затем смогут использоваться и в других категориях приложений.

Технологии уже находящиеся в разработке и готовые появиться в следующем году:

  • Развитие средств для обеспечения работы многопоточных игр, эффективно работающих в Web: стандартизация

SharedArrayBuffer, добавление в Emscripten поддержки pthreads, реализация доступа из Web Workers к чувствительным к производительности Web API (WebGL, WebSockets, IndexedDB, WebAudio, WebRTC и WebVR), возможность совместного использования скомпилированного кода между Web Workers;

  • Средства для задействования в web-приложениях инструкций SIMD для оптимизации JavaScript-кода: стандартизация API SIMD.js, позволяющего организовать распараллеливание выполнения операций над данными c использованием инструкций SIMD, добавление поддержки SIMD в WebAssembly и Emscripten;
  • Оптимизация процесса загрузки, компиляции и первого запуска больших порций кода (миллионы строк кода): WebAssembly позволит значительно сократить размер загружаемого кода, декодирование скомпилированного представления WebAssembly будет значительно быстрее разбора JavaScript/asm.js, развивается быстрый компилятор WebAssembly/asm.js, позволяющий почти сразу стартовать приложение, продолжив компиляцию в фоне. Код компиляции и разбора будет вынесен в параллельно выполняемый процесс;
  • Создание решения для обеспечения сжатия без зависимости от HTTP Content-Encoding:gzip. Поддержка в Emscripten декодирования asm.js / WebAssembly в процессе загрузки кода;
  • Улучшение средств для организации хранилищ в браузере: возможность доступа к временным хранилищам без вывода диалога с запросом полномочий от пользователя, эвристический учёт характеристик аккаунта при расчёте квот, предоставление дополнительной информации о квотах, создание механизма для доступа к одному хранилищу с разных сайтов, стандартизация API для организации постоянных хранилищ, улучшение пользовательского интерфейса для управления хранилищами в браузере;
  • Расширение графических возможностей: реализация WebGL2, стандартизация потоковой передачи WebGL canvas через WebRTC, возможность запуска операций WebGL на дискретной графической карте на системах с гибридной графикой (NVIDIA Optimus);
  • Предоставление средств для обхода ограничений 32-разрядной архитектуры, связанных с памятью: поставка 64-разрядных сборок для Windows, предоставление возможности задействования pthreads и FileReaderSync для выполнение синхронного файлового ввода/вывода в Emscripten VFS;
  • Проведение работы по изучению способов повышения производительности на разных платформах: оптимизация производительности WebAudio, сокращение времени компиляции шейдеров WebGL, сокращение задержек и неоднородности при рендеринге, анализ производительности JavaScript, DOM, WebGL, WebRTC, кодеков, раскладки на экране, рендеринга, композитинга, анимации и т.п.
  • Продолжение развития Emscripten: добавление поддержки pthreads, SIMD и WebAssembly, увеличение скорости компиляции;
  • Продолжение развития инструментов для разработчиков игр: улучшение поддержки Web Worker, возможность установки перехватчиков ошибок в asm.js/WebAssembly.

Вопросы, которые требуют дополнительного изучения и обсуждения:

  • Предоставление средств для определения числа нитей Web Workers, необходимых для обслуживания заданной нагрузки;
  • Повышение лимита на число нитей Web Workers, сейчас лимит выставлен в 20 нитей на сайт;
  • Внедрение многопроцессной архитектуры, гарантирующей свежее нефрагментированное адресное пространство для игр, с выделением больших непрерывных областей памяти при запуске процесса;
  • Создания механизма уведомления приложений об исчерпании доступной памяти;
  • Разработка новых стандартов для улучшения IME (Input Method Editor) API и создания полноценных систем редактирования;
  • Добавление API для управления курсором;
  • Улучшение Gamepad API;
  • Реализация в Pointer Lock API расширения Pointer Clipping;
  • Интеграция развиваемых в рамках проекта Emscripten инструментов для анализа использования памяти и отладки утечек памяти;
  • Стандартизация более масштабируемой формы source map, пригодной для большого скомпилированного кода.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «План развития в Firefox технологий, необходимых для разработки компьютерных игр», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.