Дефакто стандарт разработки 3d игр на JS библиотека - threeJS
https://threejs.org/ Она упрощает работу с webgl и имеет только самое необходимое для создания мира - scenegraph, камеры, источники света, растяжку текстур на 3d модели. У библиотеки большое сообщество и много учебников в сети. Чтобы персонаж не проходил сквозь текстуры называется collision detection. В threeJS реализован только самый базовый инструмент для этого - класс Raycaster.построенный на тех же рутинах что и raytracer А чтобы не роверять пересечения каждого с каждым вам нужно будет узнать например про структуру данных quadtree. Встроенного движка физики в библиотеке нет, предполагается что вы будете использовать по своему выбору. Что бы писать на этой библиотеке вам нужно будет подкачать скилл игроделания, но она быстрая.
Если хотите побольше изкоробки берите фреймворк. Например заслуженно популярен Babylon.js
www.babylonjs.com Кривая вхождения пониже, встроенного инструментария побольше(например движок физики и скелетная анимация), но работает помедленнее и жрет больше вычислительного ресурса. Tutorials в сети тоже достаточно.