I would argue best solution would be custom or a open-source engine, but for anyone looking for a quick commercial solution for 2D games, works on multi-platform, out of the box solution, go for GameMaker. It's paid but you'll get someone answering & fixing your support tickets. I'm saying this having actually filed multiple tickets with them.