¿C # puede ofrecer un rendimiento tan bueno como C ++ en un simple juego de rol en línea (basado en sockets)?

Un juego que se ejecuta a 60 fps tiene 16. (6) milisegundos para hacer su trabajo. Por lo general, no es necesario superar los 60 fps, aunque en la práctica hay personas con monitores de 144 Hz …

Volviendo a la pregunta: sí, es completamente posible que C # proporcione un rendimiento tan bueno como C ++: si sus cálculos toman 1 ms en C ++ y 10 ms en C #, todavía está por debajo de 16.6, por lo que está bien, aunque C # sea 10 veces más lento Por supuesto, en la computadora de otra persona, tal vez estos números se dupliquen y luego tenga problemas (2 ms para C ++ frente a 20 ms para C #, y 20 está por encima del límite que tenemos).

Sin embargo, si su juego tiene hambre de lo máximo que puede ofrecer una PC, tiene un equipo de artistas 3D que crean modelos con cientos de miles de polígonos y otras cosas, entonces es posible que desee usar C ++, como todos los demás. Si solo eres un pequeño estudio, o solo tú, entonces probablemente no importará, porque probablemente no tendrás los ricos recursos que se necesitan para impulsar realmente una computadora (excepto, por supuesto, si harás algo especial, por ejemplo, tener una dinámica de fluidos como mecánica de juego o algo así).

Su mayor problema no sería la velocidad. El mayor problema son las bibliotecas.
Si planea hacerlo principalmente solo sin utilizar demasiadas bibliotecas, entonces estará bien.
En términos de rendimiento, el mayor problema de rendimiento será la gestión de la memoria. La recolección de basura no es una abstracción adecuada para los juegos, por lo que deberá administrar su memoria con más cuidado.
Básicamente, la mayoría de tus asignaciones tendrán que suceder en una carga de nivel, y debes tener 0 asignaciones por cuadro durante el juego. C también tiene este problema si hace la mayoría de sus asignaciones dinámicamente, pero en los lenguajes recolectados de basura toda la memoria se asigna dinámicamente.
Si evita el problema de administración de memoria y tiene un buen modelo de red, estará bien en términos de rendimiento.

C # definitivamente tiene un rendimiento inferior, tanto en el sentido técnico como en el humano. Es claramente más difícil de usar para proyectos grandes y también tiene un rendimiento inferior debido a una optimización deficiente.