Сборка билда и прочие неприятности
description
Transcript of Сборка билда и прочие неприятности
Сборка билдаСборка билда и прочие и прочие неприятностинеприятности
Морозов Кирилл Saber Interactive
TimeShiftTimeShift
2
БилдыБилды
Сборка билда – неотъемлемая часть разработки компьютерных игр
Билды бывают разные:
• Большие и не очень
• Ежемесячные и ежечасные
• Press, focus, multiplayer etc.
• PC, PS3, X360…
• RU, EN, US, DE, FR, ES, GB…3
Билд-инженер на 24Билд-инженер на 24/7/7
Работы у билд-инженера много:
• Сборка фич и багфиксов
• Воссоздание структуры
• Конфигурация и настройка
• Написание спецификации
• Присвоение номера версии
• Проверка с QA
• Отправка заказчику4
Первые шагиПервые шаги
• Подружиться с главным программистом
• Ознакомиться с игрой
• Выучить структуру проекта
• Следить за размером билда
• Следить за структурой папок
5
Первая проблема: СценыПервая проблема: Сцены
Отсчет сцен с лайтмэпами:
6
Первая проблема: СценыПервая проблема: Сцены
Конвертер сцен:
• Централизованный отсчет
• Автоматическое обновление данных с Perforce
• Последовательный отсчет всех сцен
• Готовность сцен к утру
7
Данные в билдеДанные в билде
Билд – совокупность данных
Первые сборки билдов:
• Большое количество лишних и не организованных папок
• Билды занимали много места из-за мусора
• Все операции выполнялись вручную
8
Данные в билдеДанные в билде
9
Генератор списков
Shaders, shadowmaps…Shaders, shadowmaps…
Генерация в реальном времени:• Тормоза, низкий FPS• Непозволительно большое время загрузки
уровнейРешение проблемы:• Распределённая прегенерация по разным
платформам• Упаковка бинарного кэша в паки по
спискам
10
WavebanksWavebanks
Суровая реальность мира звуков:
• Большое количество локализаций, отсюда огромное количество звуков
• Постоянные изменения и перекомпиляция, занимающие по несколько часов
11
Файлы конфигурацииФайлы конфигурации
Прятать или нет?
Доступные файлы:
• Опасность взлома конечными пользователями
Скрытые файлы:
• Неудобства при разработке
• Необходимость переупаковки
12
Файлы конфигурацииФайлы конфигурации
Файл конфигурации прятать надо, но:
• Упаковывать их в отдельный пак
• Прятать только под конец проекта
• Необходимо только на PC
• Прятать, но не полностью, оставляя уменьшенную копию снаружи
13
Disk ImageDisk Image и и InstallShieldInstallShield
• Создание образов дисков для приставок – не требует разработки дополнительного ПО
• Для работы с InstallShield’ом был нанят отдельный человек
14
Основная головная больОсновная головная боль
• Огромное количество билдов• 3 платформы
• 7 регионов
• Специфические требования
• Рассылка билдов по тестерам
15
Техническая база - Техническая база - FarmnodeFarmnode
Решение
большинства проблем:
• Удалённый контроль
• Максимально мощные ПК
• Чем больше, тем лучше
• Распределение операций
16
Программное обеспечениеПрограммное обеспечение
Автоматизация производства и управление техническими ресурсами
• 90% операция скрыто в программном коде
• Сокращение затрачиваемого времени
• Повышение качества и надежности продукта
17
Программное обеспечениеПрограммное обеспечение
ПО должно обладать:• Сетевым доступом• LOG’ами• Большим количеством различных настроек• Лёгким и понятным интерфейсом• ПО не должно быть привязано к технической
базе
*.bat – легко и удобно
18
Одни из самых интересных утилит
Build ClientBuild Client
20
Shader CompilerShader Compiler
21
• Установка на все ПК в офисе
• Сбор исходников для расчета шэйдеров
HotFix’sHotFix’s
Поздние не контролируемые сдачи данных, всегда приводят к поломке проекта!
22
HotFix’sHotFix’s
Долой ночные посиделки!
Определите четкие временные рамки приема fix’ов в билд, учитывая:
• Hard times
• Ежедневные билды
• Еженедельные билды
23
Отсылка билдаОтсылка билда
Отсылка билда – обязанность
билд-инженера!
• Десятки гигабайт информации ежедневно
• Сбои при передачи данных
• Полная безконтрольность
24
Отсылка билдаОтсылка билда
Необходимо специальное ПО, которое способно:
• Выполнять синхронизацию файлов и каталогов в двух местах вычисляя контрольную сумму
• Минимизировать трафик• Кодировать данные• Вести подробные log’и• Рассылать отчеты
25
КонтрольКонтроль
Важный момент – всё проконтролировать
• Работа становится образом жизни…
• Работа по выходным
• Работа ночами
26
КонтрольКонтроль
Нет необходимости сидеть постоянно в офисе!
• Необходимо настроить удалённый доступ к рабочему ПК, используя подходящее ПО
• Всегда иметь при себе ноутбук или КПК
27
Доступ в интернетДоступ в интернет
На этом нельзя экономить:
• Максимально высокая скорость соединения
• Не лимитированный тариф
• Резервное соединение через альтернативного провайдера
• Хороший домашний интернет у билд-инженера
28
Источники питанияИсточники питания
Будьте готовы к сбоям в электросети
Необходимо:
• Резервные источники питания большой ёмкости на всё ключевое оборудование
• Портативный винчестер
29
Распределение ролейРаспределение ролей
Будьте готовы к тому, что:
• Люди не поймут ваших обязанностей
• Вам придется рисовать, программировать, носить мебель и петь песни
Расставьте все точки над «И»:
• Не берите на себя чужие обязанности
• Распределяйте сваленные на вас задачи по профильным специалистам
30
Система репортовСистема репортов
Для того, что бы не делать то, что не нужно:
• Будьте всегда в курсе всего что происходит в конторе
• Настройте систему репортов
• Заставьте всех пользоваться вашей системой
31
Передача знанийПередача знаний
Если вы незаменимы:
• Никаких отпусков
• Никаких больничных
Что бы жить спокойно:
• Составьте подробную инструкцию
• Разместите её на сервере
• Расскажите всем об этом32
Дополнительные расходыДополнительные расходы
У вас постоянно будут возникать проблемы:
• Добраться поздней ночью домой
• Голод 8)
Не стесняйтесь! Пусть БОСС:
• Вызовет вам такси
• Закажет вам пиццу
33
ЗаключениеЗаключение
• Наладьте процесс сборки билдов и их настройки
• Обзаведитесь мощной технической базой, защищённой от различного рода катаклизмов
• Разработайте специализированное ПО
• Всегда и всё чутко контролируйте
• Будьте человеком! Знайте себе цену!
34
Есть вопросы? Хотите у нас работать?
Подходите к нашему стенду, на ярмарке проектов!
Морозов Кирилл Saber Interactive