I tried Cocos2Dx, and really really REALLY wanted to get into, and because I had a client who wanted an Android specific game, Cocos2Dx was the only "good" choice that came highly recommended
I couldn't. I'm sure it's a wonderful engine to those who know how to use it, but the documentation was amazingly awful, the examples seemed a bit too granular and not all of them compiled for me to check them out.. it was a mess.
And then, Torque2D 3.0 got released a couple weeks later (4 months ago now or something like that) and it's the first Torque2D to support android platforms. I downloaded it, pointed the settings to my Android NDK package, and hit the Compile button in Eclipse with the provided Eclipse project
Boom. There was a fully running example game on my android.
Torque2D, though open source and you can mess with the C++ code underneath, the recommended way to make games with it, is to use it's TorqueScript system. It's like UDK in that the scripting language can do pretty much everything you'd ever want to.
As a bonus, Torque2D also compiles, with the same code, to maaaany other platforms.
Not sure about WP8 though, that's a DirectX native device and Im not entirely sure of many engines that throw themselves to it. You will find most free/cheap multiplatform game engines will run on: Windows, OSX, Linux, iOS, and Android because all of those are OpenGL compatible/native.
Of course, there's always Unity. It's free to use and publish, you'll just need to suffer with the "Made with Unity" splash screen
Sounds pretty similar to my prior experiences with Cocos2D-X. Well, today I finally got a project running on all my devices, and even got to moving a sprite using touch input. I call that a victory already!
The problem with most of the free / open-source frameworks and libraries is the sad fact that WP8 is not supported - like in the case of Torque2D. Unity is not an option - I've used it for years and have over a year's worth of professional experience with it, and truth is, I've had it with Unity. Maybe it's just me, though.
I will spend the next couple of days fiddling around with Cocos2D-X, and if I finally get my head wrapped around it, I promise to write a set of Windows-friendly tutorials. I swear.