Is there any real realistic WebGL 3D game for mobile?

Hey guys! Is there any real heavy WebGL 3D game for mobiles?

I have to ask as I’m developing a social 3D game with webrtc communication and we only got a cubemap + a simple model rendered for each user connected + WebRTC voice chat + face morphing and we are getting crackly movements as we move our cameras with Google Cardboard (and those tests were on high end phones!).

I am sure we have done most we could to address performance on our side, so we are suspecting we reached the limit WebGL can offer in terms of performance for mobiles with a simple Social VR “Hello World”.

I can’t find realistic 3D WebGL games for mobiles on the web, so that’s why im asking here. I may be trying to achieve something impossible at the moment with WebGL so we may need to change our approach.

I’m not sure if it count as realistic, my game has 10,000s of objects, particle effects, skinned mesh animation, 100s of sound sources, decent AI etc. And it does run pretty well on a mobile device, I haven’t benchmarked it for a while, but it used to run at 30fps + on my old iPhone 5.

I think, as long as you keep garbage collection in check, and know how to deal with FPS spikes resulting from things like shader compilation - it’s not really that different from traditional game development.

Here are a couple of screenshots for reference:

4 Likes

I’ve been struggling to get smooth results for VR games too.

It’s really hard, FPS matters far more than with traditional flat game (50fps is jerky), the hardware is mostly shit so far, it’s already quite busy positioning the player in space, there is two cameras to render from…

Even when you look at the native games ported to the Oculus Quest, you’ll notice that optimisation is pretty aggressive. Nobody use dynamic shadows, every light is baked on textures, 3D assets look like they came out of the Nintendo 64.

Hopefully it looks like new headsets will shortly replace the Quest, but I have little hope about mobile-based VR headset like Google Cardboard to allow crazy game development anytime soon…

2 Likes

I get what you say. VR is a different beast. I think challenges are the same though. WebGPU will help some, I think.

I do not think that gameplay logic and various game engine systems are necessarily an issue though. In my code the gameplay logic account for around 2-3ms per frame, that’s on top of the fact that you can design your render system to run in a worker thread, so you’d have close to full use of a CPU core.

1 Like

I am sure we have done most we could to address performance on our side, so we are suspecting we reached the limit WebGL

this could be worth a try, if you use react-native your threejs content will execute in native openGLES instead of a webview + webGL. you still drive everything with javascript, but the execution context of platform natives will change. look into expo-gl and perhaps react-three-fiber: react-three-fiber/recipes.md at a108bc1d01b35923897ceb6e69c3c521c506624a · pmndrs/react-three-fiber · GitHub even if you don’t like react and the jsx stuff, you can also just use expo-gl, it would run your regular threejs code.

TLDR your codebase could run on the web and native on android/ios.

PS i have no stats or benchmarks, i don’t know how much of a difference webGL1 makes VS the openGLES implementation on mobile but i imagine it could … help?