Комментарии 6
Просто запасся попкорном и жду окончания. Интересно насколько итоговый код будет работоспособен. Я абсолютно не специалист в вопросе, но что-то (опыт игр) наводит на размышления о том, что именно шутер будет лагать.
НО сама статья хороша. Разбирает все аспекты подробно и пошагово. Спасибо.
Спасибо за комментарий. Какого-то прям четкого финала я не вижу, потому что эту идею можно развивать бесконечно долго. А слишком много аспектов остались ещё нетронутыми.
Итоговый код уже работоспособен, потому что оно в принципе работает) Я бы не стал писать в статью неработающий код. Но я так понимаю, что Вы имели ввиду именно работоспособен=играбелен=хорошая оптимизация. Однако, я и не претендую на то, что в конечном итоге получится ААА-игра, потому что, конечно, здесь всё-таки есть дополнительные обёртки, которые съедают производительность, но в целом потенциал есть. И, конечно, всё будет зависеть от того, насколько потребуется улучшить оптимизацию (у меня игра пока норм летает, но и каждый у себя может запустить этот код, чтобы проверить). Я лишь пытаюсь сделать так, чтобы в дальнейшем то, что описано в статье, можно было разбить на мелкие кусочки и отдельно использовать, если это где-то пригодится. Потому что, всё-таки, данную технологию можно использовать для абсолютно любой 3Д-графики, и не обязательно делать только игру. Думаю, кто-то обязательно подчерпнёт какую-то полезную для себя информацию.
Оптимизация является краеугольным камнем разработки трехмерных игр, и я предлагаю автору посвятить ей всю следующую статью. Дело в том, что по счетчику fps сильнее всего бьет не react или javascript, а контент. Если увеличить размер территории до того, что мы привыкли видеть в играх (даже старых), то от 144fps не останется и следа. Поэтому движки разбивают геометрию уровня на небольшие части и динамически подгружают их в зависимости от координат и направления камеры, добиваясь того, чтобы видеокарта не занималась вычислениями тех территорий, которые не попадут в новый кадр. Погуглите (и расскажите нам) про frustum culling и occlusion culling.
Посмотрел на публикации автора, стало интересно, покопаюсь в коде при случае. Считаю полезным для себя подробное прочтение статей прошлых, и, надеюсь, будущих. Автору успехов!
React + Three.js. Создаём собственный 3D шутер. Часть 3