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