There is a lack of free open source state of the art game engines. The best one are based on the open sourced Quake 3 engine and Cube2, though they are 10-15 years old. Additionally such an engines needs a good WYSIWYG editor with an inbuilt shader editor like UnrealEd, CryEngine-Editor. The Quake3/Source-Engine editors are very basic and outdated. Game engines are written in C++, with game logic in a scripting language like Lua or JavaScript.
There is also a lack of web 3D engines that ate not based on ThreeJS. Every demo and tutorial is using ThreeJS, instead of WebGL. ThreeJS is an abstraction layer that made sense some years ago when WebGL wasn't around. ThreeJS is slow. One can compile C++ code via emscripten to ams.js, that's great - the downside is the JS filesize.
There is also a lack of web 3D engines that ate not based on ThreeJS. Every demo and tutorial is using ThreeJS, instead of WebGL. ThreeJS is an abstraction layer that made sense some years ago when WebGL wasn't around. ThreeJS is slow. One can compile C++ code via emscripten to ams.js, that's great - the downside is the JS filesize.