So, for quite a while I've been wanting to start programming games but I have no idea how to actually begin programming. I wouldn't want to make anything too complex, just a pixelated 2D platformer kinda like Megaman. (though I'm not sure how hard it would be to program something like that)
So first of all what programming language should I learn first? I know C++ is really good, but I've also heard its really hard to learn, so I would like to know if there are any other really good programming languages that are more beginner friendly.
And second, what game engine should I use? I would like to find a good game engine that's free and not too complicated to use. I know that Unity exists, but I don't know if its good for 2D games, since most of the Unity games I've seen are 3D. And also, what should I use to make the graphics and the music for the game?