El lenguaje nativo para programar en android es java, y puedes hacer partes con c o c++ con el ndk, pero es aconsejable sólo para partes muy concretas.
Para programar juegos hay muchos engines, unity como ya te han comentado, pero hay docenas más. Yo ahora estoy con libgdx (gratuito y libre).
También hay librerías y engines que te permiten programar en otros lenguajes y lo portan a android sin tener que tocar prácticamente nada, pero no te sé decir más.