Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » WebAssembly | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 2
На страницу: 1, 2  След. | Все страницы
Поиск в этой теме:
Железный канал: «WebAssembly»
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Первая же мысль, как ускорить работу некоторого кода на веб-странице - это использовать дополнение для браузера, написанного на С/С++, которое будет выполнять этот код (скрипт) не в VM браузера, а на самом железе. Привет, флэш.
Но, нафига использовать какие-то плагины, и браузер вообще, если есть скоростное приложение работающее на железе и может обмениваться данными через Web? Привет, платформозависимые приложения.
Видимо авторам WebAssembly хочется странного: и быструю работу и открытый текстовый формат и кроссплатформенность.

Вопрос: то есть я делая игрушку на JS буду вынужден переписать ее на C++, чтобы она не тормозила?

Или сделать программную оболочку со своим API, причем так, чтобы бинарники (игры) можно было подгружать в директорию с этой оболочкой?
Последний вариант мне напоминает Unity Гы-гы
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (21:33 25-02-2019), всего редактировалось 1 раз
    Добавлено: 21:33 25-02-2019   
AnrDaemon
 857 EGP


Модератор
Рейтинг канала: 8(784)
Репутация: 37
Сообщения: 12292

Зарегистрирован: 17.10.2004
У меня вопрос - а ЗАЧЕМ это делать?
_________________
Люблю свободный полёт... :)
    Добавлено: 23:48 25-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
БулерМэн :
чтобы она не тормозила


Или ты имеешь в виду - зачем делать игрушку на JS? Улыбка
_________________
Дулички и фигушки
    Добавлено: 05:29 26-02-2019   
Voha
 930 EGP


Модератор
Рейтинг канала: 9(1038)
Репутация: 167
Сообщения: 4920
Откуда: Moscow, Russia
Зарегистрирован: 15.02.2001
БулерМэн :
Видимо авторам WebAssembly хочется странного: и быструю работу и открытый текстовый формат и кроссплатформенность.
Открытый текстовый формат-то откуда ты приплел? wasm-код загружается в виде прекомпилированного бинарника, и (теоретически) исходник может быть написан на любом языке. Через js-api ты можешь загрузить и запустить wasm-код, но ограничения песочницы для него еще строже, чем для js (в частности, прямого доступа к DOM нет).
Нк а вообще - добро пожаловать в фантастический мир, где Микрософт, Гугл, мозила и Эппл внезапно о чем-то договорились Улыбка
https://webassembly.org/
https://developer.mozilla.org/en-US/docs/WebAssembly
_________________
Time will show...
    Добавлено: 09:58 26-02-2019   
seaman
 59 EGP

Репутация: 2
Сообщения: 18
Откуда: Самара
Зарегистрирован: 15.01.2017
Даже Юнити уже умеет в webassembly компилировать:
https://blogs.unity3d.com/ru/2018/08/15/webassembly-is-here/
Там весьма непростой процес. Сначала из C# с помощью IL2CPP в C++, потом из C++ с помощью emscripten в js и наконец с помощью binarien в wasm.
Что в конце получится - непонятно. Как то не верится, что все это реально в использовании. Но принципиально -все работает.

Последний раз редактировалось: seaman (16:54 26-02-2019), всего редактировалось 1 раз
    Добавлено: 16:51 26-02-2019   
_RAZAAR_
 62 EGP


Рейтинг канала: 2(11)
Репутация: -13
Сообщения: 2854 Заблокирован
Откуда: РАЗААРЪ - 40Лы от Лаве
Зарегистрирован: 15.04.2008
Voha :
Открытый текстовый формат-то откуда ты приплел? wasm-код загружается в виде прекомпилированного бинарника, и (теоретически) исходник может быть написан на любом языке. Через js-api ты можешь загрузить и запустить wasm-код, но ограничения песочницы для него еще строже, чем для js (в частности, прямого доступа к DOM нет).


А вот тут о чем говорят?

 Cкрытый текст   (кликните здесь для просмотра)
Will WebAssembly support View Source on the Web?

Yes! WebAssembly defines a text format to be rendered when developers view the source of a WebAssembly module in any developer tool. Also, a specific goal of the text format is to allow developers to write WebAssembly modules by hand for testing, experimenting, optimizing, learning and teaching purposes. In fact, by dropping all the coercions required by asm.js validation, the WebAssembly text format should be much more natural to read and write than asm.js. Outside the browser, command-line and online tools that convert between text and binary will also be made readily available. Lastly, a scalable form of source maps is also being considered as part of the WebAssembly tooling story.

И тут
 Cкрытый текст   (кликните здесь для просмотра)
WebAssembly will define a standardized text format that encodes a WebAssembly module with all its contained definitions in a way that is equivalent to the binary format.

и тут разве не предполагается этот текстовый формат?
_________________
Quaere Vērum
------------------------
    Добавлено: 18:39 26-02-2019   
seaman
 59 EGP

Репутация: 2
Сообщения: 18
Откуда: Самара
Зарегистрирован: 15.01.2017
https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts
Цитата:
Be readable and debuggable — WebAssembly is a low-level assembly language, but it does have a human-readable text format (the specification for which is still being finalized) that allows code to be written, viewed, and debugged by hand.

Быть читаемым и отлаживаемым - WebAssembly - это низкоуровневый ассемблерный язык, но он имеет читаемый человеком текстовый формат (спецификация для которого еще дорабатывается), который позволяет писать, просматривать и отлаживать код вручную.

Как я это понимаю.
В браузере уже скомпилированный код. Но есть "дизассемблер", который позволяет видеть код на wasm. Либо в браузере и то и другое. Это кстати косвенно подтверждается:
Цитата:
Module: Represents a WebAssembly binary that has been compiled by the browser into executable machine code.


Также они считают что на самом wasm писать - это неправильно. Есть кросс-компиляторы, которые позволяют писать на высокоуровневых языках и получить код на wasm. Дополнительное преимущество - например наличие garbage-collected

Последний раз редактировалось: seaman (19:33 26-02-2019), всего редактировалось 2 раз(а)
    Добавлено: 19:26 26-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Voha :
https://webassembly.org/

Your browser doesn't support WebAssembly yet.

Отлично, волшебный мир розовых пони мне не доступен...

_RAZAAR_ :
и тут разве не предполагается этот текстовый формат?

It is written for clarity and simplicity, not speed.
Полагаю, что поддержка текстового формата совершенно не ускоряет работу.

seaman :
Но принципиально -все работает.

Что-то странное нагорожено...
_________________
Дулички и фигушки
    Добавлено: 19:40 26-02-2019   
seaman
 59 EGP

Репутация: 2
Сообщения: 18
Откуда: Самара
Зарегистрирован: 15.01.2017
Цитата:
Что-то странное нагорожено.

Ну да, но работает. Более того демо на официальном сайте сделано на Юнити
https://webassembly.org/demo/Tanks/
    Добавлено: 20:04 26-02-2019   
_RAZAAR_
 62 EGP


Рейтинг канала: 2(11)
Репутация: -13
Сообщения: 2854 Заблокирован
Откуда: РАЗААРЪ - 40Лы от Лаве
Зарегистрирован: 15.04.2008
БулерМэн :
Voha :
https://webassembly.org/

Your browser doesn't support WebAssembly yet.

Отлично, волшебный мир розовых пони мне не доступен...



Ну както ты жестоко к пегасам относишся Улыбка
Случайно твой браузер не Mosaic или Netscape Navigator v1.0 называется?
Портативная Огненная лиса говорит что все 4 современных обозревателя поддержаны,
 Cкрытый текст   (кликните здесь для просмотра)


БулерМэн :

It is written for clarity and simplicity, not speed.
Полагаю, что поддержка текстового формата совершенно не ускоряет работу.

поддержка текстового формата я полагаю прозволяет писать в этом формате и конвертировать сразу в бинарник Улыбка для получения желаемого speed, минуя стадию написания на Cи и компиляции ,если это зачемто угодно кодеру изучившему вдруг вебассемблер.
_________________
Quaere Vērum
------------------------

Последний раз редактировалось: _RAZAAR_ (08:45 27-02-2019), всего редактировалось 2 раз(а)
    Добавлено: 21:03 26-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
seaman :
https://webassembly.org/demo/Tanks/

Мой браузер не поддерживает WebGL, FF 52.4.0(32bit)

В Google Chrome Версия 49.0.2623.112 m - видно, что юнити-плеер загружает что-то, но потом серый экран и все. Поддерживает WebGL, но не поддерживает Юнити? Ой, не могу!..
_________________
Дулички и фигушки
    Добавлено: 01:18 27-02-2019   
Voha
 930 EGP


Модератор
Рейтинг канала: 9(1038)
Репутация: 167
Сообщения: 4920
Откуда: Moscow, Russia
Зарегистрирован: 15.02.2001
БулерМэн :
seaman :
https://webassembly.org/demo/Tanks/

Мой браузер не поддерживает WebGL, FF 52.4.0(32bit)

В Google Chrome Версия 49.0.2623.112 m - видно, что юнити-плеер загружает что-то, но потом серый экран и все. Поддерживает WebGL, но не поддерживает Юнити? Ой, не могу!..
Продолжать сидеть на версиях, где еще поддерживается анархия доступов к чему попало для плагинов - твой сознательный выбор, наверное. Но при этом довольно странно ожидать от говна мамонта поддержки современных технологий.
_________________
Time will show...
    Добавлено: 09:52 27-02-2019   
seaman
 59 EGP

Репутация: 2
Сообщения: 18
Откуда: Самара
Зарегистрирован: 15.01.2017
ссылка
FF по идее должен твой поддерживать
    Добавлено: 19:14 27-02-2019   
_RAZAAR_
 62 EGP


Рейтинг канала: 2(11)
Репутация: -13
Сообщения: 2854 Заблокирован
Откуда: РАЗААРЪ - 40Лы от Лаве
Зарегистрирован: 15.04.2008
seaman :
https://ru.wikipedia.org/wiki/WebAssembly#%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0_%D0%B2_%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B0%D1%85
FF по идее должен твой поддерживать


FF 65.0.1 (64bit) поддерживает
_________________
Quaere Vērum
------------------------
    Добавлено: 19:43 27-02-2019   
Sh.Tac.
 151 EGP


Рейтинг канала: 1(2)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
_RAZAAR_ :
если это зачемто угодно кодеру изучившему вдруг вебассемблер.
ну вот непонятно зачем его изучать, код более всего напоминает лисп, собственно в википедии есть пример
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 02:58 28-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
seaman :
FF по идее должен твой поддерживать

По идее должен, но как говорится - не обязан. У меня ESR версия, обновления касаются только критических мест.
ЗЫ Все версии новее 52-ой не работают на WinXP о чем говорит предупреждение инсталлятора. Начиная с версии 60 - инсталлятор запускается, но т.к. это приложение для win7 32bit (скачанное по наивности для xp) оно висит. Обложили демоны со всех сторон. Разозлен


Voha :
анархия доступов к чему попало для плагинов - твой сознательный выбор

Поэтому все плагины отключены.

Мне действительно трудно продраться через статьи на английском языке на тему Wasm.


https://webassembly.org/getting-started/developers-guide/#compile-and-run-a-simple-program

Типа скачайте то-то, установите среду, компилятор и только потом попробуйте запустить HelloWorld, при этом запустится ваш собственный веб-сервер и покажет надпись HelloWorld. Что?! Совсем запутался...
А что это дает в принципе? Там что, в html-файл встраивается неприкрытый бинарник? То есть не файл закодированный в base64, а именно бинарник в тексте?
Что-то я тыкаюсь в пустую...
Sh.Tac. :
собственно в википедии есть пример

Где?

добавлено спустя 1 минуту:
Sh.Tac. :
ну вот непонятно зачем его изучать

врага нужно знать в лицо Хы...
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (05:31 28-02-2019), всего редактировалось 5 раз(а)
    Добавлено: 04:38 28-02-2019   
AnrDaemon
 857 EGP


Модератор
Рейтинг канала: 8(784)
Репутация: 37
Сообщения: 12292

Зарегистрирован: 17.10.2004
Это Ява, вид в профиль.
_________________
Люблю свободный полёт... :)
    Добавлено: 17:48 28-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Поискал информацию про ява-апплеты для встраивания в html-страницу. Тег <applet> устарел, но можно использовать <object>.
Например:
 Cкрытый текст   (кликните здесь для просмотра)
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Тег OBJECT</title>
  </head>
  <body>
<p><object type="application/x-shockwave-flash"
     data="images/mouse.swf" width="400" height="300">
    <param name="quality" value="high">
    <param name="wmode" value="opaque">
   </object></p>
  </body>
</html>

В этом случае, для отображения объекта требуется плагин, который и будет обрабатывать содержимое данного тега по указанным параметрам, например по ссылке SRC.

Правильно ли я понимаю, что wasm-программа по факту является плагином?! Подозрение.


Интересно, посмотрел что показывает пример Tanks https://webassembly.org/demo/Tanks/
а там внезапно используется canvas!
Простенькие примеры, использующие обертку для OpenGL - работают, например вот эти - ссылка

WebGL v1.0 у меня работает только в Chrome 49.0.2623.112 m. более новую версию установить не получится из-за отсутствия поддержки WinXP самим гуглом.
В примерах с танками - Chrome так же ругается на отсутствие поддержки данной технологии.

добавлено спустя 12 минут:
Не совсем понятно, wasm это код, запускаемый на стороне сервера, а не на стороне пользователя?
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (19:29 28-02-2019), всего редактировалось 3 раз(а)
    Добавлено: 19:09 28-02-2019   
seaman
 59 EGP

Репутация: 2
Сообщения: 18
Откуда: Самара
Зарегистрирован: 15.01.2017
Цитата:
wasm это код, запускаемый на стороне сервера

нет, конечно, раз браузер его компилирует.
Цитата:
внезапно используется canvas!

Ну а где он еще его отобразит?
Цитата:
wasm-программа по факту является плагином?

Не знаю, что подразумевается под "плагином". Загружается отдельно.
Имеет такой вид:
 Cкрытый текст   (кликните здесь для просмотра)

Загружается на странице тут:
 Cкрытый текст   (кликните здесь для просмотра)


Последний раз редактировалось: seaman (21:06 28-02-2019), всего редактировалось 1 раз
    Добавлено: 21:05 28-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Все таки двоичные, т.к. скрипт ссылается на тип объекта blob, то есть произвольные неизменяемые данные. Судя по содержимому - в начале объявления функций с указанными типами данных и количеством аргументов. Т.е. это библиотека с функциями, которые может вызвать скрипт, видимо как DLL для Windows.
Только обработчик данных функций, как я понимаю - зашит в браузер, который поддерживает wasm.


Единственное, что не понятно - при активном юнити-плеере - у меня код страницы выглядит таким вот образом:
 Cкрытый текст   (кликните здесь для просмотра)

Код:

<!DOCTYPE html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Unity WebGL Player | Tanks!</title>
    <link rel="shortcut icon" href="TemplateData/favicon.ico">
    <link rel="stylesheet" href="TemplateData/style.css">
    <script src="TemplateData/UnityProgress.js"></script> 
    <script src="Build/UnityLoader.js"></script>
    <script>
      var gameInstance = UnityLoader.instantiate("gameContainer", "Build/tanks.json", {onProgress: UnityProgress});
    </script>
  </head>
  <body>
    <div class="webgl-content">
      <div id="gameContainer" style="width: 1280px; height: 720px"></div>
      <div class="footer">
        <div class="webgl-logo"></div>
        <div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div>
        <div class="title">Tanks!</div>
      </div>
    </div>
  </body>
</html>


Никаких ссылок на <script src='blob:...'> у меня нет Подозрение.

То есть, юнити-плеер запускает компиляцию этого blob'a с кодом библиотеки, беря в качестве исходника 'Build/tanks.json', содержащий скорее всего текст на каком-то языке?
Или я неправильно понял?
_________________
Дулички и фигушки
    Добавлено: 02:48 01-03-2019   
Железный канал: «WebAssembly»
На страницу: 1, 2  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Человек нуждается в посредниках между собой и собой - не всегда, но часто. (Ласточка)

  » WebAssembly | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18