Сидел тут, думал еще, какой формы должна быть "толкалка" для переворачивания обратно на ноги. Хотелось бы запилить ее в ближайшее время.
Есть вариант сделать толкалку, которая не зависит от одной конкретной стороны. Как в Робокрафте. То есть, это какая-то прибамбасина, которая всегда будет толкать машину вверх (при нажатии на F) и давать ей небольшую угловую скорость для переворачивания на ноги. Отстрелили ее - перевернуться уже не сможешь.
Есть второй вариант - сделать чуть хардкорнее. Толкалка будет работать только в одну сторону. То есть, к примеру, если толкалка стоит на левом боку, а вы упали на правый, то перевернуться вы уже не сможете. Если стоит на крыше и упали на крышу, то всё ок, перевернетесь обратно.
А есть и третий вариант - сделать возможность переворачивания по-умолчанию на клавишу F. Без каких-то спецблоков. Просто жмете F -> саркофаг пускает под большим давлением струю пара в сторону земли и вы, отталкиваясь, переворачиваетесь обратно.
Я бы хотел сделать либо первый, либо третий вариант. Они самые простые в плане кодинга и самые удобные для самих игроков. Особенно третий вариант. Вы как думаете, какой вариант лучше выбрать?
Внизу поста находятся пара набросков для второго варианта.
Провел небольшое исследование на тему "что быстрее - 5 дроуколов по одному мешу или 5 костей с 1 мешем". Сейчас одно только колесо дает 5 дроуколов. Если на него светит лампочка - то еще 5 дроуколов сверху. Достаточно затратно. Подумал, что, юзая один меш и 5 костей, будет работать быстрее.
Заспаунил перед камерой 1000 колес и начал в каждом кадре трясти все их детали.
Получил следующие результаты:
Если юзать отдельные GameObject'ы:
- 10 000 DrawCalls, 35 FPS, 28ms CPU, 12ms GPU.
Если юзать кости:
- 2 000 DrawCalls, около 22 FPS, 14ms CPU, 44ms GPU.
Ого, подумал я. Стало заметно хуже. Зашел в настройки и поставил галочку напротив GPU Skinning. Запустил еще раз...
- 2 000 DrawCalls, 70 FPS (!), 13ms CPU, 17ms GPU.
Подвожу итог: если игра ориентируется больше на старые компы, то лучше юзать много отдельных объектов, чем плодить кости в цельных мешах. Если же игра ориентируется на DirectX 11, то однозначно надо юзать кости и GPU Skinning. Прирост в производительности будет прям заметный, если множеству мелких деталей прикрутить по косточке.
Так как делаем игру для социалок, то, думаю, нам всё же больше подходит первый способ. С другой стороны, никто пока не жаловался на то, что у него пиксельных шейдеров 3.0 нет и вообще DirectX 11 не работает...
Вот такие пироги, в общем.
Сообщение от Igor
колесо было одно, но лучей выпускалось несколько в перпендикулярных направлениях? Например, не только вниз, а так же вперёд и назад, если в конструкции машины это предусмотрено.
|
Попробуем, увидим.