CinemaVR - это комплексное решение, которое пронизывает весь стек от железа, до системы управления франчайзи и разработки новых VR-игр. В работе мы столкнулись с массой технических проблем и решили много интересных задач:
Автоматизация систем, которые плохо предназначены для автоматизации (игровые машины на персональной версии windows и steam);
Работа и централизованное управление площадками в условиях нестабильного интернета;
Разработка интересных VR-игр для игры на большой площади;
Мониторинг и аналитика работы сети.
В этом докладе я расскажу про путь, который прошел проект с нуля до работающей сети из десяти локаций по Москве и Петербургу, с какими проблемами мы столкнулись и как их решили.
2. Про VRTech и меня
● VRTech - фонд, вкладывается в VR-проекты
● Андрей Татаринов
○ CTO в VRTech
○ До этого CTO в Спутник, Zvooq, Enter; SRE в Google
3. Про CinemaVR
● Сеть аттракционов
виртуальной реальности
● Модульная архитектура
● Уникальные игры по сюжетам
фильмов
● Размещение рядом с
кинотеатрами в Москве и
Петербурге
● В будущем: франшизная сеть
5. С чего все началось
● 20 сентября
● Запуск на новогодние праздники, сдвинуть нельзя
● 10 локаций
○ Застроить и запустить
○ Меньше - плохо, лицензии за контент - фикс
● Три месяца до старта
● Ресурсы
○ Разработки платформы нет - найм под проект
○ Разработка игр на аутсорсе
○ Застройка на аутсорсе
○ Непрофильные задачи - люди с других проектов
6. Что делать с такой постановкой задачи?
● Два сильных условия
○ образ результата и дата запуска
● Три месяца на весь проект
● Команда разработки
○ Нанимается под проект
○ “Нет времени объяснять, надо кодить!”
● Водопад
○ Сформировать концепцию и план по исследованиям/разработке
○ Найти хотя бы какой-то ответ на все вопросы, реализовать все ключевые компоненты
○ Подготовить оборудование для всех локаций
○ Развернуть
○ Запустить
○ Не дать упасть
● Фокусировка
8. Старт работы
Первые пара недель:
● Думать: проектировать систему
● Нанимать команду
○ HH.ru
○ Конверсия 50 → 10 → 1
○ Junior/Middle
○ Готовность к широкому спектру задач
9. Концепция: что использовать для VR?
Задачи VR:
● Показать картинку (+реагировать на движения головы)
● Отслеживать положение пользователя в пространстве
Решения:
Маска Трекинг
Samsung GearVR +
OptiTrack/Vicon
GearVR OptiTrack/Vicon (+свое
решение по синхронизации
систем)
Oculus Rift Oculus Oculus (камера)
HTC Vive HTC Vive HTC Vive (Lighthouse)
17. Архитектура и системы
● VR
○ HTC Vive, SteamVR
● Контент
○ Собственный контент - unity/unreal, аутсорс
○ Игры из Steam
● Управление локацией
○ Агент на игровой машине - C#, разработка
○ Сервер управления локацией - Ruby on Rails, разработка
● Управление конфигурацией
○ Chef, разработка
● Управление сетью локаций + сайт
○ Ruby on Rails, разработка
● Аналитика
○ Kibana, Jupyter
19. План есть, работаем
● Трелло борда с фичами по приоритетам
● Приоритет 0 должен быть закрыть любыми средствами
● Четкий план по времени
● Квотирование времени по фичам (ex: за неделю должно быть найдено и
реализовано любое решение)
● Ежедневный стендап, но без аврала: по выходным - отдыхаем
23. Запуск
● За две недели до запуска (~15 декабря) переходим в режим подготовки
оборудования для локаций
● Процесс еще плохо автоматизирован
● 1-2 дня для подготовки локации (сейчас: 4 часа)
● План-график по застройке и старту локаций
● Разработка фактически закончена
24. Запуск
● Первый месяц (с 15 декабря по 15 января) поддержка силами команды
разработки
● Существенных проблем не было
● 2-го января обновился Steam, пришлось перезагружать все игровые
машины
● 3-го января обновляли драйвера DirectX и выкатывали новую игру
25. Нюансы
● Калибровка легко сбивается если задеть лайтхаус
● Администраторы площадок занимаются перекалибровкой вместо того,
чтобы звонить в саппорт
● Обновления в win10 нельзя отключить, после скачивания обновления
windows перезагружается
● Стим обновляется и сбивает настройки
● Wi-Fi в ТЦ перегружен, видео-стриминг не работает без провода
● Интернет плохой и быстро кончается
● Крючки для одежды в кубе забыли
26. Жизнь после запуска
● Развитие платформы
○ Аналитика
○ Автоматизация ручных процессов (например отчетность по итогам дня)
○ Расширение функционала (например билеты на полчаса)
● Отладка процессов
● Расширение ассортимента игр
● Старт продаж франшизы