31
WebGL и IL2CPP Валентин Симонов Field Engineer [email protected] @valyard

Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Embed Size (px)

DESCRIPTION

В скором времени, Unity получит поддержку еще одной платформы — WebGL, что позволит запускать игры в браузере без каких-либо плагинов. Валентин покажет, как работает процесс паблишинга, подробно остановится на IL2CPP — внутренней разработке Unity, которая и делает всю основную магию, а так же расскажет о дальнейших планах внедрения этой технологии на другие платформы.

Citation preview

Page 1: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

WebGL и IL2CPP

Валентин СимоновField [email protected]@valyard

Page 2: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Page 3: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Web Player

Page 4: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Page 5: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

“У 93% пользователей Kongregate уже установлен Unity Web Player”David Piao ChiuDirector of Developer RelationsKongregate

Page 6: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Web без плагинов• Нет необходимости что-то устанавливать• Браузер поддерживает

весь необходимый функционал• Меньше дыр в безопасности

* Hello Flash Player Update

Page 7: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

У вас есть Web тайтл в

продакшене?

НЕТ

ДА

Page 8: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Page 9: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

• Unity 5.0• Превью• Бесплатно

5.0b доступна в Бета группе

Page 10: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Demo time!

Page 11: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Немного истории• Проект в рамках Hack Week• Готовая реализация LLVM из Flash экспорта• Что если попробовать экспортить в WebGL?

Page 12: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Немного истории• LLVM -> JavaScript• Первые эксперименты 15х медленнее

Page 13: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Page 14: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Mozilla• Emscripten

LLVM-to-JavaScript compiler.

• ASM.JS“Firefox can optimize asm.js code using 32-bit floating point operations, which, together with all the other work on optimizing asm.js, allows it to run at around 1.5x slower than the speed of the same C/C++ when compiled natively.”Alon Zakai, Mozilla

https://hacks.mozilla.org/2014/05/asm-js-performance-improvements-in-the-latest-version-of-firefox-make-games-fly/

Page 15: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

C# JavaScript

Page 16: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

C# / UnityScript Mono Compiler Assembly Patcher Assembly Stripper Assembly IL2CPP C++ Emscripten JavaScript node.js JavaScript

Page 17: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

C# / UnityScript Mono Compiler Assembly Patcher Assembly Stripper Assembly IL2CPP C++ Emscripten JavaScript node.js JavaScript

Page 18: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Производительность

Page 19: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

http://blogs.unity3d.com/2014/10/07/benchmarking-unity-performance-in-webgl/

Page 20: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Page 21: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Текущее состояниеОграничения как в Web PlayerПока нет:• MovieTexture• Networking, кроме WWW (WebSockets)• Веб камера и микрофон• Сложные возможности аудио• Threads, SIMD• Дебаггинг скриптов

Page 22: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Ограничения платформы• Никакой динамической генерация кода• Графика уровня OpenGL ES 2.0• Неполная поддержка браузерами

* Hello Internet Explorer

• Размер игры

Page 23: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

IL2CPP

Page 24: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

IL2CPP• IL (.NET Intermediate Language) -> C++• Нативный компилятор под каждую

платформу

Page 25: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Проще добавлять новые платформы

Page 26: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Как это влияет на вас?

Page 27: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Как это влияет на вас?• Ограничения AOT платформ• Дольше компиляция• Можно использовать нативные дебагеры и

профайлеры• Можно использовать C++ файлы в проекте

Page 28: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Производительность

Page 29: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Page 30: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

Mono 32 79msMono 64 69msIL2CPP 32 35msIL2CPP 64 33msFirefox 44msChrome 61msSafari 64msC++ 64 31ms

Page 31: Unity: WebGL и IL2CPP — будущее скриптинга в Unity»

WebGL и IL2CPP

Валентин СимоновField Vodka [email protected]@valyard