¿Qué idiomas necesito usar para crear un juego multijugador en Android e iOS?

En realidad tienes una cantidad sorprendente de opciones en estos días; Los juegos móviles multiplataforma son posiblemente más fáciles que las aplicaciones móviles multiplataforma.

El objetivo en las aplicaciones móviles suele ser una cierta “sensación nativa”, lo que no es una preocupación para los juegos (es decir, pueden ignorar por completo los widgets integrados). Como tal, la preocupación es más lo que se puede escribir que se puede usar en todas las plataformas sin dejar de ser suficientemente eficiente. Esto dependerá ampliamente de sus necesidades:

  • Javascript es probablemente la opción con menos rendimiento que vale la pena considerar, aunque no es tan mala como algunas personas parecen pensar. Para mí es un lenguaje muy agradable, y HTML + JS (opcionalmente en un contenedor nativo en cada plataforma) se ejecutará en casi todas partes. Este sería mi enfoque predeterminado, particularmente para el tipo de ejemplos que ha dado.
  • C # es una opción si está buscando construir algo un poco “más pesado”. Hay muchos motores de juegos que pueden crearse para dispositivos móviles, principalmente Unity. Esto significaría escribir C # (o su extraña variante de JS). Otros motores usan otros idiomas, pero en cada caso, por lo general, se requiere más esfuerzo para aprender el motor que cualquier idioma que se use.
  • Vanilla C es técnicamente una opción en las dos principales plataformas móviles. Puede compilarlo para iOS directamente, y Android tiene el NDK. Esta opción es más útil si tiene una base de código existente en C que desea portar (p. Ej., PC a dispositivo móvil), ya que probablemente querrá usar la representación nativa, entrada, redes, etc., lo que significa una plataforma mucho más Implementación específica. No lo recomendaría a nadie que comience un proyecto desde cero que sepa que será móvil en algún momento.
  • Finalmente, técnicamente, puede usar casi cualquier lenguaje grande. Existen herramientas para empaquetar Ruby y Scala para dispositivos móviles que he explorado yo mismo, y sospecho que lo mismo ocurre con los idiomas más populares. La desventaja aquí es que generalmente se centran en aplicaciones, no en juegos (con la excepción de los motores de juego mencionados en mi segundo punto), por lo que tendría problemas similares al caso C de dependencias específicas de la plataforma.

No he discutido mucho el ángulo del multijugador, pero no importa; del lado del servidor, puede usar el idioma que desee, y todas las sugerencias anteriores manejan las redes de la misma manera que los gráficos o la entrada (es decir, tienen herramientas prefabricadas para todos o ninguno de ellos).

Todos los ejemplos específicos que ha proporcionado utilizan tecnologías web (es decir, Javascript); podrían escribirse en algo completamente diferente y transpilarse, pero son lo suficientemente simples como para que eso probablemente sea excesivo. De cualquier manera, esa es una pregunta completamente diferente.

La mayoría de las personas en iPhone usan Swift (o quizás Objective-C), la mayoría de las personas en Android usan Java.

Si prefiere intentar usar la misma base de código en ambos, tiene algunas opciones, tal vez Java y libGDX, o tal vez Xamarin. También puedes usar JavaScript, pero ya sabes, ewww .