SlideShare a Scribd company logo
WebGL и IL2CPP 
Валентин Симонов 
Field Engineer 
valentin@unity3d.com 
@valyard
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Web Player
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
“У 93% пользователей Kongregate 
уже установлен Unity Web Player” 
David Piao Chiu 
Director of Developer Relations 
Kongregate
Web без плагинов 
• Нет необходимости что-то устанавливать 
• Браузер поддерживает 
весь необходимый функционал 
• Меньше дыр в безопасности 
* Hello Flash Player Update
У вас есть 
Web тайтл в 
продакшене? 
НЕТ 
ДА
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
• Unity 5.0 
• Превью 
• Бесплатно 
5.0b доступна в Бета группе
Demo time!
Немного истории 
• Проект в рамках Hack Week 
• Готовая реализация LLVM из Flash экспорта 
• Что если попробовать экспортить в WebGL?
Немного истории 
• LLVM -> JavaScript 
• Первые эксперименты 15х медленнее
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/
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/
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Текущее состояние 
Ограничения как в Web Player 
Пока нет: 
• MovieTexture 
• Networking, кромеWWW (WebSockets) 
• Веб камера и микрофон 
• Сложные возможности аудио 
• Threads, SIMD 
• Дебаггинг скриптов
Ограничения платформы 
• Никакой динамической генерация кода 
• Графика уровня OpenGL ES 2.0 
• Неполная поддержка браузерами 
* Hello Internet Explorer 
• Размер игры
IL2CPP
IL2CPP 
• IL (.NET Intermediate Language) -> C++ 
• Нативный компилятор под каждую 
платформу
Проще добавлять 
новые платформы
Как это влияет на вас?
Как это влияет на вас? 
• Ограничения AOT платформ 
• Дольше компиляция 
• Можно использовать нативные дебагеры и 
профайлеры 
• Можно использовать C++ файлы в проекте
Производительность
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Mono 32 79ms 
Mono 64 69ms 
IL2CPP 32 35ms 
IL2CPP 64 33ms 
Firefox 44ms 
Chrome 61ms 
Safari 64ms 
C++ 64 31ms
WebGL и IL2CPP 
Валентин Симонов 
Field Vodka Engineer 
valentin@unity3d.com 
@valyard

More Related Content

PPTX
Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...
PDF
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
PDF
JavaScript завтра / Сергей Рубанов (Exante Limited)
PDF
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
PPTX
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
PDF
Павел Юрийчук - Разработка приложений под мобильные браузеры
PDF
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
PDF
Mihail Zachepilo - WebAssembly powered Machine Learning
Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
JavaScript завтра / Сергей Рубанов (Exante Limited)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
Павел Юрийчук - Разработка приложений под мобильные браузеры
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
Mihail Zachepilo - WebAssembly powered Machine Learning

What's hot (19)

PDF
CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...
PDF
Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...
PDF
Жизнь в изоляции / Роман Дворнов (Avito)
PDF
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
PDF
Современный фронтенд за 30 минут.
PDF
WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...
PDF
Современный фронтенд -- как не утонуть в море хайпа?
PDF
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
PPTX
Знакомство с WebAssembly
PDF
Разработка API для большого, нагруженного сервиса
PDF
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
PDF
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
PDF
JavaScript + Webdriver = ♥
PDF
Bootstrap3 basics
PPTX
Обучение фронтенд разработке
PDF
UI, сделай мне хорошо
PDF
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
PPTX
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
PPT
3D в браузере. Битва за реалистичность / Иван Дембицкий (Realaxy)
CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...
Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...
Жизнь в изоляции / Роман Дворнов (Avito)
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
Современный фронтенд за 30 минут.
WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...
Современный фронтенд -- как не утонуть в море хайпа?
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Знакомство с WebAssembly
Разработка API для большого, нагруженного сервиса
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
JavaScript + Webdriver = ♥
Bootstrap3 basics
Обучение фронтенд разработке
UI, сделай мне хорошо
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
3D в браузере. Битва за реалистичность / Иван Дембицкий (Realaxy)
Ad

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

PDF
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
PDF
Atlassian user group
PPTX
Кирилл Комлев. О реализации continuous integration для web проектов
PPTX
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
PDF
Desktop app based on node js and html5
PDF
Денис Чистяков — JavaScript на фронте и в тылу
PDF
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
PDF
Юрий Василевский «Автоматизация в XCode»
PDF
Юрий Василевский "Автоматизация в XCode"
PPTX
Gradle. Новый уровень автоматизации для Android
PDF
Javascript-фреймворки:
 должен остаться только один
PDF
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PPTX
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
PPTX
Gradle. Новый уровень автоматизации для Android
PDF
Cеминар в Виннице (22.03.2014)
PPTX
Введение в Knockout
PDF
Изоморфные react-приложения
PDF
Interactive Lab: Разработка Flash игр на Unity3D
PDF
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
Atlassian user group
Кирилл Комлев. О реализации continuous integration для web проектов
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
Desktop app based on node js and html5
Денис Чистяков — JavaScript на фронте и в тылу
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский "Автоматизация в XCode"
Gradle. Новый уровень автоматизации для Android
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Gradle. Новый уровень автоматизации для Android
Cеминар в Виннице (22.03.2014)
Введение в Knockout
Изоморфные react-приложения
Interactive Lab: Разработка Flash игр на Unity3D
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
Ad

More from DevGAMM Conference (20)

PPTX
The art of small steps, or how to make sound for games in conditions of war /...
PPTX
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
PPTX
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
PPTX
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
PPTX
AI / ML for Indies / Tyler Coleman (Retora Games)
PDF
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
PPTX
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
PDF
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
PDF
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
PDF
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
PDF
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
PDF
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
PDF
How to increase wishlists & game sales from China? Growth marketing tactics &...
PDF
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
PDF
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
PPTX
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
PDF
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
PPTX
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
PPTX
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
PPTX
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
The art of small steps, or how to make sound for games in conditions of war /...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
AI / ML for Indies / Tyler Coleman (Retora Games)
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
How to increase wishlists & game sales from China? Growth marketing tactics &...
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...

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

  • 1. WebGL и IL2CPP Валентин Симонов Field Engineer valentin@unity3d.com @valyard
  • 5. “У 93% пользователей Kongregate уже установлен Unity Web Player” David Piao Chiu Director of Developer Relations Kongregate
  • 6. Web без плагинов • Нет необходимости что-то устанавливать • Браузер поддерживает весь необходимый функционал • Меньше дыр в безопасности * Hello Flash Player Update
  • 7. У вас есть Web тайтл в продакшене? НЕТ ДА
  • 9. • Unity 5.0 • Превью • Бесплатно 5.0b доступна в Бета группе
  • 11. Немного истории • Проект в рамках Hack Week • Готовая реализация LLVM из Flash экспорта • Что если попробовать экспортить в WebGL?
  • 12. Немного истории • LLVM -> JavaScript • Первые эксперименты 15х медленнее
  • 14. 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/
  • 16. C# / UnityScript   Mono Compiler  Assembly   Patcher  Assembly   Stripper  Assembly   IL2CPP  C++   Emscripten  JavaScript   node.js  JavaScript
  • 17. C# / UnityScript   Mono Compiler  Assembly   Patcher  Assembly   Stripper  Assembly   IL2CPP  C++   Emscripten  JavaScript   node.js  JavaScript
  • 21. Текущее состояние Ограничения как в Web Player Пока нет: • MovieTexture • Networking, кромеWWW (WebSockets) • Веб камера и микрофон • Сложные возможности аудио • Threads, SIMD • Дебаггинг скриптов
  • 22. Ограничения платформы • Никакой динамической генерация кода • Графика уровня OpenGL ES 2.0 • Неполная поддержка браузерами * Hello Internet Explorer • Размер игры
  • 24. IL2CPP • IL (.NET Intermediate Language) -> C++ • Нативный компилятор под каждую платформу
  • 27. Как это влияет на вас? • Ограничения AOT платформ • Дольше компиляция • Можно использовать нативные дебагеры и профайлеры • Можно использовать C++ файлы в проекте
  • 30. Mono 32 79ms Mono 64 69ms IL2CPP 32 35ms IL2CPP 64 33ms Firefox 44ms Chrome 61ms Safari 64ms C++ 64 31ms
  • 31. WebGL и IL2CPP Валентин Симонов Field Vodka Engineer valentin@unity3d.com @valyard