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

Post on 30-Nov-2014

363 views 3 download

description

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

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

WebGL и IL2CPP

Валентин СимоновField Engineervalentin@unity3d.com@valyard

Web Player

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

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

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

* Hello Flash Player Update

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

продакшене?

НЕТ

ДА

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

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

Demo time!

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

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

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/

C# JavaScript

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

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

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

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

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

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

* Hello Internet Explorer

• Размер игры

IL2CPP

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

платформу

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

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

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

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

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

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

WebGL и IL2CPP

Валентин СимоновField Vodka Engineervalentin@unity3d.com@valyard