Machine learning vs GameDev 2

Предыдущей пост не залетел, ну да пофиг )


Просто хочется писать на тему которая нравится, а на данный момент это именно машинное обучение.

Итак: Machine learning vs GameDev.


В прошлый я попытался рассказать как это выглядит со стороны игрока на примере бета теста Destiny 2.

Сейчас я хочу затронуть немного другу тему: передвижение.

Казалось бы что может проще: лево это лево право это право. Нажал и повернул.

В реальности GameDev ээто происходит немного по другому: на каждое телодвижение накладывается ряд параметров: слева стена? выступ? уступ? обрыв?

Во времена моего института это решалось кучей введенных классов и параметров.

Machine learning vs GameDev 2 Gamedev, Plymouth hemi cuda, Машинное обучение, Длиннопост

Да, эта ситуация крайне бесила и мы вынуждены были с ней мириться года эдак до 2005. Потом у нас появилась CUDA.


Да, можете не говорить что CUDA вошла на рынок году этак в 2010, мы же с вами знаем что технологию надо еще очень долго обкатывать.


Когда Nvidia выкатилась с этими процессорами, это дело вообще ни у кого не зашло, эту архитектуру мир пытался принять 5 лет. Прежде чем кричать про котолампу – почитайте что сейчас происходит с технологией nvlink().


Итак, у нас появилась CUDA, основы перечислять не буду, но появилась возможность не изобретать велосипед каждый раз заново, а закинуть ряд вычислений на потоковую обработку и получить ответ не через минуту, а через 8-20 тактов.


Это сломало все, появилась возможность моделировать поведение игроков. Если раньше мы рассчитывали «мощь» босса в зависимости от «предполагаемой» мощи игрока, теперь у нас появились вычислительные мощности, о которых мы ранее и не мечтали, теперь можно «подогнать статы» босса под игрока. Пока у игрока распаковываются пак с текстурами (это завязано на скорость НМЖД), мы можем подгрузить из облака паттерны его поведения просчитать его поведение и выдать ему того босса, которого он хочет. (для любителей котоламп: оффлайн и сломаные версии хранят данные паттерны в appdata (да, производитель изначально закладывает в игру возможность взлома))

Что то я затянул, я сам забыл с чего начал и свернул не туда..  итак - движения:

Как же наша тушка реагирует на наши телодвижения? Ранее у нас был один ответ – геодата. По факту геодата это склонированная карта уровня, часто это копипаста с увеличением на 0.1-2%. Но мы же с знаем что 3D моделлеры - крайне ленивые ребята, потому у нас возникают ситуации когда вы проваливаетесь сквозь текстуры.

НАДОЕЛО! ДАЕШЬ СВОБОДУ ОТ ДИЗАЙНЕРОВ!!

Решение простое и долго висело на горизонте – генерируем геодату по мере передвижения и храним её в оперативке. Легко сказать, сложно сделать, когда у нас появились видеокарты с 2Gb+ на борту? Когда у нас появились те же самые видеокарты c вычислительной мощностью хотя бы 5TFLOPS? Вот потому мы и жили на сгенерированных картах и падали под текстуры, и мечтать не могли ни о какой динамике.

На данный момент мы раскладываем +-2 миллиона трекольников по кругу, рисуем по ним геодату, и это позволяет нам карабкаться по скалам.


PS. Чукча не писатель, но пытается научиться. Сорян что выбрал Вас в качестве аудитории.