The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Продемонстрирован запуск игрового движка Unreal Engine 4 в Firefox

12.03.2014 22:46

Проект Mozilla и компания Epic Games продемонстрировали возможность использования Web-бразуера Firefox в качестве платформы для запуска современных 3D-игр в Web. В частности, представлены транслированные в JavaScript демонстрации игр Soul и Swing Ninja, основанные на движке Unreal Engine 4. Указанные демонстрации работают в Firefox без применения плагинов с производительностью близкой к нативным программам.

Приемлемой для запуска игр производительности удалось достичь благодаря применению Asm.js, низкоуровневого подмножества языка JavaScript со строгой типизацией. Наличие информации о типах позволяет использовать не только JIT, но и предварительную AOT-компиляцию, выполняемую для всего кода до начала его выполнения и генерирующую более простой и эффективный машинный код. Для вывода 3D-графики задействован WebGL. Трансляция игрового движка выполнена с использованием компилятора Emscripten, преобразующего код проектов с языков C и C++ в представление на языке JavaScript.

Внесённые за последние 12 месяцев оптимизации позволили заметно увеличить производительности web-приложений, использующих Asm.js. Производительность выполняемого в браузере кода в настоящее время составляет 67% от производительности нативных программ, в то время как год назад этот показатель составлял 40%. Отмечается, что реализация оптимизаций продолжается и будущем достигнутый результат будет улучшен.

Продемонстрированный уровень производительности открывает новые возможности для распространения современных 3D-игр в Web, для запуска которых достаточно web-браузера. Поставка игр через Web упрощает доставку игр до потребителей, делая их доступными через один клик по ссылке, расширяет спектр поддерживаемых платформ и снижает расходы за счёт упразднения лишних звеньев в цепочке распространения.

  1. Главная ссылка к новости (https://blog.mozilla.org/blog/...)
  2. OpenNews: Релиз Firefox 22 с поддержкой Asm.js
  3. OpenNews: Новые оптимизации в Firefox сократили разрыв в производительности JavaScript и компилируемых языков
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/39294
Ключевые слова: , firefox
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (52) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 23:10, 12/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Молодцы, только сказки про 67% не надо рассказывать, хватает тех, кто до сих пор считают, что джава и флеш работают также быстро как си.
     
     
  • 2.4, umbr (ok), 23:18, 12/03/2014 [^] [^^] [^^^] [ответить]  
  • +13 +/
    >также быстро как си

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

     
     
  • 3.9, Аноним (9), 23:30, 12/03/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Капитан, ты?
     
  • 3.23, Аноним (-), 07:56, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    При желании, си можно заставить не работать вообще. Но разве это доказывает хоть что-нибудь?
     
  • 3.27, Аноним (-), 10:29, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > При желании, Си можно заставит работать медленнее скриптовых языков.

    А если уж заставить медленно работать скриптовые языки... нууууууу.... AI считающий ход в BfW по 2 минуты на могучем проце я уже видел :).

     
  • 2.8, Аноним (-), 23:30, 12/03/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Работая с Java и Flash надо просто иметь огромную силу воли чтобы не замечать не... большой текст свёрнут, показать
     
     
  • 3.11, imprtat (ok), 23:47, 12/03/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> На Си тоже можно писать корявый код который будет медленным, но он никогда не опустится до минимума. И уж точно не будет медленнее Java или Flash

    Ты недооцениваешь особо выделяющихся талантов обладающих скилом изобретать особо-неадекватные алгоритмы.

     
     
  • 4.35, Аноним (-), 12:22, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты недооцениваешь особо выделяющихся талантов обладающих скилом изобретать особо-неадекватные
    > алгоритмы.

    Странно что человек может намерено писать алгоритмы которые заведомо снижают производительность. Но с другой стороны так сложилось что сейчас почти всегда легче написать более высокие системные требования чем оптимизировать программный код.

     
     
  • 5.40, Lain_13 (ok), 16:09, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Странно что человек может намерено писать алгоритмы которые заведомо снижают производительность.

    Я, например, однажды сделал себе алгоритм тасования колоды, который перебирал случайной сортировкой всю колоду столько раз, сколько там карт ( for(var a in arr) arr.sort(function(){return Math.random()-0.5;}); ) Мало того, что это было чудовищно неэффективно, так ещё и результат не был действительно случайным. Почему я так сделал? Мне просто нужно было быстро и не задумываясь сделать что-то, что делает вид, что работает и это было проще, чем искать и потом понять и реализовывать простой и эффективный алгоритм Фишера-Йетса, о котором я узнал позже. А иногда такие фокусы так и остаются не исправленными и продолжают «жить».

     
     
  • 6.49, Grammar Nazi (?), 12:44, 14/03/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > остаются не исправленными

    остаются неисправленными


     
  • 3.24, temp (??), 09:56, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А Вы с проектами какого уровня имели дело на java?
     
     
  • 4.30, Ivan (??), 11:04, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Видимо, человек писал хеллоуворлд под андроид и не смог дождаться загрузки эмулятора. Травма на всю жизнь теперь.
     
     
  • 5.44, Пиу (ok), 20:51, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >не смог дождаться загрузки эмулятора

    это потому что батарейка успела разрядится в процессе запуска

     
     
  • 6.48, Grammar Nazi (?), 12:43, 14/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > успела разрядится

    разрядиться, ёпта


     

  • 1.2, ABATAPA (ok), 23:12, 12/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тем не менее, демо вертится весьма быстро.
     
     
  • 2.3, Аноним (-), 23:15, 12/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Любой достаточно простой код на жаваскрипте выполняется в современном браузере со скоростью, сопоставимой с нативной, ибо компилится на лету непосредственно в инструкции процессора. Используя промежуточное представление, удаётся лишь убрать сборщик мусора и показать стабильную работу независимо от выполняемого кода. На этом плюшки заканчиваются
     
     
  • 3.22, Аноним (-), 07:51, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > На этом плюшки заканчиваются

    Так уже очень неплохо.

     
  • 2.28, Аноним (-), 10:30, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Тем не менее, демо вертится весьма быстро.

    Смотря с чем сравнивать. Если запускать на четвертинку экрана - тогда да. А если на весь - слайдшоу, однако.

     

  • 1.5, V (??), 23:18, 12/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    уже Epic Game?
     
     
  • 2.6, Аноним (-), 23:22, 12/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > уже Epic Game?

    Это название фирмы, Epic Game а движок называется так как написано в заголовке новости

     
  • 2.31, Аноним (-), 11:31, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Epic Games. а тебе стоит быть не настолько дремучим, может ты еще и об Unreal не слышал?
     

  • 1.12, RazrFalcon (ok), 23:51, 12/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Но ведь графика 10-и летней давности...

    >> современных 3D-игр в Web

    для всяких ферм хватит

     
     
  • 2.21, Степан (?), 06:56, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    А я вчера халву снова прошел =)
     

  • 1.13, EuPhobos (ok), 00:04, 13/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Довольно интересный проект с исходниками
    https://developer.mozilla.org/en-US/demos/detail/bananabread
    порт движка Cube2
     
  • 1.16, Аноним (-), 02:45, 13/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жалко что Quake Live для Linux прекратили выпускать.
     
  • 1.17, VolanD (ok), 05:38, 13/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >[оверквотинг удален]
    > в настоящее время составляет 67% от производительности нативных программ, в то
    > время как год назад этот показатель составлял 40%. Отмечается, что реализация
    > оптимизаций продолжается и будущем достигнутый результат будет улучшен.
    > Продемонстрированный уровень производительности открывает новые возможности для распространения
    > современных 3D-игр в Web, для запуска которых достаточно web-браузера. Поставка игр
    > через Web упрощает доставку игр до потребителей, делая их доступными через
    > один клик по ссылке, расширяет спектр поддерживаемых платформ и снижает расходы
    > за счёт упразднения лишних звеньев в цепочке распространения.
    > URL: https://blog.mozilla.org/blog/2014/03/12/mozilla-and-epic-preview-unreal-engin
    > Новость: http://www.opennet.ru/opennews/art.shtml?num=39294

    Что-то прослоек мало... Надо в ФФ встроить свою инновационную ОС, на ней запустить браузер, а в нем уже UE... Вот тогда точно в производительности выиграем!


     
     
  • 2.26, SunXE (ok), 10:21, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Можно там запустить NetBSD
     
     
  • 3.29, Аноним (-), 10:31, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Можно там запустить NetBSD

    Беллард вас уже обштопал - http://bellard.org/jslinux/

     

  • 1.19, Аноним (-), 06:37, 13/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Без установки дров, без мытарства по торрентам и помойкам, игры идут к вам, чтобы зохавать ваш мозг и не дать вам задуматься, а в каком мире мы собственно живём. Теперь зомбировать народ будет ещё проще.
     
     
  • 2.20, VolanD (ok), 06:39, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Без установки дров, без мытарства по торрентам и помойкам, игры идут к
    > вам, чтобы зохавать ваш мозг и не дать вам задуматься, а
    > в каком мире мы собственно живём. Теперь зомбировать народ будет ещё
    > проще.

    В смысле? Я что-то слабо верю, что это чудо запустится у вас, если у вас стоят обычные дрова без поддержки ускорения...

     

  • 1.25, Аноним (-), 10:17, 13/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Внесённые за последние 12 месяцев оптимизации

    Офигеть, простите. А знакомый перец собрал игру под NaCl за полчаса...

     
     
  • 2.33, Kostya (??), 11:58, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это еще что! Я кубик Рубика за 3 минуты собираю
     
  • 2.41, Lain_13 (ok), 16:30, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Офигеть, прости, но ты путаешь тёплое с мягким. 12 месяцев вносили оптимизации в asm.js, а не движок Unreal 4, для его работы на asm.js.
     
     
  • 3.42, Аноним (-), 16:54, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Офигеть, прости, но ты путаешь тёплое с мягким. 12 месяцев вносили оптимизации
    > в asm.js, а не движок Unreal 4, для его работы на asm.js.

    Да, сначала создали себе проблемы путем использования JS а потом 12 месяцев дрючились с их решением. Малацца.

     
     
  • 4.43, arisu (ok), 16:57, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    зато тушканчики теперь в восторге.
     
  • 4.45, Аноним (-), 23:16, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Бывают тупые люди. Они не понимают, что Unreal Engine взяли за основу для улучшения некоторых технологий, которые впоследствии пригодятся всем в других задачах. Но это не мешает им исходить сарказмом и капать ядом. Таких людей обычно не любят. Получайте заслуженный минус.
     
     
  • 5.54, Аноним (-), 18:28, 14/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > людей обычно не любят. Получайте заслуженный минус.

    А мне пофиг. Я всего лишь прикалываюсь над бакланами которые пытаются микроскопом гвозди забивать вместо того чтобы пойти и взять кувалду.

     
  • 4.51, Lain_13_too_lazy_to_login (?), 15:13, 14/03/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да, сначала создали себе проблемы путем использования JS а потом 12 месяцев
    > дрючились с их решением. Малацца.

    Да, сначала создали себе проблему путём использования Си, а потом 26 лет дрючились с их решением в gcc. Малацца.

     
     
  • 5.52, arisu (ok), 16:52, 14/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    глупости говоришь. и сам знаешь, что глупости.
     
     
  • 6.60, Lain_13_too_lazy_to_login (?), 16:03, 17/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > глупости говоришь. и сам знаешь, что глупости.

    Это была ирония, бро. Причём достаточно идиотски звучащая, чтоб её не спутать с реальным мнением. Мой наезд на Си не менее безоснователен, чем его на asm.js и немного ниже я написал почему.

     
     
  • 7.62, arisu (ok), 17:37, 17/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    извини, старею, без тэга уже никак.
     
  • 5.55, Аноним (-), 18:30, 14/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, сначала создали себе проблему путём использования Си, а потом 26 лет
    > дрючились с их решением в gcc. Малацца.

    Си чем не угодил? Он то как раз на своем месте. А вот JS для игродельства никогда не делался. Ну и работает все это примерно как топор плывущий по реке: за 12 месяцев усиленной долботни *уже работавший и отлаженный* движок стал подавать признаки жизни и "не очень сильно тормозить". Есть некая разница между созданием с нуля и портированием. И год на доведение порта под +1 платформу это довольно много, валв вон под Linux портирование отбабахивает быстрее, при том что там объем работ куда больше.

     
     
  • 6.59, Lain_13_too_lazy_to_login (?), 07:19, 17/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Да всё с Си в порядке, тем более, что в Asm.js обычно из него и собирают. Просто наезд был на компилятор asm.js, а скорость его разработки и внесения в него улучшений не имеет ничего общего с созданием порта игры на +1 платформу. 12 месяцев это не время потраченное на портирование UE4, это время потраченное на оптимизацию asm.js. Т.е. они год вносили в него оптимизации, а где-то в течение этого периода за неизвестное время «портировали» на него движок UE4 (если сборку через clang+emscripten можно назвать портированием). Это на столько же разумно, как наезжать на gcc за то, что его 26 лет разрабатывали и оптимизировали. Тем более, что asm.js позволяет создавать универсальные порты на все платформы, где работает браузер, сразу, а не создавать порты под каждую платформу в отдельности. Вообще asm.js уместнее сравнивать с виртуальными машинами вроде Java, но только пока с прямым управлением памятью так-как своего сборщика мусора у него пока нет.

    Ещё кстати, скорость работы кода под asm.js принято сравнивать с «нативной», но такого понятия вообще-то не существует. Существует множество компиляторов и далеко не все из них выдают достаточно быстрый код. asm.js принято сравнивать со скоростью работы того же кода, собранного clang (в виду того, что си компилируют в asm.js при помощи clang+emscripten). Если тот же код собрать через gcc, то в некоторых случаях он будет работать быстрее, а в некоторых — медленнее, чем код собранный clang (в основном быстрее). А ведь существуют и другие компиляторы, и если их добавить в тесты, то может оказаться, что код собранный asm.js быстрее как минимум части из них. Так он тормозной? А это смотря с чем сравнивать. Собственно даже в сравнении с clang он в одном случае показал практически идентичный результат, а в ещё одном даже лучший, чем у clang. Со временем они ещё более приблизятся к clang, а сам clang к gcc, но на это уйдут годы и это совершенно нормально.

     

  • 1.36, Аноним (-), 12:51, 13/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Нынче 67% - скорость близкая к нативной? Эх, где те времена, когда каждый такт выжимали...
     
     
  • 2.39, Аноним (-), 15:38, 13/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Эх, где те времена, когда каждый такт выжимали...

    Ностальгия… мы тогда с другом изобрели алгоритм построения линии, который давал 7-10 тактов на точку, не столь точный, как Брезенхема (200-500 тактов на точку), но на тех машинках это было существенным прорывом

     
     
  • 3.53, Аноним (-), 17:53, 14/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ещё можно в исходники старых игр позаглядывать и подивиться ухищрениям, на которые порой приходилось идти разработчикам, чтобы выжать побольше производительности, запихать побольше красивостей в более чем скромные по нынешним меркам объёмы памяти и т.п..
     

  • 1.50, Аноним (-), 14:38, 14/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поставка через браузер, это конечно, новый концепт.
    А что делать с современными играми, которые занимают гигов эдак сорок?
    Опухнешь тянуть.
     
     
  • 2.56, Ivan (??), 19:05, 14/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А для нынешних разработчиков человек, который не подключен к инету - низшее существо. Особенно этим гугль грешит.
     
     
  • 3.57, Аноним (-), 22:34, 14/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Особенно этим гугль грешит.

    Конечно, ведь люди, у которых нет инета, [по определению] не могут смотреть интернет-рекламу. А такие люди гуглу не нужны.

     
  • 2.61, Lain_13_too_lazy_to_login (?), 16:10, 17/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    О таких пока никто и не говорит. Может со временем, но не сейчас. А просто тянуть целиком и играть локально в том же Стиме как-то никто не опухает. Если сделать нормальное локальное хранилище для файлов, то и через браузер таких мамонтов доставлять можно будет.
     

  • 1.63, Аноним (-), 23:07, 17/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    у adobe была подобная технология которая при должном внимании развилась бы и до 3д. Вместо этого они купили flash, а технологию убили
     
  • 1.64, Аноним (64), 17:50, 02/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Adobe FLASH - давний интернет-троян...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру