Download - Mobile .NET gamedev is not only Unity
![Page 1: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/1.jpg)
![Page 2: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/2.jpg)
Кросс-платформенная игровая разработка на .NET
Июль 15, 2015
Perepechko Grigory.NET Tech Lead
![Page 3: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/3.jpg)
$549.1Выручки
в 2014
миллионов5.7DAU
миллионов18.5
MAUмиллионов
$0.27DARPU
53%Выручки с
телефонов
![Page 4: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/4.jpg)
2010Компания основана в 7
Платформ
5Игр
1000+Сотрудников
![Page 5: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/5.jpg)
![Page 6: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/6.jpg)
![Page 7: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/7.jpg)
![Page 8: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/8.jpg)
https://3.downloader.disk.yandex.ru/preview/5e18301535bb4524b1222c59c1ef6e86239c866d5ea8446a79b509ed8268e980/inf/7mv97l0_f1GRcB8bRLC8M-9AMsDKsusPdhF_VpGw_JjRypK0epAInHHgi4pRhSAUdCmOsdggjm7mTiGS9j2Kew%3D%3D?uid=0&filename=wpss201507140013png&disposition=inline&hash=&limit=0&content_type=image%2Fpng&tknv=v2&size=1280x947
![Page 9: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/9.jpg)
https://3.downloader.disk.yandex.ru/preview/5e18301535bb4524b1222c59c1ef6e86239c866d5ea8446a79b509ed8268e980/inf/7mv97l0_f1GRcB8bRLC8M-9AMsDKsusPdhF_VpGw_JjRypK0epAInHHgi4pRhSAUdCmOsdggjm7mTiGS9j2Kew%3D%3D?uid=0&filename=wpss201507140013png&disposition=inline&hash=&limit=0&content_type=image%2Fpng&tknv=v2&size=1280x947
![Page 10: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/10.jpg)
![Page 11: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/11.jpg)
![Page 12: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/12.jpg)
![Page 13: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/13.jpg)
![Page 14: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/14.jpg)
![Page 15: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/15.jpg)
Monosyne1. Текстуры/атлас в .png/.pvr/.zpvr/.webp. Тайлинг, автобатчинг2. Видео-спрайты (.bik), Видеомаски, Эффекты на уровне glsl/hlsl3. Поддержка .ogg/.wav. Effect/Song аналогичные XNA4. Спрайтовые анимации/стейт-машины на уровне ресурсов5. Виджеты такие как button, checkbox, virtualized scroll6. Поддержка Bitmap/TrueType шрифтов7. Сценграф, json-based формат, экспорт сцен из Flash
![Page 16: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/16.jpg)
![Page 17: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/17.jpg)
1. IoC/DI2. MVP3. Event Aggregator4. Async-based TAP5. T4 для View6. PCL
Архитектура приложения
![Page 18: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/18.jpg)
Плюсы:
1. .NET это удобно!2. Легко пишутся Unit-test`ы3. Фичи модульны и практически не зависят друг от друга4. 95% кода – в PCL5. Разработка/отладка ведется под Windows6. Любые изменения в ресурсах видны на этапе сборки
![Page 19: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/19.jpg)
Минусы:
1. Требуется понимание сути IoC/Event Aggregator2. Легко написать неэффективный код (минус .NET)3. В PCL нет System.IO, Marshal и др.
![Page 20: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/20.jpg)
Итоговые мысли о .NET
1. Шикарный перфоманс 2. В итоге все больше кода уходит в native 3. Unsafe – огромное благо4. Аллокаторы памяти тоже5. Zero Alloc Rule (dotMemory MemoryTraffic)6. Мощный и красивый язык разработк7. Крупный проект выйдет за лимит apple по размеру бинарника8. Нестабильность стабильного Xamarin (40+ багов)9. Более сложная архитектура клиента из за необходимости в потоках10.Хороших разработчиков на .NET не больше чем на C++
![Page 21: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/21.jpg)
![Page 22: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/22.jpg)
1.Git Branching Strategy с упрощениями2.Фича в своей ветке пишется и тестируется.3.На каждый коммит, в каждой ветке – билд всех платформ4.Изначально билд степы в TC, теперь с проектом build scripts
![Page 23: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/23.jpg)
![Page 24: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/24.jpg)
![Page 25: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/25.jpg)
15:00:00|INFO|1|MO-2015|Логирование в продакшн среде
В QA билдах логи шлются в локальный LogStorageВ Release билдах логи шлются при краше в HockeyAppКритичная для аналитики инфа шлется в hadoop/GAСерверное логирование ведется в Kibana
![Page 26: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/26.jpg)
![Page 27: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/27.jpg)
![Page 28: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/28.jpg)
![Page 29: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/29.jpg)
![Page 30: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/30.jpg)
Нужен свой редактор сцен и ресурсов!
![Page 31: Mobile .NET gamedev is not only Unity](https://reader035.vdocuments.site/reader035/viewer/2022062503/58871b7d1a28abfb0b8b4acb/html5/thumbnails/31.jpg)
1.2d меши2.Скиннинг3.Скелетные анимации4.Освещение на картах нормалей5.Объединение с web flash версией6.Ручная аллокация памяти7.Движок на плюсах