Nival: Почему ваш Unity проект должен работать в консоли?
-
Upload
devgamm-conference -
Category
Presentations & Public Speaking
-
view
428 -
download
2
description
Transcript of Nival: Почему ваш Unity проект должен работать в консоли?
Почему ваш Unity проект должен работать в консоли?
Что будет
1. Специфика Prime World2. Как реализовать вынос кода в
консоль3. Зачем4. Чем пришлось пожертвовать5. Что удалось выиграть6. Вопросы
• Проект на Unity• Проект с сервером• Проект большой (>20k CCU)• Команда тоже большой (>90 человек)• Проект на PC• Проект в оперировании
Prime World
Найди кота
Прекрасное рядом
public string Path{ get { return this.Parent.Path + _name; }}
Как
Выносим код из Unity в отдельную DLL:1. Windows Standalone выносим и все;2. AOT выносим и собираем с помощью Mono;3. Browser делаем ссылки на *.cs файлы.
Только если очень нужно:using UnityEngine;using UnityEditor;
Зачем
Тестирование• Unit тесты• Все плюшки NUnit + ReSharper• Автоматический прогон тестов на
компьютере без Unity
Профилировние• dotTrace vs Unity Profiler• *Profiler• Полный цикл жизни логики(реакция
на сервер, реакция на большие/частые пакеты, чат)
Зачем
Архитектура• Нет лишних зависимостей (DI)• Компоненты обособлены и
тестируемы• Возможность авто проверок на
соответствие Code Standarts
Скорость разработки• Компиляция без реимпорта ассетов• Работа в Visual Studio• Скорость пересборки• Работа в Visual Studio
Чем пришлось пожертвовать
• Дублирование струтур (BB, GameObject, etc)
• Батничек для тех, у кого нет Visual Studio
• Много Iкода• Иногда протащить что-то куда это
хорошая программерская задача• Хитрые StackTrace
Что удалось выиграть
• 60% оптимизация операций при загрузке
• Детальное понимание памяти• Упрощение архитектуры клиента• Повышение скорости починки багов:
Breakpoint + Умение "играть по логам"
Найди PhysX
Прекрасное рядом
public string Path{ //get { return this.Parent.Path + _name; }
get { return _cachedPath; }}
nival.complaypw.comЧумаков Олег[email protected]/gamescodedogs