pale_emperor писал(а):
1.Как скоро я упрусь в тормоза из за использования BluePrints only?
самое узкое место блюпринта, это циклы с большим количеством итераций, примерно от 500+(например циклы в циклах), как только у тебя появятся подобные функции, они просто будут лагать во время выполнения.
Эту проблему можно решить путем разбиения вычислений на несколько кадров. То есть, сделать так, что бы расчет происходил не мгновенно, а например за 4-10 кадров(с помощью delay - 0 ).
Так я решаю проблемы с быстродействием БП. -
https://picua.org/images/2019/10/18/0a3 ... e0ff07.pngЧто бы создать свой макрос для выполнения циклов с задержкой между итерациями, кликни дважды на форлупе, скопируй код и создай свой макрос, что бы он был на все времена и для любых ситуаций, можно добавить логику где ты будешь указывать как часто будет вызываться задержка.
В моем макросе я могу указывать желаемую задержку, но это бесполезная штука(задержка 0 самое оно) -
https://picua.org/images/2019/10/18/a7d ... c5ed11.pngлучше добавить логику которая будет делать задержку в зависимости от кратности индекса, а требуемую кратность подавать на инпут в макросе.
Затем локал интежер делить на кратность и если нет остатка тогда задержка.
Если необходимо мгновенное выполнение функции или евента с огромным количеством итераций и вычислений, то целесообразно
именно эту функцию написать в С++, а в БП вызывать ее как и все остальные ноды.
pale_emperor писал(а):
Нужно ли париться за небольшие Акторы с минимальной логикой?
если акторы содержат в себе активные коллизии, то да, лучше избавится от коллизий, чем их меньше тем лучше.
Очень часто, вместо коллизий, можно использовать BoxTrace например или другой код.
Серьезное падение быстродействия(ФПС) оказывает не код(за исключением выше), а количество активных компонентов.
Если ты используешь класс чарактер, он в себе уже содержит мовемент компонент, который судя по количеству переменных и функций не является "легким".
Меньше итераций, меньше компонентов - это то что нужно для облегчения жизни процессору, не всегда это возможно, поиск компромиссов это и есть программирование.
p.s. с басней про осла и соловья ознакомился.
Ответ годный и по делу, спасибо.
+ Что имеется в виду под активными коллизиями? Всё объекты с активными Generate overlap events?
+ Выходит особой нужды переписывать мой код (циклов больше чем с 15 итерациями у меня нет) - без особой надобности? Даже функции которые висят на EventTick?
+ Если ответ на предыдущий вопрос положительный, выходит что при отсутствии вложенных циклов BP не особо уступает cpp по производительности и вполне реально написать мультиплеерный проект только на BP?