Maria Khomenko, Developer, Ice-Pick Lodge
Pathologic 2 is an open-world in Unity with a decently big world. In this talk we’ll discuss the numerous challenges that designing its systems posed and our solutions to them.
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
Denial, Anger, Bargaining, Depression, and Solution: Making an Open-World Game in Unity
1. «Отрицание; Гнев; Торг; Депрессия; Решение;
или создание игры с открытым миром на Unity»
Мария Хоменко
Программист игровой логики
masha@ice-pick.com
4. Огромный проект!
В настоящий момент:
● 586 сцен;
● ~ 100 гб — вес проекта Unity;
● ~ 500 гб — вес исходников;
● ~ 50 минут — время сборки билда.
5. ● Открытый мир
● 4 км2
● ~ 16 кварталов
● ~ 220 домов
● ~ 60 интерьеров
Город
Город — бык!
6. ● Объекты юнити хранят геометрию и логику одновременно;
● Нельзя ссылаться на объекты в других сценах
Город. Проблема
Юнити не хочет, чтобы вы использовали
Update в MonoBehaviour! Пишите свои
менеджеры!
7. Город. Два города!
Город в симуляции:
своя иерархия + свои компоненты
Город в Unity:
геометрия + Unity компоненты
8. ● Связывание с симуляцией
● Поддержка изменений города
Город. Стриминг
9. ● Нет развитых встроенных средств
● Не подходят стандартные решения из ассет стора
Стриминг. Проблема
Для стриминга, кроме редких
случаев, помогает очень хороший
ассет “Sectr”.
16. Ассет бандлы!
● 1 префаб = 1 бандл;
● 1 билд — несколько вариантов бандлов.
Ресурсы. Решение
Эмуляция бандлов в редакторе спасет от многих
неожиданностей. В Unity 2017 с этим может
помочь Asset Bundle Browser
21. ● Все ситуации жизни надо учесть в одном поведении
Редактор игровой логики. Проблема AI
22. ● Комбинация FSM и Behavior tree!
● Одна FSM — много деревьев.
● Логика и поведение разделены!
Редактор игровой логики. Решение AI
23. ● Нужна единая система для 63 разных персонажей
● Разных — значит совсем разных!
Анимации
Unity Timeline ОЧЕНЬ удобен для проверки
сложных анимаций прямо в сцене НЕ в
рантайме. Попробуйте!
27. ● Степной город
● Динамическая смена дня и
ночи.
● Динамическая смена погоды и
освещения
● Дождь и туман
Мор. Окружение
28. Нужен GI Realtime — для динамики
Нужны Light Probes — для мебели и персонажей
Нужны Lightmaps и baked GI — для коробок индоров
Освещение
29. ● Мир без лайтпроб из-за аддитивно загружаемых сцен
● Спайки enlighten даже в пустом проекте на 1 дом
Освещение. Проблема
30. Освещение. Размеры Lighting Data
Единственный способ убрать лаги от
Enlighten — это изменить в Environment
Lighting Source со Skybox на Gradient
Размер Lighting Data
Объединенная сцена
Аддитивно-подгруженные сцены
Без Light Probes C Light Probes
~278 MB~218 MВ
~187 MB ~2421 MB
31. Ура, фикс в 2017.1.2p3!
Лайтпробы курильщикаЛайтпробы нормального человека
33. Спайки при генерации патчей
Но нам же нравится редактор травы Unity
и не нравится ничего в Asset Store?
Трава. Проблема
34. Было
1 меш на патч,
1MB на 1000 кустов
Стало
1 текстура на патч,
8 KB на 1000 кустов
У нас не было никаких проблем с
переходом на Unity 2017 благодаря
surface-шейдерам
35. 1. «50 великих мифов популярной психологии» С. Лилиенфельд, С. Линн, Д. Русио, Б. Бейерстайн
2. Lehman, D. R., Wortman, C. B., &Williams, A. F. (1987). Long-term effects of losing a spouse or child in a
motor vehicle crash. Journal of Personality and Social Psychology, 52, 218-231.
R&D
Отрицание
Гнев
Прототипирование
Торг
Разработка
Оптимизация
Тестирование
Депрессия
Релиз
R&D
Отрицание
Гнев
Прототипирование
Торг Разработка
Оптимизация
Тестирование
Депрессия
Релиз
Ожидания Реальность