XaiJu
DogmaMods
DogmaMods

patreon


Отчет 12

На этой неделе занимался последней веткой карманника. Это была в основном технического плана работа. В мои задачи входило создание антуража для секс-сцены. Там получается секс-сцена идет как бы параллельно с сюжетной, вот для сюжетной мне надо было создать массовку, и добавить функции для ее управления. Я не хотел заранее пред-создавать массив с существующими персонажами в Солитьюде, а чтобы это происходило динамически. В основном для того, чтобы могли использовать и персонажи из сторонних модов, ну и чтобы избежать шаблонности, так как событие предполагает перезапуски. Заранее кешировать массив тоже был не вариант, так как персонажи могут перестать подходить, например они были отключены, или убиты, или стали участниками каких-то сцен на момент запуска события и тд. Основная нагрузка лежит на функции их поиска: проверка 28-ми ячеек в городе, поиск там всех Actor и пропуск их через мой фильтр.

Первая версия скрипта по их поиску работала очень долго, около 30-ти секунд, что сильно тормозило запуск сцены. И это еще при условии, что сразу нашло нужное количество персонажей, иначе будет повторный проход спустя время(если игрок предварительно не убил большинство персонажей, находит с первого раза). Вдобавок, это я тестировал на LE версии без сторонних модов, на SE там будет помедленнее, папирусу выделено меньше процессорного времени. И если у игрока еще и установлены моды на увеличение персонажей, это может в итоге вылиться в еще большее значение. Мне пришла идея распараллелить основную логику поиска на магические эффекты, которые выполняются асинхронно в папирусе, и в итоге удалось добиться 8-ми секунд. Ожидал конечно намного меньше значение, но там оказалась основная нагрузка происходит в одной из ячеек - около 6-ти секунд, и это уже никак не уменьшить, в ней больше всего персонажей. Плюс накладные расходы на синхронизацию с основным скриптом, где я также долгое время промучился, так вся эта система попросту не работала как было задумано. Скрипт не получал корректные данные о фазе завершения работы скриптов магических эффектов и зависал, а также эти скрипты конфликтовали между собой в момент записи персонажей и массив некорректно формировался. В итоге, как я понял, несколько потоков получали одновременно доступ к одним и тем же значениям переменных, но из-за разницы во времени своей работы устанавливали их некорректно, в итоге основной скрипт думал, что в работе еще есть магические эффекты, а на деле они уже все завершали работу. В общем, я уже и не рад был, что решился взяться за этот вариант, скрипт стал очень сложным и трудным для отладки. Но я все же смог его дописать и сделать безопасным.

Хотя от таких моментов есть и плюсы: повышаешь свои навыки, узнаешь что-то новое, но если бы у меня была здесь возможность использовать skse, я бы сделал все это гораздо быстрее и проще, мне бы не пришлось вот так заморачиваться, и конечный результат был бы с минимальной нагрузкой на папирус.

На следующей неделе у меня в планах работа над самой секс-сценой. Ее структура не самая простая - сцена является частью сюжетного события, и это событие может прерываться, то-есть, сцена должна перезапускаться вместе с ним в другой раз, учитывая при этом последствия прошлого варианта, так как у игрока есть возможность влиять на нее. Также, помимо этого, в зависимости от действия игрока, будет запущена еще одна небольшая ветка, которая может привести еще к одной секс-сцене, которая также будет оказывать влияние на основное событие.
В общем, достаточно трудоемкая ветка в целом, при том, что я ее значительно упростил относительно начального концепта. У меня не было ни единого шанса ее сделать, когда я впервые работал над Солитьюдом, тогда попросту не хватило бы опыта.

Возвращаюсь к работе.

И как всегда, огромное спасибо за вашу поддержку!

Comments

Придется дождаться обновления и узнать)

Dogma

Super excited! Any sneak peak into what the sex scene may include?

Savannah


More Creators