We once again used Babylon.js for our Ludum Dare 72 hour Game Jam entry - and it was a pleasure to do so.
You can play it directly here
Really had a lot of fun creating it, was very easy to build the level in blender, export as GLTF, load it using the asset manager and then loop through the scene creating entities based on the names in the file.
We also used the Recast plugin to create a Navmesh and use crowds to path find in them (with only one entity in them due to time constraints).
Also used spatial audio to position the sounds based on where the caterpillar’s head is.
Really nice to use the Direct Light in an orthographic world as perspective isn’t required for the shadows anyway.
The caterpillar is a big long chain of ball and socket joints (using AmmoPhysics). The static world is a MeshImpostor, the moving objects are SphereImpostors. We initially tried a SoftBody rope for the caterpillar but there were big performance hits when wrapping a mesh, and it turns out a chain is more what we wanted anyway (although a rope slug/worm would be cool).