If you're going for mobile gaming, go with Unity and C# - I'm doing it myself right now as a sort of side-project challenge. I bought a course on one of the Udemy sales (never, ever pay full price on Udemy, you can get all the courses at a fraction of the cost as they run so many sales.
The course I bought was 'Learn To Code by Making Games - Complete Unity 5 Developer'. I'm already a PHP developer but as it was moving into C# I thought it was best to get an all-encompassing course.
They also emailed me a couple of days ago to let me know that the course would be expanded to include guides on making 3d games as well as the 2d ones they already support, which is pretty cool.
The reason I recommend Unity with C# is because:
- Unity is cross platform
- It just became free to use and to sell your games with
- By learning C# you can use that elsewhere, as that is also cross platform.
- Once you know C# its pretty trivial to learn C, PHP, etc.
I'd avoid Java. It's not all that cross platform anymore, and is a complete dog if you run a Java VM on OS X or iOS. It's an inherently slow language, and that's not something you want when dealing with battery powered devices, or games. It's not a hard language to learn, but it's just got such a bloated runtime that it's not worth it (IMO) unless you're working solely with Android as that uses its own java interpreter.
HTML5 is an option, but it's a limited one. Plus you're giving everyone free access to your sourcecode.
The only successful HTML5 game that I'm aware of is
Game Dev Tycoon.