Волна. Часть II - страница 15



– Ну ты даешь! – Саша обрушила на хрупкое плечо подростка подбадривающий хлопок.

– Гос… – начал он и тут же исправился, – Мари, меня беспокоят баги, которые всплыли на последних тестах.

– Ты имеешь в виду память? – она устроилась удобнее.

– Да, – Чан взял новую чашку чая, принесенную барменом, и отпил маленький глоток. – Память течет, и мы с Шеном понять не можем, как это пофиксить.

– О нет, – закатила глаза Саша. – Только не о работе!

– Погоди, – Мари жестом остановила ее. – Я думала, вы решили все чистить асинхронной проверкой?

– Да, но вы сказали, что нельзя удалять мешающие участки памяти. Получается, мы должны их одновременно и игнорировать, и использовать…

– Что вы хотите сказать? – включилась в беседу Саша. – Появились какие-то утечки во время сеанса?

– Да, – кивнула начальница, – но от твоей работы это никак не зависит. Здесь проблема, которую нужно решать кодом. Мы должны как-то забраться на сторону игрока, но мы по-прежнему не можем полностью извлечь его память, чтобы избежать ошибок.

– Какие там могут быть ошибки?

– Сеансы, – вздохнул Чан. – Сеансы протекают друг в друга.

– Как? – изумилась девушка.

– Давай я объясню, – взяла слово Мари. – Представь, что в первой игре у пользователя появилась собачка. Эта собачка – творение его сознания, ее нет в его воспоминаниях об истиной реальности. Но после сеанса эта собачка, будем считать ее нашим объектом, становится уже не только частью игры, но и подлинным воспоминанием и опытом игрока. Так вот, наш объект включает в себя массу других объектов – и каждый из них может внезапно всплыть в другом сеансе и потянуть за собой так называемый «бэд трип». Если вернуться к собачке, то объектами внутри нее будет не только ее визуальная оболочка, но и запах, звук, ощущения прикосновения к ней и многое другое, вплоть до всех волосков на ее теле. Если в аромате нашего лабрадора будет нотка можжевельника, в последующих сеансах игры этот оттенок запаха может потянуть за собой весь образ собаки. И тогда у пользователя пойдет под откос вся ветка построенной им реальности. Так часто бывает во сне – один образ внезапно сменяется другим, одна сцена – совершенно иной. Мы столкнулись с этой проблемой на этапе завершающих проверок на эмуляторе перед запуском тестирования на фокус-группе из реальных людей.

– Фигово, – кивнула Саша.

– Не то слово, – грустно поджал губы Чан.

– А почему нельзя сказать коду отслеживать эту информацию и, работая на опережение, удалять ее из кэша игры?

– Потому что мы должны строить реальность на всей полноте текущего опыта игрока.

– Зачем? Если в каком-то отрезке реальности, который он заново строит, не было тех событий, которые он проигрывал в предыдущей игре, зачем встраивать их в новый сеанс?

– Чтобы сделать игру максимально достоверной для текущей версии пользователя.

– Всего-то? – фыркнула Саша. – Как по мне, так этими изысками вполне можно пожертвовать, чтобы не тратить лишнее время на отладки.

– Слушай, – нахмурилась Мари, – не твое это дело. Ты же не хочешь, чтобы я начала тебе объяснять уникальность разработанной нами нейросети?

– Я уже слышала все это сто раз! Да-да, это первая приближенная к реальному искусственному интеллекту сеть. Но настоящим ИИ ей все равно никогда не стать, потому что в качестве ядра вы используете нейрохимическую активность конкретного мозга.

– Да, – перебила ее руководительница, – и поэтому игра каждого нового пользователя уникальна.