if you want to program android, you 'll have to learn java. period. and no, you don't need html for that, but your knowledge of C syntax is a good start.
if you want to make PC games, you'll probably want C++, as C programming will probably bring you a few headaches with namespace issues (ok, you CAN program games in C, but do not expect too much support for it).
java programming for 3d gaming seems like a bad idea to me: usually, you need access to lower-level parts of your OS (windows / android / iOS) to create fluent 3D gaming, and java's abstraction API may be slowing things down here, or limiting your possibilities.
for Iphone / Ipad: I think you'd first get a job and a good salary, because you'll need your apps posted by the apple store
the difference between the html versions:
html is the oldest version, you got 5 revisions here (1, 2, 3, 4, 5).
xhtml is a revision of html that has eliminated a lot of the markup possibilities of html and made it more strict concerning syntax.
html has a number of options (eg <center> </center> to specify the layout of your webpage.
but, since html 3, html programmers have begun separating the layout from the content. the layout is now stored in a supplemental language called CSS (cascading stylesheet).
html is also quite intuitive, eg: when I start a new paragraph, I don't have to mention the old one has ended. when I'm making a list, I don't have to mention my previous element has ended before starting a new one.
xHTML is way more strict than that:
you have no makeup options at all: you divide everything into blocks, give them a name, and specify in your CSS file how the layout of blocks with such a name should be.
also, if you open a paragraph, you have to close it. if you open a list item, you have to close it, etc...
xHTML is an XML compliant form of html. it is less intuitive, but is easier to parse for devices with limited CPU possibilities.