¿Cuánto tiempo llevará aprender desde cero (autoaprendizaje) el desarrollo de aplicaciones iOS y Android para un juego 3D en línea o un juego 2D?

Para ser lo suficientemente bueno como para codificar un juego liberable multiplataforma solo desde cero para ambas plataformas, de 1 a 3 años, a menos que ya conozca OpenGL y la programación de audio.

Sí, es posible usar C ++. Si usa OpenGL para la interfaz de usuario de su juego, puede escribir el 95% de su juego en C / C ++, luego crear un pequeño código de pegamento en ObjC o Java. C es un poco más fácil de tratar que C ++, pero cualquiera es posible. En iOS, la cadena de herramientas convierte ObjC a C antes de compilar, por lo que hay enlaces C para todo en iOS. En Android, usará el NDK de Android para crear binarios nativos. (También puedes apuntar a Windows Phone, Blackberry 10, Roku y muchas otras plataformas de juego usando este método).

Android e iOS tienen libc parcial y muchas bibliotecas POSIX, por lo que incluso puedes escribir cosas como tus rutinas de archivos y redes en C / C ++ multiplataforma.

Sin embargo, si está haciendo esto por algo más que un ejercicio de aprendizaje, le sugiero que use un motor de juegos 3D multiplataforma, especialmente teniendo en cuenta que es un equipo de un solo hombre. Unity es el más popular, y lo programa en C #, que no está tan lejos de Java como ya conoce. Es comercial ($), pero gratis para uso no comercial. Gameplay3D es un motor de juegos 3D multiplataforma gratuito financiado por Blackberry. También puedes mirar Cocos2D-x, que es gratis. Es 2D (aunque creo que puedes usar vistas OpenGL) y tiene muchas API multiplataforma que facilitarían el desarrollo.

La única cosa que necesitará soportar que es muy difícil de hacer multiplataforma es el audio de baja latencia. No tengo ninguna experiencia personal con él, pero Cricket Audio es una solución de código abierto de bajo costo.

Puede usar cocos2d-x para juegos 2D, que es una biblioteca C ++. No necesita convertir a Java. Puede compilar a ARM nativo en ambas plataformas. Una base de código.

Alternativamente, si está en Objective-C, puede usar cocos2d-swift con Apportable, que compila a ARM nativo en ambas plataformas. De nuevo, una base de código.

Al elegir un motor de juego, considere también el soporte de herramientas. Herramientas como editores de mapa / mundo / menú, empacadores de sprites, editores de animación … etc. reduce en gran medida el dolor durante el desarrollo.

No tengo experiencia en iOS o en la conversión de C ++ a Java.
Pero en Android puede usar Android NDK, dejar que C ++ haga los trabajos pesados ​​y construir una GUI en Java. Pero tenga en cuenta que hacer malabares con varios idiomas agrega complejidad y puede superar las ventajas de la ganancia de rendimiento.

Otro enfoque que podría adaptarse a usted es construir todo en HTML5 y webGL
En mi experiencia, es bastante rápido y tiene la ventaja de ser independiente de la plataforma. Si necesita un servidor, puede configurar NodeJS y solo tendrá que lidiar con HTML y Javascript (y tal vez GLSL).

Además, solo puedo referirme a la respuesta de Sireesha Chilakamarri

¿Cuánto tiempo lleva aprender el desarrollo de aplicaciones desde cero?

Depende. Es posible que conozca los conceptos de Java y OOP. Sin embargo, es posible que no conozca los conceptos de Model-View-Controllers.

Recomiendo comenzar con los recursos de desarrollo de iOS o Android. Hay mucha ayuda en línea en 2014 y estoy seguro de que puede ponerse al día en unos pocos meses de práctica.