I'm working in Unity with C#.
Unity has a lot of 2D tools in recent years that make working with sprites, 2D physics, etc... way easier.
The platform character controller is something I made myself though and migrates from project to project. This way it gets updates on a regular basis. This time dash and double jumps were added for example.
Good luck on your game!