Как вырастить F2P проект и не сойти с ума

Содержание

Слайд 2

ПРО МЕНЯ В индустрии с 2013 года Разработка мобильных проектов, тулзов

ПРО МЕНЯ

В индустрии с 2013 года
Разработка мобильных проектов, тулзов для них
Тимлидство,

обучение, менторинг
Начинал с Unity 4.x
Сайд-проекты на C#, C++, Python, Go, Kotlin, Erlang
Слайд 3

ПЛАН Автоматизация Контент Конфиги Апдейты

ПЛАН

Автоматизация
Контент
Конфиги
Апдейты

Слайд 4

Слайд 5

Слайд 6

Слайд 7

Слайд 8

Слайд 9

Слайд 10

Слайд 11

Слайд 12

РАЗМЕРЫ В ЦИФРАХ 3 года Прототип, софт-ланч, релиз - 35 версий

РАЗМЕРЫ В ЦИФРАХ

3 года
Прототип, софт-ланч, релиз - 35 версий (каждый месяц)
8

типов периодических ивентов
23 города (360 уровней в каждом)
20 000 (8 Gb) элементов арта
100 000 строк кода
200 сцен
40 Gb общий размер проекта
Слайд 13

РАБОТА С АССЕТАМИ Лимиты сторов Low/high-end девайсы Resources/AssetBundles для редактора/билда LD/HD

РАБОТА С АССЕТАМИ

Лимиты сторов
Low/high-end девайсы
Resources/AssetBundles для редактора/билда
LD/HD контент, ImageMagick для создания

LD из HD
Заливаем на CDN
Слайд 14

ИЗБЫТОЧНОСТЬ Лишние зависимости в бандлах Разделяем атласы Общие ассеты Вырезаем лишнее при сборке сцен

ИЗБЫТОЧНОСТЬ

Лишние зависимости в бандлах
Разделяем атласы
Общие ассеты
Вырезаем лишнее при сборке сцен

Слайд 15

НОВЫЙ ПОДХОД Поведение в редакторе и билде различается Много лишнего кода

НОВЫЙ ПОДХОД

Поведение в редакторе и билде различается
Много лишнего кода
AssetDatabase как имитация

бандлов в редакторе
StreamingAssets
Про работу с ассетами - https://habr.com/ru/post/433366/
Слайд 16

ДО: ПОСЛЕ:

ДО: ПОСЛЕ:

Слайд 17

РУТИНА Легко указать неправильные настройки Проблемы с этим не видны сразу

РУТИНА

Легко указать неправильные настройки
Проблемы с этим не видны сразу
Максимум автоматических настроек
Валидации

при импорте
Валидации в редакторе
Слайд 18

Слайд 19

ДОСТАВКА БИЛДОВ Издателю нужны ежедневные билды Выделяем отдельную машину и пишем

ДОСТАВКА БИЛДОВ

Издателю нужны ежедневные билды
Выделяем отдельную машину и пишем скрипты
Локально/удаленно запускаем

сборку и заливку
Слайд 20

ИНФРАСТРУКТУРА Не хочется собирать вручную Удаленка нестабильна Управляем билдами через Slack

ИНФРАСТРУКТУРА

Не хочется собирать вручную
Удаленка нестабильна
Управляем билдами через Slack
Собираем билды параллельно
Веб-интерфейс для

контроля
Слайд 21

УСКОРЕНИЕ БИЛДОВ Контента много Сборка занимает очень много времени Делаем свою

УСКОРЕНИЕ БИЛДОВ

Контента много
Сборка занимает очень много времени
Делаем свою инкрементальную сборку с

использованием результатов предыдущих сборок
Слайд 22

Слайд 23

ИНКРЕМЕНТАЛЬНОСТЬ Собирать все каждый раз не нужно Набор изменений из Git

ИНКРЕМЕНТАЛЬНОСТЬ

Собирать все каждый раз не нужно
Набор изменений из Git
Определяем зависимости
Общие объекты

не учитываем
Выкидываем все лишнее
Собираем оставшееся
Остальное берем из кэша
Слайд 24

БИЛДЫ ДЛЯ КОМАНДЫ Нужны билды с фичами, которых еще нет в

БИЛДЫ ДЛЯ КОМАНДЫ

Нужны билды с фичами, которых еще нет в QA
Трекаем

изменения в репозитории, собираем независимый билд
Заливаем в HockeyApp
Слайд 25

ЧАСТЫЕ АПДЕЙТЫ Нужно менять баланс, запускать ивенты, а/б тесты Без выпуска

ЧАСТЫЕ АПДЕЙТЫ

Нужно менять баланс, запускать ивенты, а/б тесты
Без выпуска новых версий

в сторы
XML
Качаем с CDN
Храним внутри версию
Слайд 26

БОЛЬШОЙ РАЗМЕР Конфиги в XML тяжелые Каждый качается отдельным запросом Дублирование

БОЛЬШОЙ РАЗМЕР

Конфиги в XML тяжелые
Каждый качается отдельным запросом
Дублирование логики загрузки
Пакуем в

zip
Один запрос на все
Качаем одним инструментом
Слайд 27

ДО: ПОСЛЕ:

ДО: ПОСЛЕ:

Слайд 28

УДОБСТВО РАБОТЫ Весь архив меняется Большой общий файл Редактирование вручную Нет

УДОБСТВО РАБОТЫ

Весь архив меняется
Большой общий файл
Редактирование вручную
Нет нормальных доков
Делаем несколько архивов,

качаются и читаются одной транзакцией
Добавляем валидацию через XSD, документация автоматом
Слайд 29

БЕЗОПАСНОСТЬ От багов нельзя защититься на 100% Защитное программирование Механизм выдачи компенсаций Говорить об изменениях

БЕЗОПАСНОСТЬ

От багов нельзя защититься на 100%
Защитное программирование
Механизм выдачи компенсаций
Говорить об изменениях

Слайд 30

СТАБИЛЬНОСТЬ Формат сейва меняется Загрузка сейвов любой версии Кроссплей Миграции Блокировка игры с разных мажорных версий

СТАБИЛЬНОСТЬ

Формат сейва меняется
Загрузка сейвов любой версии
Кроссплей
Миграции
Блокировка игры с разных мажорных версий

Слайд 31

ЛЕГКИЕ СЕЙВЫ -80% размера …

ЛЕГКИЕ СЕЙВЫ

-80% размера







value=”0:3,1:2,...119:1”/>
Слайд 32

ЗАКЛЮЧЕНИЕ Изучайте чужой опыт Думайте о возможных проблемах Имейте план Решайте, когда будет актуально

ЗАКЛЮЧЕНИЕ

Изучайте чужой опыт
Думайте о возможных проблемах
Имейте план
Решайте, когда будет актуально