¿Debo aprender C ++ o usar Java para un backend de juego destinado a WebSockets y WebGL?

Creo que iría con C ++. También escribiría la interfaz en C ++, luego la compilaría con Emscripten en el código “objeto” de asm.js. Esto fue, podría compartir código entre los dos proyectos.

El frontend también podría escribirse de modo que apunte a múltiples backends de gráficos, así como a múltiples backends de red. WebSockets es realmente malo para la latencia, ya que se basa en TCP. UDP o mucho mejor, pero sí requiere que escriba una capa de confiabilidad en la parte superior, prácticamente reimplementando la mayor parte de TCP, pero sin las características de inducción de latencia y aceleración agresiva.

Sin embargo, la ventaja de usar Java para un back-end es la confiabilidad, el código de intercambio dinámico y el soporte para la recuperación de fallas. Creo que el rendimiento no está lejos de C ++ en muchas situaciones, pero tiende a usar bastante más memoria.

Depende del juego y de cuán en tiempo real sea la acción. Los objetos de red en JAVA son agradables de usar, mucho más fáciles de usar que C ++. También JAVA se encargará de la memoria. Para una acción rápida y una huella de memoria más pequeña (¿teléfono celular?) C ++ es el camino a seguir. Muchas de las grandes compañías de juegos usan C ++.