Tech-wise you use a 3D renderer (Unity, Unreal, whatever you like) to draw flat-shaded sprites as quads on a flat plane using an orthographic camera, then apply a normal map and let the shading engine do its job.
In terms of generating the normals, you can either:
A. Hand-paint them using a facet palette if your sprites are small or have simple enough surfaces.
B. Use a tool to autogenerate a normal map from a set of directional lighting profiles. Here's some example output.
The gif above uses hand-painted normals for the tiles and an autogenerated map for the little smiley blob. No depth map or ambient occlusion, but they're very doable if you're so inclined providing your engine supports them.
There's a package out there called Sprite Lamp that had a successful kickstarter and managed to commercialize the technique (and may well be what this game is using), but from what I gather the engine integration for their extra features didn't work out so well and the developer is winding down on the project. Their kickstarter page has a more detailed run-down of how it all works.
You know, there's a forum called ResetEra that would be a perfect place to have this discussion.
Perfect, thanks, will try this out later.