Страницы

воскресенье, 30 октября 2016 г.

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

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


В новой системе товар можно размещать свободно в любом подходящем месте, на одной полке можно разместить разный товар. Уже размещённый товар можно перемещать, при этом не снимая его с полки.


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

Также обнаружил новую напасть, в виде 3dWidget, они оказались не такими быстрыми как я думал, пришлось их немного изменить, чтобы они негативно не влияли на производительность так сильно. В целом, результат оказался положительный, но если бы в игре нам нужно было рендерить одновременно множество сложных 3dWidget'ов, у нас бы были серьёзные проблемы. 3dWidget в данном случае используется для рендера цены товара на ценниках.

Ох и спасибо Эпикам за InstancedStaticMesh!
Спасибо за чтение, и до новых встреч!

- Normal

Комментариев нет:

Отправить комментарий